k8s service三种常用类型服务

1. k8s-service三种常用类型

  • ClusterIP:集群内部使用

  • NodePort:对外暴露应用(集群外)

  • LoadBalancer:对外暴露应用,适用公有云

1.1 ClusterIP:集群内部使用

  • ClusterIP:默认,分配一个稳定的IP地址,即VIP,只能在集群内部访问。

  • 示例代码:

    spec:
      type: ClusterIP
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: web
    
  • 示例图片
    image

1.2 NodePort:对外暴露应用(集群外)

  • NodePort:在每个节点上启用一个端口来暴露服务,可以在集群

    • 外部访问。也会分配一个稳定内部集群IP地址。
    • 访问地址:<任意NodeIP>:
    • 端口范围:30000-32767
  • 示例代码:

    spec:
      type: NodePort
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
        nodePort: 30001
      selector:
        app: web
    
  • 示例图片
    image

  • NodePort:

    ​ 会在每台Node上监听端口接收用户流量,在实际情况下,对用户暴露的只会有一个IP和端口,那这么多台Node该使用哪台让用户访问呢?
    这时就需要前面加一个公网负载均衡器为项目提供统一访问入口了。

  • 示例图片
    image

1.3 LoadBalancer:对外暴露应用,适用公有云

  • LoadBalancer:

    ​ 与NodePort类似,在每个节点上启用一个端口来暴露服务。除此之外,Kubernetes会请求底层云平台(例如阿里云、腾讯云、AWS等)上的负载均衡器,将每个Node([NodeIP]:[NodePort])作为后端添加进去。

  • 示例图像
    image

原文地址:https://www.cnblogs.com/scajy/p/15493224.html