Hướng dẫn cài đặt GPU Driver trên Kubernetes
Hướng dẫn cài đặt GPU Driver trên Kubernetes
Updated on 23 Feb 2024

Người dùng có thể tự cài đặt GPU Driver mong muốn trên cụm FPT Kubernetes Engine tích hợp GPU.

Các bước thực hiện như sau:

Bước 1: Khởi tạo GPU Cluster với Driver Installation là User-Install

  • Tạo Cluster chọn Driver Installation là User-Install

Bước 2: Khách hàng tự install các phần mềm để sử dụng được GPU (Driver, Toolkit, Device Plugin, …)

Tham khảo các phiên bản GPU driver:

  • Khách hàng có thể tham khảo DaemonSet cài đặt Driver dưới đây:
# Copyright 2023 FPT Cloud - PaaS
# worker.fptcloud/type=gpu

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fptcloud-gpu-driver-installer
  namespace: kube-system
  labels:
    k8s-app: gpu-driver
spec:
  selector:
    matchLabels:
      k8s-app: gpu-driver
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: nvidia-driver-installer
        k8s-app: gpu-driver
    spec:
      priorityClassName: system-node-critical
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: worker.fptcloud/type
                operator: In
                values: ["gpu"]
      tolerations:
      - operator: "Exists"
      containers:
        - image: docker.io/alpine:3.13
          name: nvidia-driver-installer
          command:
            - 'nsenter'
            - '-t'
            - '1'
            - '-m'
            - '-u'
            - '-i'
            - '-n'
            - '--'
            - 'bash'
            - '-l'
            - '-c'
            - 'curl -Ls https://raw.githubusercontent.com/fci-xplat/fke-config/main/fptcloud-gpu-driver-installer.sh | bash -s -- -p admin'
          resources:
            requests:
              cpu: 150m
          env:
          - name: NVIDIA_DRIVER_VERSION
            value: "535.54.03"
          - name: NVIDIA_TOOLKIT_INSTALL
            value: "true"
          imagePullPolicy: IfNotPresent
          securityContext:
            privileged: true
            allowPrivilegeEscalation: true
      hostPID: true
      hostNetwork: true
      hostIPC: true

Với tham số biến môi trường:

  • NVIDIA_DRIVER_VERSION: Phiên bản của Driver
  • NVIDIA_TOOLKIT_INSTALL: “true” hoặc “false”, mặc định là “true”. Tự động tự cài đặt toolkit hoặc không.
  • Để apply fptcloud daemonset vào cụm K8s dùng lệnh sau:
kubectl apply -f https://raw.githubusercontent.com/fci-xplat/fke-config/main/fptcloud-gpu-driver-installer.yaml
  • Kiểm tra trạng thái Pod của DaemonSet
kubectl get pod -n kube-system | grep "gpu-driver"
NAME                                                 READY   STATUS    RESTARTS        AGE
fptcloud-gpu-driver-installer-7tj55                  1/1     Running   0               2d17h

DaemonSet fptcloud-gpu-driver-installer sẽ shedule pod ở tất cả các worker trong Worker Group (có label worker.fptcloud/type: gpu) để tiến hành cài đặt Driver/Toolkit.

  • Kiểm tra logs của pod fptcloud-gpu-driver-installer-7tj55 xem Installer đã cài đặt xong hay chưa
kubectl logs fptcloud-gpu-driver-installer-7tj55 -n kube-system
Verifying Nvidia installation... DONE.
Clean Nvidia installation... DONE.

Nếu cài đặt thành công sẽ có logs như trên. Quá trình cài đặt thường diễn ra trong khoảng một vài phút.