在CentOS上配置Kubernetes网络时,有几个关键要点需要注意:
-
关闭防火墙和SELinux:
- 关闭防火墙:
systemctl stop firewalld && systemctl disable firewalld
- 关闭SELinux:永久关闭需要修改
/etc/selinux/config
文件,临时关闭可以使用setenforce 0
命令。
- 关闭防火墙:
-
配置网络接口:
- 编辑网络配置文件,通常位于
/etc/sysconfig/network-scripts/
目录下,文件名以ifcfg-
开头。例如,编辑ifcfg-ens33
文件设置静态IP地址、子网掩码、网关等信息。 - 重启网络服务使配置生效:
systemctl restart network
或nmcli networking off && nmcli networking on
。
- 编辑网络配置文件,通常位于
-
启用内核参数:
- 编辑
/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
。
- 编辑
-
选择并部署网络插件:
-
Flannel:
- 下载并准备Flannel的二进制文件,放置在
/usr/local/bin
目录下。 - 创建Flannel配置文件
/etc/kubernetes/flannel.yml
,示例配置如下:{ "Network": "10.244.0.0/16", "Backend": { "Type": "vxlan" } }
- 启动Flannel服务:
flanneld -etcd-endpoints=http://
。:2379 -etcd-prefix=/kube-centos/network -iface=<节点网卡名称> -ip-masq=true -kube-subnet-mgr=true -logtostderr=true &
- 下载并准备Flannel的二进制文件,放置在
-
Calico:
- 下载并解压Calico的二进制文件包。
- 创建Calico配置文件
/opt/calico/calico.yaml
,示例配置如下:apiVersion: v1 kind: ConfigMap metadata: name: calico-conf namespace: kube-system data: cni.conf: | { "name": "k8s-pod-network", "cniVersion": "0.3.1", "plugins": [ { "type": "calico", "log_level": "info", "etcd_endpoints": "http://
:2379", "etcd_key_file": "/etc/kubernetes/pki/etcd/etcd-key.pem", "etcd_cert_file": "/etc/kubernetes/pki/etcd/etcd.pem", "etcd_ca_cert_file": "/etc/kubernetes/pki/etcd/etcd-ca.pem", "mtu": 1440, "ipam": { "type": "calico-ipam" }, "policy": { "type": "k8s" }, "kubernetes": { "kubeconfig": "/etc/kubernetes/kubelet.conf" } }, { "type": "portmap", "snat": true, "capab" } ] } - 启动Calico服务。
-
-
配置Service资源:
- 使用Service资源暴露Pod,并提供稳定的网络接口。根据需求选择不同类型的服务,如ClusterIP、NodePort、LoadBalancer等。。
-
配置Pod网络策略:
- 使用Network Policies控制Pod之间的网络通信,提高安全性。例如,限制Pod之间的流量,只允许特定的Pod相互通信。。
通过以上步骤,你可以在CentOS上成功配置Kubernetes网络,确保集群中的各个组件能够正常通信。