CentOS 上 Kubernetes 网络配置实操指南
一 基础网络与系统准备
hostnamectl set-hostname k8s-master(工作节点设为如 k8s-node1)192.168.1.100 k8s-master
192.168.1.101 k8s-node1
192.168.1.102 k8s-node2
/etc/sysconfig/network-scripts/ifcfg-ens33DEVICE=ens33
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=114.114.114.114
ONBOOT=yes
systemctl restart networkswapoff -a && sed -i '/swap/s/^/#/' /etc/fstabsystemctl stop firewalld && systemctl disable firewalldsetenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/configecho 'net.ipv4.ip_forward=1' >> /etc/sysctl.d/k8s.conf && sysctl --systemyum install -y ntpdate && ntpdate time.windows.comyum install -y containerd.iocontainerd config default | tee /etc/containerd/config.toml
sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
systemctl enable --now containerd
yum install -y kubeadm kubelet kubectlsystemctl enable --now kubelet二 初始化集群与网络插件
kubeadm init \
--apiserver-advertise-address=192.168.1.100 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
curl -O https://docs.projectcalico.org/manifests/calico.yaml
kubectl apply -f calico.yaml
kubeadm token create --print-join-commandkubeadm join ... 命令三 验证与连通性测试
kubectl get nodes
kubectl get pods -n kube-system
kubectl run nginx --image=nginx --port=80 --dry-run=client -o yaml | kubectl apply -f -
POD_IP=$(kubectl get pod nginx -o jsonpath='{.status.podIP}')
kubectl run test-pod --image=busybox --rm -it -- wget -qO- http://$POD_IP
kubectl expose pod nginx --port=80 --type=NodePort
kubectl get svc nginx
# 通过任一节点 IP:NodePort 访问
四 生产环境注意事项