在CentOS上部署Kubernetes(k8s)网络时,以下是一些关键步骤和技巧:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX.*/SELINUXdisabled/' /etc/selinux/config
swapoff -ased -i '/swap/s///#/g' /etc/fstab
/etc/sysconfig/network-scripts/ifcfg-eth0
,设置静态IP地址、子网掩码和网关。DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.100
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
hostnamectl
命令设置主机名:hostnamectl set-hostname k8s-master
/etc/hosts
文件,添加集群中所有节点的IP地址和主机名:192.168.1.100 k8s-master
192.168.1.101 k8s-node1
192.168.1.102 k8s-node2
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
ping 8.8.8.8
ping 114.114.114.114
kubectl get nodes
kubectl get pods -n kube-system
/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
yum install ntpdate
ntpdate time.windows.com
kubeadm init --apiserver-advertise-address 192.168.1.100 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version 1.22.15 --service-cidr 10.96.0.0/12 --pod-network-cidr 10.244.0.0/16
kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:abcdef123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
namespace: default
spec:
podSelector:
matchLabels:
role: db
policyTypes:
- Ingress
- Egress
ingress:
- from:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
namespaceSelector:
matchLabels:
project: myproject
podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 6379
egress:
- to:
- ipBlock:
cidr: 10.0.0.0/24
ports:
- protocol: TCP
port: 5978
kubectl apply -f networkpolicy_01.yaml
通过以上步骤,您可以在CentOS上成功配置Kubernetes集群的网络。请根据您的实际网络环境和需求调整IP地址和DNS设置。