K8S学习笔记|05-Service

Kubernetes

Posted by Claire on August 31, 2023

前面提到Service是一个访问容器,主要了解Service如何为Pod做反向代理和负载均衡

Service和实际的Pod通过label来绑定,不受变化IP的影响

Service和Pod的网络映射关系通过iptables进行配置

Service拥有一个ClusterIP,由K8S的iptables规则管理

K8S Cluster的每一个节点都配置了相同的iptables规则,所有Cluster内都能通过Service的ClusterIP访问它

除了ClusterIP和iptables规则,还可以通过DNS来访问Service

kubeadm默认安装kube-dns组件

外网访问Service的方式

  • ClusterIP 只有Cluster内的节点和Pod可访问
  • NodePort 通过Cluster的静态端口提供服务,通过 NodeIp:NodePort 访问,实际是通过增加iptables规则,支持负载均衡到每一个Pod
    • nodePort如果不指定是使用随机选择的,也可以手动指定,随机选择的范围在30000~
    • nodePort是节点上监听的端口
    • port是ClusterIp上监听的应用的端口
    • targetPort是Pod监听的端口
    • nodePort和port监听到的请求都会转到tartgetPort上

LoadBalancer 使用cloud provider特有的 load balancer对外提供服务