在CentOS上部署Kubernetes(K8s)集群是一个相对复杂的过程,涉及多个步骤和配置。以下是一个详细的指南,帮助你在CentOS上成功部署Kubernetes集群。
环境准备
- 关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
- 关闭SELinux:
setenforce 0
sed -i 's/SELINUXenforcing/SELINUXdisabled/g' /etc/selinux/config
- 禁用交换分区:
swapoff -ased -i '/swap/s/.*swap./#&/' /etc/fstab
-
配置静态IP:编辑
/etc/sysconfig/network-scripts/ifcfg-ens33
文件,设置静态IP。 -
配置主机名:使用
hostnamectl
命令设置主机名。 -
配置hosts文件:编辑
/etc/hosts
文件,添加节点IP和主机名的映射。 -
安装依赖:安装必要的依赖包。
-
安装Docker:
yum install -y yum-utils device-mapper-persistent-data lvm2
cat > /etc/yum.repos.d/docker.repo <<EOF
[docker]
name=Docker CE
baseurl=https://download.docker.com/linux/centos/7/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://download.docker.com/linux/centos/gpg
EOF
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker
systemctl start docker
- 安装Kubernetes组件:
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet
初始化Master节点
在Master节点上执行以下命令初始化Kubernetes集群:
kubeadm init --apiserver-advertise-address <Master_IP> --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.26.0 --service-cidr 10.96.0.0/12 --pod-network-cidr 10.244.0.0/16
配置kubectl
将Master节点的配置文件复制到本地,并配置 kubectl
:
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
在Worker节点上执行Join命令:
kubeadm join <Master_IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
部署网络插件
例如,使用Flannel网络插件:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
验证安装
检查节点状态:
kubectl get nodes
通过以上步骤,你可以在CentOS上成功部署一个基本的Kubernetes集群。