阻止应用工作负载在边缘工作节点上运行
虚拟私有云 传统基础设施
边缘工作程序节点的优点是可以将其指定为仅运行联网服务。
您可以使用以下方法防止工作负载在边缘工作节点上运行并消耗工作节点资源 Kubernetes污点。
准备工作
- 请确保您拥有以下 IAM 角色:
- 该集群的任何平台访问角色
- 经理所有命名空间的服务访问角色
- 登录您的账户。 如果适用,请将相应的资源组设定为目标。 设置集群的上下文。
-
创建带标签的工作池
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/containers?topic=containers-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/containers?topic=containers-kubernetes-service-cli#worker-pool-label-set-cli)。 ```sh {: pre} ibmcloud oc worker-pool label set --cluster CLUSTER --worker-pool POOL --label dedicated=edge ``` - 要创建经典工作池,您可以使用
-
验证工作程序池和工作程序节点是否具有
dedicated=edge标签。- 要检查 Worker 池,请使用
get命令。
ibmcloud ks worker-pool get --cluster CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID ``` * 要检查单个工作程序节点,请查看以下命令输出中的 **Labels** 字段。 ```sh {: pre} kubectl describe node <worker_node_private_IP> ``` - 要检查 Worker 池,请使用
-
使用以下方式将污点应用到工作节点:
dedicated=edge标签。 污点会阻止 Pod 在工作节点上运行,并删除没有dedicated=edge来自工作节点的标签。 除去的 pod 会重新部署到具有容量的其他工作程序节点。要将污点应用到工作池中所有现有和未来的工作节点:
ibmcloud ks worker-pool taint set -c CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID --taint dedicated=edge:NoExecute要将污点应用到各个工作节点:
kubectl taint node -l dedicated=edge dedicated=edge:NoExecute现在,仅具有
dedicated=edge容忍度的 pod 会部署到边缘工作程序节点。 -
验证边缘节点是否有污点。
kubectl describe nodes -l dedicated=edge | egrep "Taints|Hostname"示例输出:
Taints: dedicated=edge:NoExecute Hostname: 10.176.48.83 Taints: dedicated=edge:NoExecute Hostname: 10.184.58.7