앱 워크로드를 에지 작업자 노드에서 실행할 수 없음

가상 프라이빗 클라우드 클래식 인프라

에지 작업자 노드의 이점은 네트워킹 서비스만 실행하도록 이러한 작업자 노드를 지정할 수 있다는 것입니다.

다음을 사용하여 워크로드가 에지 작업자 노드에서 실행되고 작업자 노드 리소스를 소비하는 것을 방지할 수 있습니다.Kubernetes 오염.

시작하기 전에

  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/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
        ```
    
  2. 작업자 풀 및 작업자 노드에 dedicated=edge 레이블이 있는지 확인하십시오.

    • 작업자 풀을 확인하려면 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>
        ```
    
    
  3. dedicated=edge 레이블로 작업자 노드에 오염을 적용하십시오. 감염은 팟(pod)이 작업자 노드에서 실행되지 못하도록 방지하며, 작업자 노드에서 dedicated=edge 레이블이 없는 팟(pod)을 제거합니다. 제거된 팟(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 결함 허용을 사용하는 포드만 에지 작업자 노드에 배치됩니다.

  4. 에지 노드가 오염되었는지 확인하십시오.

    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