在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官方文档以获取更详细和最新的信息。