1、安装Master
1.1 yum指定版本安装(这里我们安装1.23.5)
yum -y install kubeadm-1.23.5 kubelet-1.23.5 kubectl-1.23.5
# 如果安装失败, 重新安装
yum -y reinstall kubeadm-1.23.5 kubelet-1.23.5 kubectl-1.23.5
# 如果遇到如下错误(签名错误)
failure: repodata/repomd.xml from kubernetes: [Errno 256] No more mirrors to try.
https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for kubernetes
# 修复
vim /etc/yum.repos.d/kubernetes.repo
将repo_gpgcheck=1修改 repo_gpgcheck=0
systemctl enable kubelet
1.2 初始化Master节点
# 注意IP地址与版本号
kubeadm init --kubernetes-version=v1.23.5 \
--apiserver-advertise-address=192.168.2.21 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
# 如果初始化失败,记得执行清空
kubeadm reset
# 如果出现以下错误
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR CRI]: container runtime is not running: output: E0705 11:39:06.834691 2101 remote_runtime.go:925] "Status from runtime service failed" err="rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService"
time="2022-07-05T11:39:06+08:00" level=fatal msg="getting status of runtime: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService"
, error: exit status 1
# 解决办法
rm -rf /etc/containerd/config.toml
systemctl restart containerd
# 初始化完成看提示执行命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 以下提示是node(slave)节点执行加入集群的命令(每个部署不一样,根据自己的来)
kubeadm join 192.168.2.215:6443 --token xaaczs.c602kj1bmqwwc59y \
--discovery-token-ca-cert-hash sha256:8469e30868f31db51471d74b0cc7d880fc9f323a15f7b19c1df3004e2e7bf255
Your Kubernetes control-plane has initialized successfully!
(如果不小心忘了的话,可以在master节点上执行kubeadm token create --print-join-command
2、安装calico网络
2.1 下载calico.yaml文件
wget https://docs.projectcalico.org/manifests/calico.yaml
2.2 编辑 calico.yaml文件
vim calico.yaml
找到 - name: CALICO_IPV4POOL_CIDR 项
将 192.168.0.0/16
改为 10.244.0.0/16
也就是我们上边初始化master的时候指定的 --pod-network-cidr=10.244.0.0/16
修改如下所示:
- name: CALICO_IPV4POOL_CIDR
value: "10.244.0.0/16"
保存退出 :wq!
2.3 执行安装
kubectl apply -f calico.yaml
2.4 查看运行状态
[gestep@k8s-master ~]$ kubectl get pods -n kube-system | grep calico
calico-kube-controllers-6b77fff45-qqhhd 1/1 Running 18 (3d21h ago) 27d
calico-node-bhlgt 1/1 Running 4 (3d21h ago) 27d
calico-node-m62nl 1/1 Running 4 (3d21h ago) 27d
calico-node-xfmdf 1/1 Running 5 (3d21h ago) 27d