Add a GPU node

Updated at:
Copy as MD

Container Service for Kubernetes (ACK) Edge clusters let you manage on-premises GPU resources in an edge node pool. This topic describes how to add a GPU-accelerated node to an edge node pool in an ACK Edge cluster.

Prerequisites

Limitations

Procedure

Kubernetes 1.26 or later

For ACK Edge clusters that run Kubernetes version 1.26 or later, you do not need to configure the gpuVersion parameter when you add a node with an NVIDIA GPU. The onboarding tool automatically detects the GPU model and installs the required components.

The procedure for adding a GPU-accelerated node is the same as for adding a standard edge node. For more information, see Add an edge node.

Note

ACK Edge clusters that run Kubernetes 1.26 or later support all series of production-grade NVIDIA GPUs, including the Tesla, Hopper (H-series), Ada Lovelace (A-series), and L-series.

Kubernetes earlier than 1.26

When you add a GPU-accelerated node to an ACK Edge cluster that runs a Kubernetes version earlier than 1.26, you must select one of the supported GPU models from the following table. If you want to use a different GPU model, submit a ticket.

OS architecture

GPU model

ACK Edge cluster version

AMD64/x86_64

Nvidia_Tesla_T4

≥1.16.9-aliyunedge.1

AMD64/x86_64

Nvidia_Tesla_P4

≥1.16.9-aliyunedge.1

AMD64/x86_64

Nvidia_Tesla_P100

≥1.16.9-aliyunedge.1

AMD64/x86_64

Nvidia_Tesla_V100

≥1.18.8-aliyunedge.1

AMD64/x86_64

Nvidia_Tesla_A10

≥1.20.11-aliyunedge.1

AMD64/x86_64

Nvidia_L40

≥1.26.3-aliyun.1

  1. Log on to the ACK console. In the left navigation pane, click Clusters.

  2. On the Clusters page, click the name of your cluster. In the left navigation pane, click Nodes > Node Pools.

  3. On the Node Pools page, select Icon > Add Existing Node from the Actions column to the right of the target node pool.

  4. On the Add Node page, click Manual to add an existing instance.

  5. Click Next to go to the instance information page. On this page, specify the node configuration parameters. For more information, see Parameter list.

    {
      "gpuVersion": "Nvidia_Tesla_T4",
      "enableIptables": true,
      "quiet": true,
      "manageRuntime": true,
      "allowedClusterAddons": [
        "kube-proxy",
        "flannel",
        "coredns"
      ]
    }
    Note
    • When you generate a node access script, you must configure the gpuVersion parameter. For the supported GPU versions, see Usage Limits.

    • After you configure this parameter, the onboarding tool automatically installs nvidia-containerd-runtime. For more information, see nvidia-containerd-runtime.

  6. After you complete the configuration, click Next. On the Complete page, click Copy, and then paste and run the script on your edge node.

    The following output indicates that the node was added successfully.

    I0410 10:54:25.801554    19419 join-node.go:241] [join-node] Config the kubelet service configuration successfully.
    I0410 10:54:25.801590    19419 join-node.go:246] [join-node] Adding edge hub static yaml
    I0410 10:54:25.801662    19419 join-node.go:279] [join-node] Add edge hub static yaml is ok
    I0410 10:54:25.801666    19419 join-node.go:384] [join-node] Start to joining node to cluster.
    I0410 10:54:27.338166    19419 join-node.go:393] [join-node] Join node to cluster successfully.
    I0410 10:54:27.338214    19419 install.go:151] [install-edgehub] Checking edgehub status
    I0410 10:54:37.357405    19419 install.go:156] [install-edgehub] Edgehub is ok
    I0410 10:54:37.357421    19419 install.go:86] [install-edgehub] Reconfiguring the kubelet configuration files.
    I0410 10:54:37.364387    19419 install.go:103] [install-edgehub] Reconfigure the kubelet configuration files successfully.
    I0410 10:54:37.364400    19419 install.go:104] [install-edgehub] Restarting the kubelet.
    I0410 10:54:52.626540    19419 install.go:127] [install-edgehub] Restart the kubelet successfully.
    I0410 10:54:52.626613    19419 postcheck.go:77] [post-check] Checking docker status
    I0410 10:54:52.629194    19419 postcheck.go:86] [post-check] docker is ok
    I0410 10:54:52.629208    19419 postcheck.go:92] [post-check] Checking kubelet status
    I0410 10:54:52.631661    19419 postcheck.go:100] [post-check] Kubelet is ok
    I0410 10:54:52.631671    19419 postcheck.go:106] [post-check] Checking edgehub status
    I0410 10:54:52.642345    19419 postcheck.go:113] [post-check] Edgehub is ok
    I0410 10:54:52.642356    19419 postcheck.go:129] [post-check] Checking addon kube-proxy status.
    I0410 10:54:52.683227    19419 postcheck.go:133] [post-check] kube-proxy is OK.
    I0410 10:54:52.683243    19419 postcheck.go:129] [post-check] Checking addon flannel status.
    I0410 10:54:52.724501    19419 postcheck.go:133] [post-check] flannel is OK.
    I0410 10:54:52.724518    19419 postcheck.go:129] [post-check] Checking addon coredns status.
    I0410 10:54:52.764745    19419 postcheck.go:133] [post-check] coredns is OK.
    I0410 10:54:52.764763    19419 postcheck.go:165] [post-check] Callback to the OpenAPI.
    I0410 10:54:53.014706    19419 postcheck.go:178] [post-check] Callback to the OpenAPI successfully.
    I0410 10:54:53.014760    19419 postcheck.go:66] This node joined into the cluster successfully.

Related topics