在CentOS上部署和升级Kubernetes(k8s)集群的流程如下:
环境准备
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
swapoff -a
sed -i '/ swap / s/1/g' /etc/fstab
hostnamectl set-hostname hostname
cat >> /etc/hosts << EOF
192.168.10.1 node1-ip
192.168.10.2 node2-ip
192.168.10.3 master-ip
EOF
cat >> /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
EOF
sysctl --system
yum install ntpdate -y
ntpdate time.windows.com
安装Docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker && systemctl enable docker
设置Kubernetes环境
cat >> /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubelet-1.22.15 kubeadm-1.22.15 kubectl-1.22.15
systemctl enable kubelet && systemctl start kubelet
初始化Master节点
kubeadm init --apiserver-advertise-address master-ip --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.22.15 --service-cidr 10.96.0.0/12 --pod-network-cidr 10.244.0.0/16 --ignore-preflight-errors
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
添加Worker节点
kubeadm token create --print-join-command
kubeadm join master-ip:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
部署CNI容器网络插件(如Calico)
wget https://docs.projectcalico.org/manifests/calico.yaml
kubectl apply -f calico.yaml
验证部署
kubectl get nodes
kubectl get pods --all-namespaces
升级前准备
升级Master节点
stop and disable the old version of kubeadm service
install the new version of kubeadm
kubeadm upgrade plan
检查集群是否可以升级,并获取可以升级到的版本。kubeadm upgrade apply
进行升级。uninstall the old version of kubelet and kubectl
install the new version of kubelet and kubectl
restart the kubelet service
升级Worker节点
升级后验证
kubectl get nodes
确认节点的版本和状态。