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