sevice概念介绍

       service的实现强烈依赖于kube-DNS组件 新版本k8s安装的是core-DNS 

       因为每个pod是有生命周期的 为了给客户端访问pod提供一个固定的访问端点

       service是客户端和pod服务端之间的一个中间层       service的名称解析是强依赖于dns服务的

集群网络种类介绍

      pod网络和node网络的地址是一个实际的网络地址   是有对应的网络设备的(包括硬件和软件模拟出的网络设备)

      service网络(集群网络)   是一个虚拟的IP地址 仅仅是iptables或者ipvs的转发规则   不存在对应的网络设备

 

service的三种实现模式   

   1.用户空间模式
       请求先经过内核再转给kube-proxy进程最后转回给内核
   2.内核iptables规则
   3.内核ipvs规则

    新增或者删除一个符合标签选择器的pod后 pod信息会提交给apiserver保存到etcd中 kube-proxy一直watch着apiserver里面的数据信息

    一旦检测到变化会立即实时生成对应的ipvs转发规则  使外部的请求可以转发到对应的pod上
   service ports字段说明

       nodePort  》节点网络端口          port 》 service网络端口               targetPort 》pod网络端口

 

service资源记录解析规则

     总体格式   SVC_NAME.NS_NAME.DOMAIN.LTD.       集群后缀名为 svc.cluster.local.

     如  redis.default.svc.cluster.local.

           redis是创建的service名称   .default是redis service所在的名称空间    .svc.cluster.local.是k8s集群默认添加的后缀

 

service种类

     无头service

      定义service的时候把clusterIP设置为None 就代表是无头service
      在集群内部做dns解析的时候直接把service名称解析为对应pod的ip列表

apiVersion: v1
kind: Service
metadata:
  name: myappless
  namespace: default
spec:
  selector:
    app: myapp
  clusterIP: None
  type: ClusterIP
  ports:
  -  port: 80
     targetPort: 80
headless_svc.yaml

相关文章:

  • 2021-08-14
  • 2021-05-22
  • 2021-12-07
  • 2021-08-27
  • 2021-05-08
  • 2022-02-05
猜你喜欢
  • 2022-12-23
  • 2021-12-28
  • 2021-09-05
  • 2022-12-23
  • 2022-12-23
  • 2021-05-15
  • 2022-03-04
相关资源
相似解决方案