节点访问(NodePort)
节点访问 ( NodePort )表示工作负载可以从集群外部访问,节点访问方式是在每个节点上都开放一个静态端口。当外部流量访问到节点端口时,会被路由到集群中自动创建的ClusterIP服务,最终访问到工作负载。如果集群中的节点绑定了EIP,用户通过请求<EIP>:<NodePort>,也可实现工作负载的公网访问。
添加方式
您可以在创建工作负载时设置访问方式,也可以在无状态工作负载创建完成后添加访问方式。
创建工作负载时设置
创建Deployment、StatefulSet、DaemonSet等不同类型的工作负载时添加Service的方法一致。
- 参考创建无状态负载、创建有状态负载或创建守护进程集,在服务配置步骤,单击,进行工作负载服务配置。
- Service名称:自定义服务名称,取值范围为1-50字符。
- 访问类型:选择“节点访问 NodePort”。
- 服务亲和:
- 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。
- 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。
- 端口配置:
- 协议:TCP或UDP,请根据业务的协议类型选择。
- 服务端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问应用时使用,端口范围为1-65535,可任意指定。
- 容器端口:容器镜像中应用程序实际监听的端口,需用户确定。例如:nginx程序实际监听的端口为80。
- 节点端口:容器端口映射到节点私有IP上的端口,用私有IP访问应用时使用,端口范围为30000-32767,建议选择“自动生成”。
- 自动生成:系统会自动分配端口号。
- 指定端口:指定固定的节点端口,默认取值范围为30000-32767。若指定端口时,请确保同个集群内的端口唯一性。
- 设置完成后,单击“确认”。
- 单击“下一步:调度与差异化”,进行集群调度与差异化配置。设置完成后,单击“创建工作负载”完成创建。
- 获取访问地址。
- 单击左侧导航栏“服务与路由”,选择“服务”页签。
- 单击所添加的Service名称进入“服务详情”界面,获取部署集群的访问地址。如果集群下节点有绑定弹性IP,则可以通过集群下关联实例所在节点弹性IP地址 + 节点端口的形式访问后端负载。
创建工作负载后设置
- 登录UCS控制台,在左侧导航栏中选择“容器舰队”。
- 在“容器舰队”页签下找到已开通集群联邦的舰队,单击名称进入详情页。
- 在左侧导航栏中选择“服务与路由”,选择“服务”页签。
- 选择服务所在命名空间,并单击右上角“创建服务”。如需新建命名空间,请参见创建命名空间。
- 设置访问参数。
图1 创建服务
- Service名称:自定义服务名称,可与工作负载名称保持一致。
- 访问类型:选择“节点访问 NodePort”。
- 服务亲和:
- 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。
- 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。
- 端口配置:
- 协议:TCP或UDP,请根据业务的协议类型选择。
- 服务端口:容器端口映射到集群虚拟IP上的端口,用虚拟IP访问应用时使用,端口范围为1-65535,可任意指定。
- 容器端口:容器镜像中应用程序实际监听的端口,需用户确定。例如:nginx程序实际监听的端口为80。
- 节点端口:容器端口映射到节点私有IP上的端口,用私有IP访问应用时使用,端口范围为30000-32767,建议选择“自动生成”。
- 自动生成:系统会自动分配端口号。
- 指定端口:指定固定的节点端口,默认取值范围为30000-32767。若指定端口时,请确保同个集群内的端口唯一性。
- 命名空间:服务所在命名空间。
- 选择器:服务通过选择器与负载(标签)关联。单击“引用负载标签”,可选择已有的工作负载。
- 负载类型:选择需要关联的负载类型。
- 工作负载:选择一个已有的工作负载。如工作负载列表未显示,请单击刷新。
- 标签:选择工作负载后自动获取对应的标签,不可修改。
图2 引用负载标签
- 单击“确认”。创建成功后可在“服务”页签的列表中查看。
- 获取访问地址。
- 单击左侧导航栏“服务与路由”,选择“服务”页签。
- 单击所添加的Service名称进入“服务详情”界面,获取部署集群的访问地址。如果集群下节点有绑定弹性IP,则可以通过集群下关联实例所在节点弹性IP地址 + 节点端口的形式访问后端负载。
相关操作
操作 |
说明 |
---|---|
YAML创建 |
单击右上角“YAML创建”,可使用已有的YAML创建服务。 |
查看详情 |
|
编辑YAML |
单击服务名称后的“编辑YAML”,可查看并编辑当前服务的YAML文件。 |
更新 |
|
删除 |
单击服务名称后的“删除”,并单击“是”进行确认。 |
批量删除 |
|