K8S安装后配置网络的核心步骤如下:
安装网络插件:选择并部署网络插件(如Calico、Flannel),例如:
# 安装Calico
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
# 安装Flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
配置网络插件参数:
/etc/sysconfig/flanneld
)设置Pod网段、后端模式等。部署网络策略(可选):
使用NetworkPolicy
资源控制Pod间流量,例如限制特定标签的Pod访问:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-external-access
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- ipBlock:
cidr: 0.0.0.0/0
except:
- cidr: 10.0.0.0/24 # 允许集群内部通信
应用策略:kubectl apply -f network-policy.yaml
验证网络连通性:
kubectl run test-pod --image=nginx
kubectl exec -it test-pod -- ping <其他Pod的IP>
kubectl get pods -n kube-system
,确保相关Pod正常运行。暴露服务(可选):
通过Service
或Ingress
将服务暴露给外部,例如:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
应用后可通过NodeIP:NodePort
访问服务。
注意:不同插件(如Calico/Flannel)的配置细节差异较大,建议参考官方文档选择适配方案,并确保节点网络配置(IP、路由、防火墙)与插件要求一致。