centos

centos k8s部署网络配置技巧

小樊
47
2025-08-08 19:39:37
栏目: 智能运维

以下是在CentOS上部署Kubernetes(k8s)时的网络配置技巧及关键步骤:

一、基础网络配置

  1. 静态IP设置
    编辑网络接口配置文件(如/etc/sysconfig/network-scripts/ifcfg-ens33),配置静态IP、子网掩码、网关和DNS,示例:

    DEVICE=ens33
    BOOTPROTO=static
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    ONBOOT=yes
    

    重启网络服务生效:systemctl restart network

  2. 关闭防火墙与SELinux

    • 临时关闭防火墙:systemctl stop firewalld && systemctl disable firewalld
    • 永久关闭SELinux:修改/etc/selinux/config,设置SELINUX=disabled
  3. 配置主机名与hosts文件
    使用hostnamectl set-hostname <节点名>设置主机名,并在/etc/hosts中添加集群节点IP与主机名映射,确保节点间解析正确。

二、内核参数优化

编辑/etc/sysctl.d/k8s.conf,添加以下参数以支持网络转发和桥接:

net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1

加载配置:sysctl --system

三、选择并部署网络插件

K8s需借助网络插件实现Pod间通信,常见插件及部署方式:

  1. Flannel

    • 适用于简单场景,支持多种后端(如VXLAN)。
    • 部署命令:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    • 验证:kubectl get pods -n kube-system -l k8s-app=flannel
  2. Calico

    • 提供高级网络策略和安全性,支持IPSec加密。
    • 部署命令:kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  3. Cilium

    • 基于eBPF技术,高性能且支持细粒度流量控制。
    • 部署命令(需Helm):helm install cilium cilium/cilium

四、网络策略与验证

  1. 定义网络策略
    使用NetworkPolicy资源控制Pod间通信,示例(限制特定命名空间流量):

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: deny-external
    spec:
      podSelector: {}
      policyTypes:
      - Ingress
      - Egress
      ingress:
      - from:
        - namespaceSelector:
            matchLabels:
              project: internal
    

    应用策略:kubectl apply -f network-policy.yaml

  2. 测试网络连通性

    • 部署测试Pod(如Nginx),通过kubectl exec进入Pod,使用pingcurl验证与其他Pod或节点的通信。
    • 检查网络插件Pod状态:kubectl get pods -n kube-system,确保无异常。

五、高级技巧

注意事项

参考来源:

0
看了该问题的人还看了