Score:0

Containerd ไม่สามารถเริ่มได้หลังจาก Nvidia Config

ธง ky

ผมทำตามนี้ กวดวิชาอย่างเป็นทางการ เพื่ออนุญาตให้คลัสเตอร์ k8s แบบเปลือยมีการเข้าถึง GPU อย่างไรก็ตาม ฉันได้รับข้อผิดพลาดขณะทำเช่นนั้น

Kubernetes 1.21 บรรจุ 1.4.11 และ Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-91-generic x86_64)

ไดรเวอร์ Nvidia ได้รับการติดตั้งไว้ล่วงหน้าบนระบบปฏิบัติการที่มีเวอร์ชัน 495 Headless

หลังจากวางการกำหนดค่าต่อไปนี้ภายใน /etc/containerd/config.toml และทำการรีสตาร์ทบริการ containerd จะล้มเหลวในการเริ่มต้น ทางออก 1.

คอนเทนเนอร์ Config.toml

บันทึกระบบ ที่นี่.

# ตำแหน่งข้อมูลถาวร
รูท = "/var/lib/containerd"
# ข้อมูลสถานะรันไทม์
state = "/รัน/คอนเทนเนอร์"

# Kubernetes ไม่ได้ใช้ตัวจัดการรีสตาร์ทคอนเทนเนอร์
disabled_plugins = ["รีสตาร์ท"]

# การกำหนดค่า NVIDIA เริ่มต้นที่นี่

