在CentOS上配置Kubernetes(k8s)网络通常涉及以下几个步骤:
- 环境准备:
- 关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
- 关闭SELinux:
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
- 关闭交换分区:
swapoff -a
sed -i '/swap/s///#/' /etc/fstab
- 配置静态IP:
编辑网络接口配置文件,例如/etc/sysconfig/network-scripts/ifcfg-eth0
,设置静态IP地址、子网掩码、网关和DNS服务器。例如:
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
命令设置主机名。例如:
hostnamectl set-hostname k8s-master
- 配置
/etc/hosts
文件:
在每个节点上编辑/etc/hosts
文件,添加集群中所有节点的IP地址和主机名。例如:
192.168.1.100 k8s-master
192.168.1.101 k8s-node1
192.168.1.102 k8s-node2
- 时间同步:
安装并配置NTP服务以同步时间。例如:
yum install ntpdate
ntpdate time.windows.com
- 安装Docker:
- 添加Docker的Yum源:
curl https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
安装Docker CE:
yum install -y docker-ce docker-ce-cli containerd.io
启动Docker并设置开机启动:
systemctl start docker && systemctl enable docker
- 安装kubeadm、kubelet和kubectl:
- 添加Kubernetes的Yum源:
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyuncs.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyuncs.com/kubernetes/yum/doc/yum-key.gpg
repo_gpgcheck=1
gpgcheck=1
EOF
安装:
yum install -y kubelet kubeadm kubectl
设置开机启动:
systemctl enable kubelet && systemctl start kubelet
- 部署Kubernetes集群:
- 初始化Master节点:
kubeadm init --apiserver-advertise-address 192.168.1.100 --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
- 加入Worker节点:
在Master节点上获取Join命令,并在每个Worker节点上运行。例如:
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:abcdef123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
- 安装网络插件(如Calico):
- 下载Calico配置文件:
wget https://docs.projectcalico.org/manifests/calico.yaml
应用Calico配置:
kubectl apply -f calico.yaml
- 验证网络配置:
- 检查网络连接:
ping 8.8.8.8
ping 114.114.114.114
- 检查集群状态:
kubectl get nodes
kubectl get pods --all-namespaces