环境准备:多台centos7服务器,其中一台为master
一、安装docker(所有机器,包括Master和Worker)
1、安装docker并启动(已安装直接进行下一步) (参考: Install Docker Engine on CentOS | Docker Documentation )
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
\
$ sudo yum install docker-ce docker-ce-cli containerd.io
$ sudo systemctl start docker
2、设置docker cgrou_driver为systemd (参考:kubernetes.io/docs/setup/…
查看docker服务当前使用的Cgroup Driver:docker info
如果显示为cgroupfs则执行下面命令修改为systemd,显示为systemd则直接进行下一步。
$ sudo vim /etc/docker/daemon.json
编辑文件并保存,文件内容:
{
"exec-opts":
[ "native.cgroupdriver=systemd" ]
}
3、重新启动 Docker 并在启动时启用:
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker
二、安装kubeadm、kubelet 和 kubectl(所有机器,包括Master和Worker)
1、设置安装源(官方文档源国内无法获取改用aliyun,能够获取的小伙伴可以使用官方源)
(参考官方文档:kubernetes.io/docs/setup/… )
vim /etc/yum.repos.d/kubernetes.repo
写入文件内容并保存:
[kubernetes]
name=Kubernetes
#官方源
#baseurl=packages.cloud.google.com/yum/repos/k…
#aliyun
baseurl=mirrors.aliyun.com/kubernetes/…
enabled=1
gpgcheck=1
repo_gpgcheck=1
#官方源
#gpgkey=packages.cloud.google.com/yum/doc/yum… packages.cloud.google.com/yum/doc/rpm…
#aliyun
gpgkey=mirrors.aliyun.com/kubernetes/… mirrors.aliyun.com/kubernetes/…
#exclude=kubelet kubeadm kubectl
2、关闭selinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
3、安装
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet && systemctl start kubelet
三、部署 Kubernetes 的 Master 节点(Initializing your control-plane node,只Master节点执行)
(参考:kubernetes.io/docs/setup/… )
1、kubeadm init
kubeadm init
如果看到提示信息显示官方源(k8s.gcr.io)无法连接,更换成阿里云的镜像源先拉取一下镜像
kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers
看到coredns/coredns:1.8.4 这个镜像无法获取,手动拉取一下
docker pull coredns/coredns:1.8.4
然后重命名
docker tag coredns/coredns:1.8.4 registry.aliyuncs.com/google_containers/coredns:v1.8.4
再次执行init
kubeadm init --image-repository=registry.aliyuncs.com/google_containers --kubernetes-version=v1.22.1
成功的话就会显示一条如下所示命令,记录输出的 kubeadm join 命令,你需要此命令将节点加入集群。
“You can now join any number of machines by running the following on each node as root:
kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>”
tips:
如果init过程中报错,错误解决之后再次执行init之前先执行一下 kubeadm reset
2、设置环境变量
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile source /etc/profile
3、查看master节点状态
kubectl get nodes
此时会看到STATUS为NotReady,执行下面命令查看该节点具体信息
kubectl describe node ${nodeName}
可以看到“container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized”,意思就是网络环境不可用,接下来安装网络插件
4、安装 Pod 网络附加组件(未完待续。。。)
(参考:kubernetes.io/zh/docs/con…, www.cni.dev/plugins/cur… )
四、部署 Kubernetes 的 Worker 节点(只Workers节点执行)
运行master节点成功执行 kubeadm init 之后输出的 kubeadm join ... 命令,若输入“This node has joined the cluster”则加入成功。