节点访问(NodePort) 操作场景 节点访问 ( NodePort )是指在每个节点的IP上开放一个静态端口,通过静态端口对外暴露服务。节点访问 ( NodePort )会路由到ClusterIP服务,这个ClusterIP服务会自动创建。通过请求 : ,可以从集群的外部访问一个NodePort服务。 约束与限制 “节点访问 ( NodePort )”默认为VPC内网访问,如果需要使用弹性IP通过公网访问该服务,请提前在集群的节点上绑定弹性IP。 创建service后,如果服务亲和从集群级别切换为节点级别,连接跟踪表将不会被清理,建议用户创建service后不要修改服务亲和属性,如需修改请重新创建servcie。 同一个节点内的容器不支持访问externalTrafficPolicy为local的service。 工作负载创建时设置 您可以在创建工作负载时通过控制台设置Service访问方式,本节以nginx为例进行说明。 步骤 1 参考创建无状态负载(Deployment)、创建有状态负载(StatefulSet)或创建守护进程集(DaemonSet),在“工作负载访问设置”步骤,单击“添加服务”。 访问类型:选择“节点访问 ( NodePort )”。 说明: 如果需要使用弹性IP通过公网访问该服务,请提前在集群的节点上绑定弹性IP。 Service 名称:自定义服务名称,可与工作负载名称保持一致。 服务亲和: − 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。 − 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。 端口配置: − 协议:请根据业务的协议类型选择。 − 容器端口:容器镜像中工作负载实际监听的端口,取值范围为165535。 − 访问端口:容器端口映射到节点私有IP上的端口,建议选择“自动生成”。 自动生成:系统会自动分配端口号。 指定端口:指定固定的节点端口,默认取值范围为3000032767。若指定端口时,请确保同个集群内的端口唯一性。 步骤 2 完成配置后,单击“确定”。 步骤 3 单击“下一步:高级设置”进入高级设置页面,直接单击“创建”。 步骤 4 单击“查看工作负载详情”,在访问方式页签下获取访问地址,例如“192.168.0.160:30358”。 工作负载创建完成后设置 您可以在工作负载创建完成后对Service进行配置,此配置对工作负载状态无影响,且实时生效。具体操作如下: 步骤 1 登录CCE控制台,在左侧导航栏中选择“工作负载 > 无状态负载 Deployment”,在工作负载列表页单击要设置Service的工作负载名称。 说明: 如果当前Service被关联到Ingress,则更新Service的端口信息后Ingress将不可用,需要删除重建。 步骤 2 在“Service”页签,单击“添加Service”。 步骤 3 在“添加Service”页面,访问类型选择“节点访问 ( NodePort )”。 说明: 如果需要使用弹性IP通过公网访问该服务,请提前在集群的节点上绑定弹性IP。 步骤 4 设置节点访问参数: Service 名称:自定义服务名称,可与工作负载名称保持一致。 集群名称:工作负载所在集群的名称,此处不可修改。 命名空间:工作负载所在命名空间,此处不可修改。 关联工作 负载:要添加Service的工作负载,此处不可修改。 服务亲和: − 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。 − 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。 端口配置: − 协议:请根据业务的协议类型选择。 − 容器端口:容器镜像中工作负载程序实际监听的端口,需用户确定。nginx程序实际监听的端口为80。 − 访问端口:容器端口映射到节点私有IP上的端口,建议选择“自动生成”。 自动生成:系统会自动分配端口号。 指定端口:指定固定的节点端口,默认取值范围为3000032767。若指定端口时,请确保同个集群内的端口唯一性。 步骤 5 单击“创建”。工作负载已添加“节点访问 ( NodePort )”的服务。 验证访问方式 步骤 1 在管理控制台首页,单击“计算 > 弹性云主机”。 步骤 2 在弹性云主机页面,找到同一VPC内任意一台云服务器,并确认连接到访问地址中IP与端口的安全组是开放的。 步骤 3 单击“远程登录”,弹出登录页面,输入用户密码登录。 步骤 4 使用curl命令访问工作负载验证工作负载是否可以正常访问。 说明: 节点访问(NodePort)会在集群内节点上分配一个虚拟IP,即可以在集群内部通过虚拟IP的验证方式验证。其中,虚拟IP访问端口默认与容器端口一致。 如果需要使用弹性IP通过公网访问该服务,请提前在集群的节点上绑定弹性IP。 curl 192.168.0.160:30358 其中“192.168.0.160:30358”为步骤4中获取到的访问地址,即节点虚拟IP+访问端口。 回显如下表示访问成功。 Welcome to nginx! body { width: 35em; margin: 0 auto; fontfamily: Tahoma, Verdana, Arial, sansserif; } Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to Thank you for using nginx. 更新Service 您可以在添加完Service后,更新此Service的端口配置,操作步骤如下: 步骤 1 登录CCE控制台,在左侧导航栏中选择“资源管理 > 网络管理”,在Service页签下,选择对应的集群和命名空间,单击需要更新端口配置的Service后的“更新”。 步骤 2 在更新Service页面,访问类型选择“节点访问 ( NodePort )”。 步骤 3 更新节点访问参数: Service 名称:您创建的Service名称,此处不可修改。 集群名称:工作负载所在集群的名称,此处不可修改。 命名空间:工作负载所在命名空间,此处不可修改。 关联工作负载:要添加Service的工作负载,此处不可修改。 服务亲和: − 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。 − 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。 端口配置: − 协议:请根据业务的协议类型选择。 − 容器端口:容器镜像中工作负载程序实际监听的端口,需用户确定。nginx程序实际监听的端口为80。 − 访问端口:容器端口映射到节点私有IP上的端口,建议选择“自动生成”。 自动生成:系统会自动分配端口号。 指定端口:指定固定的节点端口,默认取值范围为3000032767。若指定端口时,请确保同个集群内的端口唯一性。 步骤 4 单击“更新”。工作负载已更新Service。