zoukankan      html  css  js  c++  java
  • k8s service NodePort 方式向外发布

    • k8s service NodePort 方式向外发布
    • k8s 无头service 方式向内发布
    • k8s service 服务发现 {ServiceName}.{Namespace}.svc.{ClusterDomain}
      1 )有头的服务发现 DNS解析服务,可以看到ClusterIP地址
      2 )没有的服务发现 DNS解析服务,可以看到单个Pod的cname和IP

    Kubernetes 网络解决四方面的问题:

    • 一个 Pod 中的容器之间通过本地回路(loopback)通信。
    • 集群网络在不同 pod 之间提供通信。
    • Service 资源允许你对外暴露 Pods 中运行的应用程序,以支持来自于集群外部的访问。
    • 可以使用 Services 来发布仅供集群内部使用的服务。

    案例,假定有一个 deployment,containerPort 端口80,同时还被打上 python=myweb 标签。
    deployment内容如下

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: mywebdeployment
    spec:
      selector:
        matchLabels:
          python: myweb
      replicas: 6
      strategy:
        type: RollingUpdate
        rollingUpdate:
          maxSurge: 0
          maxUnavailable: 1
      template:
        metadata:
         labels:
           python: myweb
        spec:
          containers:
          - name: mywebcontainer
            image: python:3.7
            command: ['sh', '-c']
            args: ['echo "<p>The host is $(hostname) </p>" > index.html;python -m http.server 80']
            ports:
            - name: mywebport
              containerPort: 80
    

    service 的内容如下

    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
    spec:
      selector:
        python: myweb 
      type: NodePort
      ports:
        - protocol: TCP
          port: 81
          targetPort: 80
          nodePort: 30001
       
    

    需要注意的是,Service 能够将一个接收 port 映射到任意的 targetPort。 默认情况下,targetPort 将被设置为与 port 字段相同的值。
    事例里把service ClusterIP 的端口81 映射到 node节点上的端口30001
    nodePort的取值范围为 30000 - 32767

  • 相关阅读:
    [导入]读写文件之日志文件
    [导入]datagrid控件中添加checkbox控件列
    [导入]多态与 new [C#]
    [导入]datagrid控件中添加checkbox控件列
    [导入]多态与 new [C#]
    [导入]读写文件之日志文件
    [导入]多态与 new [C#]
    ABAPJCO
    VB创建类模块DLL文件
    ABAP串口通信道闸设备
  • 原文地址:https://www.cnblogs.com/faberbeta/p/14151152.html
Copyright © 2011-2022 走看看