本文共 1497 字,大约阅读时间需要 4 分钟。
1.Service 是由 kube-proxy 组件,加上 iptables 来共同实现的.
2.kube-proxy 通过 iptables 处理 Service 的过程,需要在宿主机上设置相当多的 iptables 规则,如果宿主机有大量的Pod,不断刷新iptables规则,会消耗大量的CPU资源。
3.IPVS模式的service,可以使K8s集群支持更多量级的Pod。
[root@server2 ~]# vim demo.yml---apiVersion: v1kind: Servicemetadata: name: myservicespec: selector: app: myapp ports: - protocol: TCP port: 80 targetPort: 80---apiVersion: apps/v1kind: Deploymentmetadata: name: demo2spec: replicas: 3 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp image: myapp:v2[root@server2 ~]# kubectl apply -f demo.yml[root@server2 ~]# kubectl get svc
[root@server2 ~]# yum install -y ipvsadm ## 所有节点安装[root@server2 ~]# kubectl edit cm kube-proxy -n kube-system //修改IPVS模式## mode: "ipvs" [root@server2 ~]# kubectl get pod -n kube-system |grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}' //更新kube-proxy pod更新pod 查看是否生效: IPVS模式下,kube-proxy会在service创建后,在宿主机上添加一个虚拟网卡:kube-ipvs0,并分配service IP
转载地址:http://lhjxi.baihongyu.com/