รุ่น = 2
[ปลั๊กอิน]
  [ปลั๊กอิน"io.containerd.grpc.v1.cri"]
    [ปลั๊กอิน".io.containerd.grpc.v1.cri".containerd]
      default_runtime_name = "nvidia"

      [ปลั๊กอิน".io.containerd.grpc.v1.cri".containerd.runtimes]
        [ปลั๊กอิน"io.containerd.grpc.v1.cri".containerd.runtimes.nvidia]
          สิทธิพิเศษ_ไม่มีโฮสต์_อุปกรณ์=เท็จ
          runtime_engine = ""
          runtime_root = ""
          runtime_type = "io.containerd.runc.v2"
          [ปลั๊กอิน"io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options]
            BinaryName = "/usr/bin/nvidia-container-runtime"

# การกำหนดค่า NVIDIA สิ้นสุดที่นี่

[แก้ปัญหา]
  ระดับ = ""

[จีอาร์พีซี]
  max_recv_message_size=16777216
  max_send_message_size = 16777216

[plugins.linux]
  ชิม = "/usr/bin/containerd-shim"
  รันไทม์ = "/usr/bin/runc"

ฉันสามารถยืนยันได้ว่าไดรเวอร์ Nvidia ตรวจพบ GPU (Nvidia GTX 750Ti) โดยเรียกใช้ nvidia-smi และได้ผลลัพธ์ดังต่อไปนี้

+--------------------------------------------- ----------------------------+
| เวอร์ชันไดรเวอร์ NVIDIA-SMI 495.44: 495.44 เวอร์ชัน CUDA: 11.5 |
|---------------------------------------++---------------- ----------------------------+
| ชื่อ GPU ความคงทน-M| Bus-Id Disp.A | ผันผวน Uncorr ECC |
| Fan Temp Perf Pwr:การใช้งาน/ความจุ| การใช้งานหน่วยความจำ | GPU-Util Compute M. |
| | | MIG M. |
|==============================+================== =====+======================|
| 0 NVIDIA GeForce ... ปิด | 00000000:02:00.0 ปิด | ไม่มี |
| 34% 34C P8 1W / 38W | 0MiB / 2000MiB | ค่าเริ่มต้น 0% |
| | | ไม่มี |
+--------------------------------------+-------- ----------------------------+

+--------------------------------------------- ----------------------------+
| กระบวนการ: |
| GPU GI CI ประเภท PID ชื่อกระบวนการ หน่วยความจำ GPU |
| รหัส ID การใช้ |
|================================================= ============================|
| ไม่พบกระบวนการทำงาน |
+--------------------------------------------- ----------------------------+

แก้ไข config.toml ที่ทำให้มันทำงานได้

in flag
สองสิ่ง: คุณอาจได้รับความช่วยเหลือที่ดีขึ้นหากคุณโพสต์บันทึกจากคอนเทนเนอร์ที่ออกจากค่าที่ไม่ใช่ศูนย์ เนื่องจากรายละเอียดมีความสำคัญประการที่สอง อย่าใช้ 1.4.11 มีการแก้ไขความปลอดภัยใน [1.4.12](https://github.com/containerd/containerd/releases/tag/v1.4.12)
XPLOT1ON avatar
ky flag
@mdaniel ที่คุณแจ้งช่องโหว่ดังกล่าว ฉันได้อัปเดตโหนดทั้งหมดแล้ว นอกจากนี้ ฉันได้อัปเดตโพสต์ด้านบนด้วยบันทึกของระบบแล้ว
Score:2
ธง in

เท่าที่ฉันสามารถบอกได้ นี่คือ:

02 ธันวาคม 03:15:36 k8s-node0 containerd[2179737]: containerd: URI ปลั๊กอินที่ปิดใช้งานไม่ถูกต้อง "รีสตาร์ท" คาดว่า io.containerd.x.vx

02 ธันวาคม 03:15:36 k8s-node0 systemd[1]: containerd.service: ออกจากกระบวนการหลักแล้ว, รหัส = ออกแล้ว, สถานะ = 1 / ล้มเหลว

ดังนั้นหากคุณ ทราบ ว่า เริ่มต้นใหม่ในความเป็นจริงปลั๊กอิน -ish เปิดใช้งานอยู่ คุณจะต้องติดตามไวยากรณ์ URI ใหม่ของมัน แต่จริงๆ แล้วฉันขอแนะนำให้แสดงความคิดเห็นในบทนั้นหรือไปกับ ปิดการใช้งานปลั๊กอิน = [], เนื่องจาก บทบาทที่สามารถจัดการคอนเทนเนอร์ได้ เราใช้ไม่ได้พูดถึงอะไรเกี่ยวกับ "รีบูต" และมี = [] รสชาติ


คุณอาจต้องการจำกัดของคุณ วารสาร ctl เรียกในอนาคตเพียงแค่ดูที่ ตู้คอนเทนเนอร์.บริการเนื่องจากมันจะโยนออก มาก ข้อความที่ทำให้ไขว้เขว: Journalctl -u containerd.service และคุณยังสามารถจำกัดให้เหลือเพียงไม่กี่บรรทัดสุดท้าย ซึ่งบางครั้งอาจช่วยเพิ่มเติมได้: Journalctl -u containerd.service --lines=250

XPLOT1ON avatar
ky flag
ขอบคุณสำหรับการตอบกลับ ฉันได้ลองใส่ `disabled_plugins` เป็นรายการว่างแล้ว มันทำให้ฉันมีข้อผิดพลาดที่แตกต่างกัน `containerd: URI คีย์ปลั๊กอินไม่ถูกต้อง "linux" คาดหวัง io.containerd.x.vx` ฉันได้แนบคอนเทนเนอร์ `config.toml` ที่สมบูรณ์ในโพสต์ต้นฉบับแล้ว ถ้าได้ดูจะดีมาก
in flag
ใช่ ดูเหมือนว่าจะเป็นปัญหาเดียวกัน `linux` เนื่องจากชื่อที่ไม่เข้าเกณฑ์นั้นเห็นได้ชัดว่าเป็นรูปแบบเก่า ดังนั้นสิ่งที่คุณน่าจะต้องการคือ `[plugins."io.containerd.runtime.v1.linux"]` เหมือนกับที่คุณเห็นกับสมาชิก `[plugins]` ที่ด้านบนของไฟล์และ [ตามที่แสดงในเทมเพลตที่ฉันลิงก์ไป](https://github.com/particuleio/symplegma-containerd/blob/v1.4.3-rel.0/templates/config.toml.j2# L132)
XPLOT1ON avatar
ky flag
ขอบคุณสำหรับความช่วยเหลือ ตอนนี้ฉันสามารถบู๊ตคอนเทนเนอร์ด้วยการกำหนดค่าแบบรวมตามเอกสาร nvidia สำหรับการอ้างอิงในอนาคต: ฉันได้อัปเดตโพสต์ต้นฉบับสำหรับ config.toml ที่อัปเดตแล้ว
in flag
ฉันดีใจที่ได้ยิน และดีใจเสมอเมื่อมันเป็นเรื่องง่ายๆ และขอให้คุณโชคดีในการเดินทางที่ใช้ GPU ใน k8s! โปรดพิจารณาใส่การกำหนดค่าแบบอินไลน์ในคำถามของคุณ เนื่องจากการลิงก์ไปยังไซต์ภายนอกจะเสี่ยงต่อการเป็น 404 สำหรับรุ่นต่อๆ ไป

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา