centos

centos k8s部署中网络配置要点

小樊
48
2025-02-25 02:59:42
栏目: 智能运维

在CentOS上部署Kubernetes(k8s)时,网络配置是一个关键步骤。以下是一些网络配置的要点:

1. 选择合适的网络插件

Kubernetes使用CNI(Container Network Interface)插件来管理容器网络。常用的CNI插件包括Flannel、Calico等。这些插件提供了不同的网络模型,如VLAN、VXLAN等。

Flannel

Calico

2. 配置静态IP

在每个节点上配置静态IP地址,确保网络通信的稳定性和可预测性。

# 编辑网络配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 配置示例
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=d90cbc3c-ba5e-4a72-8f7e-a5ae8c48158a
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.8.106
NETMASK=255.255.255.0
GATEWAY=192.168.8.1
DNS1=8.8.8.8
DNS2=114.114.114.114

3. 关闭防火墙和SELinux

关闭防火墙和SELinux以减少安全风险。

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

4. 配置网络策略

Kubernetes提供了NetworkPolicy资源,用于定义Pod之间的网络访问策略。

# 示例NetworkPolicy
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
  - Ingress
  ingress:
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

5. 配置CNI插件

根据选择的网络插件,配置相应的CNI插件。

Flannel配置示例

# 编辑Flannel配置文件
vi /etc/sysconfig/flanneld

# 配置示例
FLANNEL_ETCD="etcd.example.com:2379"

Calico配置示例

# 编辑Calico配置文件
vi /etc/calico/calico.yaml

# 配置示例
network:
  ip4Pool: 10.244.0.0/16

6. 验证网络配置

使用以下命令验证网络配置是否成功。

# 检查Pod状态
kubectl get pods

# 检查Service状态
kubectl get services

通过以上步骤,您可以在CentOS上成功配置Kubernetes的网络,确保集群中的Pod能够正常通信。根据具体需求选择合适的网络插件和配置方式,以满足不同的网络需求。

0
看了该问题的人还看了