centos k8s安装网络设置方法
导读:CentOS环境下Kubernetes网络设置方法 一、前置准备:系统环境配置 在配置Kubernetes网络前,需完成以下基础环境设置,确保集群节点间网络互通: 关闭防火墙:systemctl stop firewalld &&...
CentOS环境下Kubernetes网络设置方法
一、前置准备:系统环境配置
在配置Kubernetes网络前,需完成以下基础环境设置,确保集群节点间网络互通:
- 关闭防火墙:
systemctl stop firewalld & & systemctl disable firewalld
- 禁用SELinux:
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
- 关闭Swap分区:
swapoff -a sed -i '/swap/s/^/#/' /etc/fstab # 永久禁用
- 配置静态IP:
编辑网络接口配置文件(如/etc/sysconfig/network-scripts/ifcfg-ens33
),设置静态IP、子网掩码、网关和DNS:
重启网络服务使配置生效:DEVICE=ens33 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 # 替换为节点实际IP NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114
systemctl restart network
- 配置主机名与hosts文件:
- 设置主机名:
hostnamectl set-hostname k8s-master
(Master节点)/k8s-node1
(Worker节点) - 编辑
/etc/hosts
,添加节点IP与主机名映射:192.168.1.100 k8s-master 192.168.1.101 k8s-node1 192.168.1.102 k8s-node2
- 设置主机名:
二、安装Kubernetes核心组件
- 安装kubeadm、kubelet、kubectl:
yum install -y kubeadm kubelet kubectl --disable-gpg-check systemctl enable kubelet & & systemctl start kubelet
- 初始化Master节点:
使用kubeadm init
命令初始化集群,必须指定Pod网络CIDR(与后续网络插件网段一致,如10.244.0.0/16
):
初始化完成后,按提示配置kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.1.100
kubectl
:mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
三、安装网络插件(关键步骤)
Kubernetes需通过网络插件实现Pod间通信,常见插件及安装方法如下:
1. Calico(企业级,支持网络策略)
Calico是基于BGP的三层网络插件,适合中大规模生产环境,支持精细的网络策略控制。
- 下载并应用配置:
curl -O https://docs.projectcalico.org/v3.26/manifests/calico.yaml kubectl apply -f calico.yaml
- 验证安装:
查看Calico组件状态:
正常输出应显示所有Pod为kubectl get pods -n calico-system
Running
状态。
2. Flannel(轻量Overlay,适合开发测试)
Flannel是Overlay网络插件,配置简单,资源消耗低,适合中小规模集群。
- 下载并应用配置:
curl -O https://raw.githubusercontent.com/flannel-io/flannel/v0.22.0/Documentation/kube-flannel.yml kubectl apply -f kube-flannel.yml
- 可选:切换为Host-GW后端(提升同局域网性能):
编辑kube-flannel.yml
,找到net-conf.json
部分,将Backend.Type
改为host-gw
:"net-conf.json": { "Network": "10.244.0.0/16", "Backend": { "Type": "host-gw"} }
3. Cilium(eBPF加速,高性能场景)
Cilium基于eBPF技术,性能远超传统插件,适合高频交易、大流量电商等场景,需内核≥5.4。
- 安装Helm(简化配置):
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh
- 添加Cilium仓库并部署:
helm repo add cilium https://helm.cilium.io helm repo update helm install cilium cilium/cilium --namespace kube-system \ --set k8sServiceHost=192.168.1.100 \ # 替换为API Server IP --set k8sServicePort=6443
四、验证网络功能
- 检查网络插件Pod状态:
确保所有网络插件组件运行正常:kubectl get pods -n kube-system | grep -E 'calico|flannel|cilium'
- 测试Pod跨节点通信:
- 创建测试Pod:
kubectl run nginx --image=nginx --port=80 kubectl run test-pod --image=busybox --rm -it --restart=Never -- sh
- 在
test-pod
中访问nginx
Pod的IP(通过kubectl get pod nginx -o jsonpath='{ .status.podIP} '
获取):
若能访问,则说明网络配置成功。wget -qO- http://< nginx-pod-ip>
- 创建测试Pod:
注意事项
- Pod网段一致性:
kubeadm init
中的--pod-network-cidr
必须与网络插件的Pod网段一致(如Calico的CALICO_IPV4POOL_CIDR
)。 - 节点加入集群:Worker节点需使用Master节点初始化输出的
kubeadm join
命令加入,确保节点状态为Ready
:kubectl get nodes
- 生产环境建议:使用Calico或Cilium等企业级插件,开启网络策略控制,并定期备份配置。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos k8s安装网络设置方法
本文地址: https://pptw.com/jishu/717768.html