在CentOS上部署Kubernetes(K8s)集群时,容器网络的配置是一个关键步骤。以下是详细的配置方法:
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
swapoff -a
sed -i '/swap/s///#/' /etc/fstab
编辑 /etc/sysconfig/network-scripts/ifcfg-eth0
文件,设置静态IP地址、子网掩码和网关。例如:
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes
重启网络服务:
systemctl restart network
hostnamectl set-hostname k8s-master
/etc/hosts
文件:在 /etc/hosts
文件中添加节点IP和主机名的映射。
cat <<EOF | sudo tee /etc/yum.repos.d/docker.repo
[docker-ce]
name=Docker CE
baseurl=https://download.docker.com/linux/centos/7/x86_64/stable/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
EOF
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker && sudo systemctl enable docker
kubeadm init --apiserver-advertise-address 192.168.1.100 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version 1.22.15 --service-cidr 10.96.0.0/16 --pod-network-cidr 10.244.0.0/16
下载Calico配置文件:
wget https://docs.projectcalico.org/manifests/calico.yaml --no-check-certificate
应用Calico配置:
kubectl apply -f calico.yaml
在Master节点上获取Join命令,并在每个Worker节点上运行:
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef0123456789abcdef012345678 --discovery-token-ca-cert-hash sha256:abcdef123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
ping 8.8.8.8
ping 114.114.114.114
kubectl get nodes
kubectl get pods -n kube-system
以上步骤涵盖了在CentOS上配置Kubernetes网络的基本流程。请根据您的实际网络环境和需求调整IP地址和DNS设置。在生产环境中,建议使用更稳定的网络配置和更高版本的Kubernetes。建议参考官方文档以获取最准确的信息。