在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的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 <<EOF
{
"registry-mirrors": ["https://mirrors.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
添加Kubernetes源:
sudo cat <<EOF > /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节点:
sudo kubeadm init --apiserver-advertise-address <Master_IP> --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
在Master节点获取Join命令:
kubeadm token create --print-join-command
在所有Worker节点执行Join命令:
sudo kubeadm join <Master_IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
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集群。如果在安装过程中遇到问题,请参考官方文档或相关社区资源。