在CentOS上部署Kubernetes(k8s)集群是一個相對復雜的過程,需要仔細規劃和執行。以下是一個基本的步驟指南,基于CentOS 7和CentOS 8的常見配置。請注意,這些步驟可能會根據具體需求和版本有所不同。
關閉防火墻:
systemctl stop firewalld
systemctl disable firewalld
firewall-cmd --state-disabled
關閉SELinux:
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
禁用交換分區:
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
設置主機名和hosts文件:
hostnamectl set-hostname master
cat >> /etc/hosts << EOF
192.168.0.1 master
192.168.0.2 node1
192.168.0.3 node2
EOF
配置時間同步:
yum install -y ntpdate
ntpdate ntp.aliyun.com
echo "0 * * * * ntpdate ntp.aliyun.com" > /tmp/crontab
crontab /tmp/crontab
修改內核參數:
cat << EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
安裝依賴包:
yum install -y yum-utils device-mapper-persistent-data lvm2
配置Docker源:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all
yum makecache
安裝Docker:
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
配置Kubernetes源:
cat << EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安裝kubelet、kubeadm、kubectl:
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet
初始化集群:
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
配置kubectl:
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
添加工作節點: 在Master節點上獲取加入命令:
kubeadm token create --print-join-command
在每個Worker節點上運行該命令。
安裝Calico:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
驗證安裝:
kubectl get pods -n kube-system
檢查節點狀態:
kubectl get nodes
檢查Pod狀態:
kubectl get pods --all-namespaces
以上步驟提供了一個基本的CentOS部署Kubernetes的指南。根據具體需求和環境,可能需要進行進一步的調整和優化。建議參考Kubernetes官方文檔以獲取更詳細和最新的信息。