安装
创建 Kubernetes cluster(单机版)最简单的方法是 minikube。国内网络环境下也可以考虑使用 kubeasz 的 AllInOne 部署。
基于kubekey部署
支持的环境
Linux 发行版
- Ubuntu 16.04, 18.04, 20.04, 22.04
- Debian Bullseye, Buster, Stretch
- CentOS/RHEL 7
- AlmaLinux 9.0
- SUSE Linux Enterprise Server 15
建议使用 Linux Kernel 版本:
4.15 or later
可以通过命令uname -srm
查看 Linux Kernel 版本。
Kubernetes 版本
- v1.19: v1.19.15
- v1.20: v1.20.10
- v1.21: v1.21.14
- v1.22: v1.22.15
- v1.23: v1.23.10 (default)
- v1.24: v1.24.7
- v1.25: v1.25.3
要求和建议
- 最低资源要求(仅对于最小安装 KubeSphere):
- 2 核虚拟 CPU
- 4 GB 内存
- 20 GB 储存空间
/var/lib/docker 主要用于存储容器数据,在使用和操作过程中会逐渐增大。对于生产环境,建议 /var/lib/docker 单独挂盘。
- 操作系统要求:
SSH
可以访问所有节点。- 所有节点的时间同步。
sudo
/curl
/openssl
应在所有节点使用。docker
可以自己安装,也可以通过 KubeKey 安装。Red Hat
在其Linux
发行版本中包括了SELinux
,建议关闭SELinux或者将SELinux的模式切换为Permissive[宽容]工作模式
- 依赖
socat 和 conntrack
用法
简单安装
- 安装
首先下载kubeKey文件,解压即得到可执行文件kk
export KKZONE=cn
# 创建一个docker 的 container runtime 的 Kubernetes 集群
sudo ./kk create cluster --container-manager containerd --with-kubernetes v1.26.5
# 输出以下文字代表安装成功
Greetings, KubeKey!
[upload-certs] Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace
[upload-certs] Using certificate key:
36fca4b99ef0ac1ea4504f7e99284709236a3a101b876774a1964f70e1edcc58
13:23:11 CST [DeployNetworkPluginModule] Deploy calico
13:23:11 CST stdout: [node15]
poddisruptionbudget.policy/calico-kube-controllers created
serviceaccount/calico-kube-controllers created
serviceaccount/calico-node created
serviceaccount/calico-cni-plugin created
11:55:21 CST [AddonsModule] Install addons
11:55:21 CST success: [LocalHost]
11:55:21 CST Pipeline[CreateClusterPipeline] execute successfully
Installation is complete.
Please check the result using the command:
kubectl get pod -A
- 卸载
./kk delete cluster
- 升级
./kk upgrade [--with-kubernetes version] [--with-kubesphere version]
高级安装
可以使用高级安装来控制自定义参数或创建多节点集群。具体来说,通过指定配置文件来创建集群。
如果无法访问
https://storage.googleapis.com
, 请先执行export KKZONE=cn
.
-
首先,创建一个示例配置文件
./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --filename) path]
例子:
-
使用默认配置创建一个示例配置文件。您也可以指定文件名称或文件所在的文件夹。
./kk create config [-f ~/myfolder/config-sample.yaml]
-
同时安装 KubeSphere
./kk create config --with-kubesphere
-
-
根据您的环境修改配置文件 config-sample.yaml
注意: 由于 Kubernetes 暂不支持大写 NodeName, worker 节点名中包含大写字母将导致后续安装过程无法正常结束
-
使用配置文件创建集群。
./kk create cluster -f ~/myfolder/config-sample.yaml
添加节点
将新节点的信息添加到集群配置文件,然后应用更改。
./kk add nodes -f config-sample.yaml
删除节点
通过以下命令删除节点,nodename指需要删除的节点名。
./kk delete node <nodeName> -f config-sample.yaml
删除集群
您可以通过以下命令删除集群:
- 如果您以快速入门(all-in-one)开始:
./kk delete cluster
- 如果从高级安装开始(使用配置文件创建的集群):
./kk delete cluster [-f config-sample.yaml]
集群升级
单节点集群
升级集群到指定版本。
./kk upgrade [--with-kubernetes version] [--with-kubesphere version]
--with-kubernetes
指定kubernetes目标版本。--with-kubesphere
指定kubesphere目标版本。
多节点集群
通过指定配置文件对集群进行升级。
./kk upgrade [--with-kubernetes version] [--with-kubesphere version] [(-f | --filename) path]
--with-kubernetes
指定kubernetes目标版本。--with-kubesphere
指定kubesphere目标版本。-f
指定集群安装时创建的配置文件。
注意: 升级多节点集群需要指定配置文件. 如果集群非kubekey创建,或者创建集群时生成的配置文件丢失,需要重新生成配置文件,或使用以下方法生成。
Getting cluster info and generating kubekey’s configuration file (optional).
./kk create config [--from-cluster] [(-f | --filename) path] [--kubeconfig path]
--from-cluster
根据已存在集群信息生成配置文件.-f
指定生成配置文件路径.--kubeconfig
指定集群kubeconfig文件.- 由于无法全面获取集群配置,生成配置文件后,请根据集群实际信息补全配置文件。
例如获取集群配置文件并保存到指定文件
./kk create config --from-cluster -f default_kk_cluster.yaml
启用 kubectl 自动补全
KubeKey 不会启用 kubectl 自动补全功能。请参阅下面的指南并将其打开:
先决条件:确保已安装 bash-autocompletion
并可以正常工作。
# 安装 bash-completion
apt-get install bash-completion
# 将 completion 脚本添加到你的 ~/.bashrc 文件
echo 'source <(kubectl completion bash)' >>~/.bashrc
# 将 completion 脚本添加到 /etc/bash_completion.d 目录
kubectl completion bash >/etc/bash_completion.d/kubectl
更详细的参考可以在这里找到。
问题
The connection to the server localhost:8080 was refused - did you specify the right host or port?
执行命令时提示该问题
kubectl get pods
kubectl version -o json
sudo chmod 755 /etc/kubernetes/admin.conf
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
修改主机名
hostnamectl set-hostname node15
#导出节点配置,修改主机名
kubectl get node master -o yaml > node.yaml
下载失败
!/bin/bash
while yes|sudo ./kk create cluster --container-manager containerd --with-kubernetes v1.26.5; [[ $? -ne 0 ]];
do
echo "Result unsuccessful"
sleep 1
done
echo "Result successful"
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of “crypto/rsa: verification error” while trying to verify candidate authority certificate “kubernetes”)
mkdir $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config