企业运维实战--k8s学习笔记3.Service之IPVS模式、外部访问Service
一、Service简介
Service可以看作Pod的对外访问接口。借助service可以方便的实现服务发现和负载均衡。
Service 是由 kube-proxy 组件,加上 iptables 来共同实现的。当我们集群中有大量Pod时,会不断刷新iptables规则,消耗大量的内存。
Ipvs模式的service可以使k8s集群支持更多量级的Pod。
二、IPVS模式的Service实现
安装并查看ipvs模块
yum install -y ipvsadm
lsmod |grep ip_vs
编辑ipvs模式到k8s配置中
kubectl -n kube-system get cm
kubectl -n kube-system edit cm
修改未生效,删除副本后才可生效
ipvsadm -l
批量删除副本,自动生成新的副本,再次查看
kubectl get pod -n kube-system |grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}'
ipvsadm -ln
访问任意服务svc,可查看到访问次数
curl 10.106.128.34
ipvsadm -ln
三、Service实现外部访问
NodePort方式
NodePort配置mysvc,可让外网进行访问
编辑mysvc 的svc配置文件,将type改为NodePort
kubectl edit svc mysvc
查看svc修改信息
kubectl get svc
master端和node端都会暴露出端口
netstat -antlp