centos

centos k8s容器网络接口

小樊
62
2025-09-26 17:28:05
栏目: 智能运维

CentOS环境下Kubernetes(k8s)容器网络接口配置指南

在CentOS上部署Kubernetes集群时,容器网络接口(CNI)是实现Pod间通信、跨节点网络互通的核心组件。CNI插件负责管理容器网络生命周期(如IP分配、路由配置),以下是具体配置步骤及关键要点:

一、基础环境准备

在配置CNI前,需完成以下基础设置,确保网络环境稳定:

  1. 关闭防火墙与SELinux
    防火墙(firewalld)和SELinux可能拦截容器网络流量,建议临时关闭(生产环境需通过规则放行):
    systemctl stop firewalld && systemctl disable firewalld  # 关闭防火墙
    setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  # 禁用SELinux
    
  2. 禁用交换分区
    Kubernetes要求禁用交换分区(swap),避免影响Pod网络性能:
    swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab  # 永久禁用
    
  3. 配置静态IP
    为每个节点(Master/Worker)配置静态IP,确保网络可达性。编辑网络接口配置文件(如/etc/sysconfig/network-scripts/ifcfg-ens33):
    DEVICE=ens33
    BOOTPROTO=static
    IPADDR=192.168.1.100  # 节点静态IP
    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

二、安装与配置CNI插件

Kubernetes支持多种CNI插件,以下是Flannel(简单易用)和Calico(高性能、支持BGP)的配置示例:

1. Flannel插件(推荐新手)

Flannel通过Overlay网络(VXLAN)实现跨节点Pod通信,配置步骤如下:

2. Calico插件(生产推荐)

Calico采用纯三层转发(无Overlay),性能更优,支持网络策略(NetworkPolicy),配置步骤如下:

3. 关键内核参数调整

CNI插件依赖以下内核参数实现网络转发,需提前配置:

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1  # 允许iptables处理桥接流量
net.bridge.bridge-nf-call-ip6tables = 1 # 允许ip6tables处理桥接流量
net.ipv4.ip_forward = 1                 # 开启IP转发
EOF
sysctl --system  # 使配置生效

三、验证CNI配置

  1. 检查Pod网络连通性
    部署一个测试Pod(如busybox),尝试访问集群内其他服务或外部网络:
    kubectl run busybox --rm -ti --image=busybox /bin/sh
    # 在Pod内执行
    wget -qO- http://10.96.0.1  # 访问Kubernetes API Server(默认Service IP)
    ping 192.168.1.101         # 访问其他节点IP(需替换为实际IP)
    
  2. 查看CNI插件日志
    若网络异常,可通过插件Pod日志排查问题:
    kubectl logs -n kube-system <flannel-pod-name>  # Flannel日志
    kubectl logs -n kube-system <calico-node-name> # Calico日志
    

四、常见问题排查

通过以上步骤,可在CentOS环境下完成Kubernetes容器网络接口的配置,实现Pod间的稳定通信。根据业务需求选择合适的CNI插件(如Flannel适合简单场景,Calico适合生产高可用场景),并定期监控网络性能以确保集群稳定运行。

0
看了该问题的人还看了