更新时间:2023-07-07 GMT+08:00

NodePort访问

表示工作负载可以让同一虚拟私有云内其他工作负载访问,通过“集群节点的IP”访问,主要场景:云上同一虚拟私有云内其他工作负载需要访问Kubernetes集群内部的工作负载。

添加方式

您可以在创建无状态工作负载时设置访问方式,也可以在无状态工作负载创建完成后添加访问方式。

创建无状态工作负载时创建

本节以nginx为例进行说明。

  1. 参考无状态工作负载(Deployment),在“访问设置(Service)”步骤,单击“添加Service”

    • 服务名称:新增服务名称,用户可自定义。
    • 访问方式:NodePort。
    • 协议:请根据业务的协议类型选择。
    • 容器端口:容器镜像中应用实际监听的端口,需用户确定。nginx程序实际监听的端口为80。
    • 访问端口:容器端口映射到节点私有IP上的端口,用私有IP访问应用时使用,端口范围为30000-32767,建议选择“自动生成”
      • 自动生成:系统会自动分配端口号。
      • 指定端口:指定固定的节点端口,默认取值范围为30000-32767。若指定端口时,请确保同个集群内的端口唯一性。

  2. 设置完成后,单击“确定”。
  3. 单击“下一步”,进行高级设置。
  4. 单击“下一步”,进行集群差异化配置。设置完成后,单击“确定”。
  5. 获取访问地址。

    1. 单击页面上方的“集群控制台”,进入集群控制台。
    2. 在集群控制台,单击“工作负载 > 无状态 ( Deployment )”,单击所添加工作负载的名称进入详情界面,单击“查看访问方式”,获取访问地址。
      图1 获取节点IP

  6. 在华为云控制台首页,单击“计算 > 弹性云服务器”
  7. 在弹性云服务器页面,找到同一虚拟私有云内任意一台云服务器,并确认连接到访问地址中IP与端口的安全组是开放的。

    图2 确认安全组开放

  8. 单击“远程登录”,弹出登录页面,输入用户密码登录。
  9. 使用curl命令访问应用验证应用是否可以正常访问。

    NodePort访问方式在集群内也会分配一个集群虚拟IP,即可以在集群内部通过集群虚拟IP的验证方式验证。其中,集群虚拟IP访问端口默认与容器端口一致,例如此示例的访问端口为80端口。

    curl 192.168.0.160:80

    其中“192.168.0.160:80”5中获取到的访问地址。

    回显如下表示访问成功。

    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>

无状态工作负载创建完成后设置

  1. 登录MCP控制台,单击左侧导航栏的“资源管理”列表,选择“网络管理”,在“服务(Service)”页签下,单击“添加服务”
  2. 设置访问参数。

    • 服务名称:自定义服务名称,可与工作负载名称保持一致。
    • 命名空间:服务所在命名空间。
    • 服务类型:选择“NodePort”
    • 关联工作负载:选择关联工作负载。
    • 端口配置:
      • 协议:请根据业务的协议类型选择。
      • 容器端口:工作负载程序实际监听的端口,需用户确定。例如:nginx程序实际监听的端口为80。
      • 容器端口:映射到节点私有IP上的端口,用私有IP访问工作负载时使用,端口范围为30000-32767,建议选择“自动生成”
        • 自动生成:系统会自动分配端口号。
        • 指定端口:指定固定的节点端口,默认取值范围为30000-32767。若指定端口时,请确保同个集群内的端口唯一性。
    • 部署集群:与所属工作负载的部署集群一致,不可更改。

  3. 单击“创建”。创建成功后可在"服务(Service)"页签的列表中查看。