发布于2026-06-30 阅读(0)
扫一扫,手机访问
在Kubernetes中配置overlay网络,其实没有想象中那么复杂。底层原理说白了就是让不同节点上的Pod能够跨宿主机直接通信,而overlay技术正好解决了这个问题。下面就来一步步看看具体怎么操作。

Overlay网络通常依赖CNI(Container Network Interface)插件来实现。市面上主流的CNI插件有Calico、Flannel、Wea ve等,选哪个取决于你对性能、网络策略的需求。
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f https://cloud.wea ve.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d 'n')
Overlay网络搭建好之后,往往还需要网络策略来精细控制Pod之间的通信。比如只允许同命名空间的Pod相互访问,或者限制特定端口的流量。
apiVersion: projectcalico.org/v3kind: NetworkPolicymetadata:name: allow-same-namespacenamespace: defaultspec:selector: all()ingress:- action: Allowprotocol: TCPsource:selector: all()egress:- action: Allowprotocol: TCPdestination:selector: all()
Overlay网络本身让Pod互联,但要让外部或集群内其他服务访问,还得靠Service。创建一个Service就能把一组Pod抽象成一个稳定的访问入口。
apiVersion: v1kind: Servicemetadata:name: my-servicespec:selector:app: my-appports:- protocol: TCPport: 80targetPort: 8080type: ClusterIP
如果希望从集群外部通过域名访问服务,那就需要Ingress。Nginx Ingress控制器是最常用的一个方案,装好之后配置Ingress资源即可。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud/deploy.yaml
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: my-ingressannotations:nginx.ingress.kubernetes.io/rewrite-target: /spec:rules:- host: myapp.example.comhttp:paths:- path: /pathType: Prefixbackend:service:name: my-serviceport:number: 80
所有组件装好、配置刷下去之后,别忘了检查一下实际运行状态。毕竟纸上谈兵容易,真跑起来才发现哪儿有问题。
kubectl get pods
kubectl get services
kubectl get ingress
通过以上几步,overlay网络在Kubernetes中就能跑起来了。具体选哪个CNI插件、网络策略怎么设、Service和Ingress怎么配,都得根据实际场景来调整。没什么一步到位的万能方案,但掌握了这些基础步骤,后面再踩坑也能快速定位。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8