将路由器隔离至边缘节点

要确保路由器 pod 始终调度到边缘工作者节点,必须创建或使用现有的工作者池,每个区域至少有两个边缘工作者节点。

准备工作

  • 请确保您拥有以下 IAM 角色:
    • 该集群的任何平台访问角色
    • 所有命名空间的 “写入者”或 “管理员”服务访问角色
  • 访问您的Red Hat OpenShift簇

将工作负载隔离到边缘工作节点

要将工作负载隔离到边缘工作节点:

  1. 创建带标签的工作池 dedicated=edge 或者将标签添加到您现有的工作池之一。

    • 要创建经典工作池,您可以使用 worker-pool create classic命令
        ibmcloud oc worker-pool create classic --name POOL_NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone WORKERS_PER_ZONE --hardware ISOLATION --label dedicated=edge
        ```
    * 要创建 VPC 工作池,您可以使用 `worker-pool create vpc-gen2`[命令](/docs/openshift?topic=openshift-kubernetes-service-cli#worker-pool-create-vpc-gen2-cli)。
    ```sh {: pre}
        ibmcloud oc worker-pool create vpc-gen2 --name POOL_NAME --cluster CLUSTER --flavor FLAVOR --size-per-zone WORKERS_PER_ZONE --hardware ISOLATION --label dedicated=edge
        ```
    * 要标记现有的工作池,您可以使用 `worker-pool label set`[命令](/docs/openshift?topic=openshift-kubernetes-service-cli#worker-pool-label-set-cli)。
    ```sh {: pre}
        ibmcloud oc worker-pool label set --cluster CLUSTER --worker-pool POOL --label dedicated=edge
        ```
    
  2. 验证工作程序池和工作程序节点是否具有 dedicated=edge 标签。

    • 要检查工作池,请使用 get 命令。
        ibmcloud oc worker-pool get --cluster CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID
        ```
    * 要检查单个工作程序节点,请查看以下命令输出中的 **Labels** 字段。
    ```sh {: pre}
        oc describe node <worker_node_private_IP>
        ```
    
    
    
    
  3. 检索集群中所有现有的 Ingress 控制器。

    oc get ingresscontroller -n openshift-ingress-operator
    

    示例输出

    NAME      AGE
    default   5h37m
    
  4. 编辑入口控制器。

    oc edit ingresscontroller -n openshift-ingress-operator default
    
  5. 设置 spec.nodePlacement 字段替换为以下内容。 有关详细信息,请参阅 Red Hat文档

    nodePlacement:
      nodeSelector:
        matchLabels:
          dedicated: edge
        tolerations:
        - effect: NoSchedule
          operator: Exists
    
  6. 保存并关闭该文件。

  7. 请确认路由器 Pod 已调度到边缘节点,且未调度到计算节点。

    oc describe nodes -l dedicated=edge | grep "router-*"
    

    示例输出

    openshift-ingress                       router-default-7784f69c7c-qq577           100m (2%)     0 (0%)      256Mi (1%)       0 (0%)         5m4s
    openshift-ingress                       router-default-7784f69c7c-7rwrj           100m (2%)     0 (0%)      256Mi (1%)       0 (0%)         5m5s
    
  8. 请确认没有路由器 Pod 部署到非边缘节点上。

    oc describe nodes -l dedicated!=edge | grep "router-*"
    

    如果路由器 Pod 已正确部署到边缘节点,则不会返回任何路由器 Pod。 您的路由器已成功重新调度至仅边缘工作节点上。

您已使用 dedicated=edge 为工作节点池中的工作节点添加了标签,并将所有现有的ALB重新部署到了边缘节点上。 此后添加到集群中的所有 ALB 也会部署到您的边缘工作器池中的某个边缘节点上。 接下来你可以防止其他 在边缘工作节点上运行的工作负载