k8s的service部分

本文详细介绍了Kubernetes Service的IPVS模式,如何减轻iptables带来的CPU负担,以及ClusterIP、NodePort、LoadBalancer和ExternalName四种类型的Service的工作原理和使用示例。ClusterIP仅内部访问,NodePort开放节点端口,LoadBalancer适用于公有云,ExternalName则通过DNS映射外部服务。
摘要由CSDN通过智能技术生成

一、IPVS模式的service

Service 是由 kube-proxy 组件,加上 iptables 来共同实现的。 kube-proxy 通过 iptables 处理
Service 的过程,需要在宿主机上设置相当多的 iptables
规则,如果宿主机有大量的Pod,不断刷新iptables规则,会消耗大量的CPU资源。
IPVS模式的service,可以使K8s集群支持更多量级的Pod。

kubectl edit cm kube-proxy -n kube-system 

修改内容
在这里插入图片描述
更新kube-proxy pod

kubectl get pod -n kube-system |grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}'

在这里插入图片描述
IPVS模式下,kube-proxy会在service创建后,在宿主机上添加一个虚拟网卡:kube-ipvs0,并分配service IP

vim svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: mysvc
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  selector:
      app: myapp

在这里插入图片描述

ip addr

在这里插入图片描述
kube-proxy通过linux的IPVS模块,以rr轮询方式调度service中的Pod

在这里插入图片描述

二、k8s service的四种类型

1、ClusterIP

这个类型的service有一个ClusterIP,其实就一个VIP。具体实现原理依靠kubeproxy组件,通过iptables或是ipvs实现,这种类型的service只能在集群内访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值