在CentOS上部署Kubernetes(k8s)集群是一个相对复杂的过程,需要仔细规划和执行。以下是一个基本的步骤指南,帮助你在CentOS 7上部署一个简单的Kubernetes集群。请注意,这些步骤可能会因CentOS版本和Kubernetes版本的不同而有所变化,建议参考最新的官方文档以确保兼容性。
环境准备
-
关闭防火墙:
sudo systemctl stop firewalld sudo systemctl disable firewalld
-
关闭SELinux:
sudo setenforce 0 sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
-
禁用交换分区:
sudo swapoff -a sudo sed -i 's/.*swap.*/#&/' /etc/fstab
-
设置主机名:
sudo hostnamectl set-hostname k8s-master
-
配置hosts文件: 编辑
/etc/hosts
文件,添加各节点的IP地址和主机名。 -
时间同步:
sudo yum install -y ntpdate sudo ntpdate time.windows.com
安装Docker
-
添加Docker的yum源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安装Docker:
sudo yum install -y docker-ce docker-ce-cli containerd.io
-
启动Docker并设置开机启动:
sudo systemctl start docker sudo systemctl enable docker
-
配置Docker镜像加速器(可选):
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <
安装Kubernetes组件
-
添加Kubernetes源:
sudo cat <
/etc/yum.repos.d/kubernetes.repo [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 https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF -
安装kubelet、kubeadm和kubectl:
sudo yum install -y kubelet kubeadm kubectl
-
配置kubelet: 编辑
/etc/kubernetes/kubelet.conf
文件,设置--cgroup-driver
为systemd
(如果使用Docker作为容器运行时)。
初始化Master节点
-
初始化Master节点:
sudo kubeadm init --apiserver-advertise-address
--image-repository registry.aliyuncs.com/google_containers --pod-network-cidr 10.244.0.0/16 -
配置kubectl:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
添加Worker节点
-
在Master节点获取Join命令:
kubeadm token create --print-join-command
-
在所有Worker节点执行Join命令:
sudo kubeadm join
:6443 --token --discovery-token-ca-cert-hash sha256:
部署网络插件
- 部署网络插件(例如Flannel):
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
验证部署
-
验证集群状态:
kubectl get nodes
-
验证Pods是否正常运行:
kubectl get pods --all-namespaces
以上步骤应该可以帮助你在CentOS上成功部署一个Kubernetes集群。如果在安装过程中遇到问题,请参考官方文档或相关社区资源。