Setelah menerapkan kluster dengan Suite AI Cloud-Native terinstal, Anda dapat mengalokasikan sumber daya kluster dan melihat penggunaannya dalam berbagai dimensi untuk mengoptimalkan pemanfaatan. Panduan ini menjelaskan operasi dasar O&M pada Suite AI Cloud-Native, seperti instalasi, penggunaan dashboard sumber daya, serta pengelolaan pengguna dan kuota.
Informasi Latar Belakang
Setelah menerapkan kluster dengan Suite AI Cloud-Native terinstal, Anda dapat mengalokasikan sumber daya kluster dan melihat penggunaannya dalam berbagai dimensi untuk mengoptimalkan pemanfaatan.
Jika kluster digunakan oleh beberapa pengguna, alokasikan jumlah sumber daya tetap kepada setiap pengguna agar tidak bersaing mendapatkan sumber daya. Metode tradisionalnya adalah menggunakan kuota sumber daya Kubernetes. Namun, pemanfaatan sumber daya bervariasi menurut kelompok pengguna. Untuk meningkatkan pemanfaatan keseluruhan kluster, izinkan pengguna berbagi sumber daya setelah alokasi awal.
Gambar berikut menunjukkan struktur organisasi perusahaan. Anda dapat menetapkan kuota elastis di berbagai tingkatan sesuai kebutuhan bisnis. Setiap node daun pada gambar sesuai dengan kelompok pengguna. Untuk mengelola izin dan kuota secara terpisah, tambahkan pengguna dalam kelompok pengguna ke satu atau lebih namespace dan berikan peran yang berbeda kepada mereka. Dengan cara ini, sumber daya dapat dibagikan di seluruh kelompok pengguna, dan pengguna dalam kelompok yang sama dapat diisolasi.

Prasyarat
Kluster Container Service for Kubernetes (ACK) Pro telah dibuat. Pastikan Monitoring Agents dan Simple Log Service diaktifkan saat membuat kluster. Untuk informasi lebih lanjut, lihat Buat kluster ACK Pro.
Versi Kubernetes kluster adalah 1.18 atau lebih baru.
Tugas
Topik ini menjelaskan cara menyelesaikan tugas-tugas berikut:
Instal Suite AI Cloud-Native
Lihat dashboard sumber daya
Tetapkan kuota sumber daya untuk kelompok pengguna
Kelola pengguna dan grup
Gunakan sumber daya idle untuk mengirimkan lebih banyak beban kerja setelah jumlah minimum sumber daya untuk setiap pengguna habis
Tetapkan jumlah maksimum sumber daya untuk setiap pengguna
Tetapkan jumlah minimum sumber daya untuk setiap pengguna
Langkah 1: Instal Suite AI Cloud-Native
Suite AI Cloud-Native mencakup komponen untuk elastisitas tugas, akselerasi data, penjadwalan tugas AI, manajemen siklus hidup tugas AI, AI Dashboard, dan AI Developer Console. Anda dapat menginstal komponen berdasarkan kebutuhan bisnis.
Deploy Cloud-native AI Suite
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Di halaman Cloud-native AI Suite, klik Deploy.
Di halaman yang muncul, pilih komponen yang ingin diinstal. Klik Deploy Cloud-native AI Suite di bagian bawah halaman. Sistem akan memeriksa lingkungan dan dependensi dari komponen yang dipilih. Setelah pemeriksaan selesai, sistem akan menerapkan komponen tersebut.
Setelah komponen terpasang, Anda dapat melihat informasi berikut di daftar Components:
Anda dapat melihat nama dan versi komponen yang dipasang di kluster. Anda dapat Deploy atau Uninstall komponen.
Jika sebuah komponen dapat diperbarui, Anda dapat Upgrade komponen tersebut.
Setelah memasang ack-ai-dashboard dan ack-ai-dev-console, Anda dapat menemukan tautan ke AI Dashboard dan AI Developer Console di pojok kiri atas halaman Cloud-native AI Suite. Anda dapat mengklik tautan untuk mengakses komponen yang sesuai.

Setelah instalasi selesai, Anda dapat menemukan hyperlink ke AI Dashboard dan AI Developer Console di pojok kiri atas halaman Cloud-native AI Suite. Anda dapat mengklik hyperlink untuk mengakses komponen yang sesuai.
Install and configure AI Dashboard
AI Console (termasuk AI Dashboard dan AI Developer Console) yang disediakan oleh Alibaba Cloud mulai diluncurkan secara bertahap melalui mekanisme whitelist mulai 22 Januari 2025.
Penyebaran yang sudah ada: Jika Anda sudah menerapkan AI Dashboard atau AI Developer Console sebelum tanggal ini, penggunaan Anda saat ini tidak terpengaruh.
Instalasi baru: Pengguna yang tidak masuk daftar putih dapat menginstal dan mengonfigurasi AI Console melalui komunitas open-source. Untuk instruksi konfigurasi open-source rinci, lihat AI Console Open-source.
Di bagian Ecosystem Tools halaman Cloud-native AI Suite, pilih Console, dan kotak dialog Note muncul.
Buat kebijakan kustom untuk memberikan izin kepada peran pekerja RAM.
Buat kebijakan kustom.
Masuk ke Konsol RAM. Di panel navigasi kiri, pilih Permissions > Policies.
Di halaman Policies, klik Create Policy.
Klik tab JSON, tambahkan informasi kebijakan berikut, dan klik OK. Di kotak dialog Create Policy, masukkan nama untuk kebijakan dalam format
k8sWorkerRolePolicy-{ClusterID}dan klik OK.{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cs:*", "log:GetProject", "log:GetLogStore", "log:GetConfig", "log:GetMachineGroup", "log:GetAppliedMachineGroups", "log:GetAppliedConfigs", "log:GetIndex", "log:GetSavedSearch", "log:GetDashboard", "log:GetJob", "ecs:DescribeInstances", "ecs:DescribeSpotPriceHistory", "ecs:DescribePrice", "eci:DescribeContainerGroups", "eci:DescribeContainerGroupPrice", "log:GetLogStoreLogs", "ims:CreateApplication", "ims:UpdateApplication", "ims:GetApplication", "ims:ListApplications", "ims:DeleteApplication", "ims:CreateAppSecret", "ims:GetAppSecret", "ims:ListAppSecretIds", "ims:ListUsers" ], "Resource": "*" } ] }
Berikan izin kepada peran pekerja RAM dari kluster.
Masuk ke Konsol RAM. Di panel navigasi kiri, pilih Identities > Roles.
Masukkan peran pekerja RAM dalam format
KubernetesWorkerRole-{ClusterID}ke dalam kotak pencarian. Temukan peran yang ingin Anda kelola dan klik Grant Permission di kolom Actions.Di bagian Select Policy, klik Custom Policy.
Masukkan nama kebijakan kustom yang Anda buat dalam format
k8sWorkerRolePolicy-{ClusterID}ke dalam kotak pencarian dan pilih kebijakan tersebut.Klik OK.
Kembali ke kotak dialog Note dan klik Authorization Check. Jika otorisasi berhasil, Authorized ditampilkan dan tombol OK menjadi tersedia. Kemudian, lakukan Langkah 3.

Atur parameter Penyimpanan Data Konsol.
Dalam contoh ini, Pre-installed MySQL dipilih. Anda dapat memilih ApsaraDB RDS di lingkungan produksi. Untuk informasi lebih lanjut, lihat Instal dan konfigurasikan AI Dashboard dan AI Developer Console.
Klik Deploy Cloud-native AI Suite.
Setelah status AI Dashboard berubah menjadi Ready, AI Dashboard siap digunakan.
(Optional) Create a dataset
Anda dapat membuat dan mempercepat dataset berdasarkan kebutuhan pengembang algoritma. Bagian berikut menjelaskan cara membuat dataset di AI Dashboard atau menggunakan CLI.
fashion-mnist dataset
Gunakan kubectl untuk membuat volume persisten (PV) dan klaim volume persisten (PVC) tipe Object Storage Service (OSS) pada node kluster.
Jalankan perintah berikut untuk membuat namespace bernama demo-ns:
kubectl create ns demo-nsBuat file YAML bernama fashion-mnist.yaml.
apiVersion: v1
kind: PersistentVolume
metadata:
name: fashion-demo-pv
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 10Gi
csi:
driver: ossplugin.csi.alibabacloud.com
volumeAttributes:
bucket: fashion-mnist
otherOpts: "-o max_stat_cache_size=0 -o allow_other"
url: oss-cn-beijing.aliyuncs.com
akId: "AKID"
akSecret: "AKSECRET"
volumeHandle: fashion-demo-pv
persistentVolumeReclaimPolicy: Retain
storageClassName: oss
volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: fashion-demo-pvc
namespace: demo-ns
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
selector:
matchLabels:
alicloud-pvname: fashion-demo-pv
storageClassName: oss
volumeMode: Filesystem
volumeName: fashion-demo-pvParameter | Deskripsi |
name: fashion-demo-pv | Nama PV. PV ini sesuai dengan PVC bernama fashion-demo-pvc. |
storage: 10Gi | Kapasitas PV adalah 10 GiB. |
bucket: fashion-mnist | Nama Bucket OSS. |
url: oss-cn-beijing.aliyuncs.com | Titik akhir Bucket OSS. Dalam contoh ini, titik akhir OSS di wilayah China (Beijing) digunakan. |
akId: "AKID" akSecret: "AKSECRET" | ID AccessKey dan Rahasia AccessKey yang digunakan untuk mengakses Bucket OSS. |
namespace: demo-ns | Nama namespace. |
Jalankan perintah berikut untuk membuat PV dan PVC:
kubectl create -f fashion-mnist.yamlPeriksa status PV dan PVC.
Jalankan perintah berikut untuk memeriksa status PV:
kubectl get pv fashion-demo-pv -ndemo-nsOutput yang diharapkan:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE fashion-demo-pv 10Gi RWX Retain Bound demo-ns/fashion-demo-pvc oss 8hJalankan perintah berikut untuk memeriksa status PVC:
kubectl get pvc fashion-demo-pvc -ndemo-nsOutput yang diharapkan:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE fashion-demo-pvc Bound fashion-demo-pv 10Gi RWX oss 8h
Accelerate a dataset
Anda dapat mempercepat dataset di AI Dashboard. Contoh berikut menunjukkan cara mempercepat dataset bernama fashion-demo-pvc di namespace demo-ns.
- Akses AI Dashboard sebagai administrator.
- Di panel navigasi kiri AI Dashboard, pilih .
Di halaman Dataset List, temukan dataset dan klik Accelerate di kolom Operator.
Gambar berikut menunjukkan dataset yang dipercepat.

Langkah 2: Lihat dashboard sumber daya
Anda dapat melihat penggunaan sumber daya kluster dalamberbagai dimensi pada dashboard sumber daya yang disediakan oleh AI Dashboard. Ini membantu Anda mengoptimalkan alokasi sumber daya dan meningkatkan pemanfaatan.
AI Console (termasuk AI Dashboard dan AI Developer Console) yang disediakan oleh Alibaba Cloud mulai diluncurkan secara bertahap melalui mekanisme whitelist mulai 22 Januari 2025.
Penyebaran yang sudah ada: Jika Anda sudah menerapkan AI Dashboard atau AI Developer Console sebelum tanggal ini, penggunaan Anda saat ini tidak terpengaruh.
Instalasi baru: Pengguna yang tidak masuk daftar putih dapat menginstal dan mengonfigurasi AI Console melalui komunitas open-source. Untuk instruksi konfigurasi open-source rinci, lihat AI Console Open-source.
Cluster dashboard
Setelah masuk ke AI Dashboard, Anda akan dialihkan ke dashboard kluster secara default. Anda dapat melihat metrik berikut di dashboard kluster:
GPU Summary Of Cluster: menampilkan jumlah total node yang dipercepat GPU, jumlah node yang dipercepat GPU yang dialokasikan, dan jumlah node yang dipercepat GPU yang tidak sehat di kluster.
Total GPU Nodes: menampilkan jumlah total node yang dipercepat GPU di kluster.
Unhealthy GPU Nodes: menampilkan jumlah node yang dipercepat GPU yang tidak sehat di kluster.
GPU Memory(Used/Total): menampilkan rasio memori GPU yang digunakan oleh kluster terhadap total memori GPU.
GPU Memory(Allocated/Total): menampilkan rasio memori GPU yang dialokasikan oleh kluster terhadap total memori GPU.
GPU Utilization: menampilkan pemanfaatan GPU rata-rata kluster.
GPUs(Allocated/Total): menampilkan rasio jumlah GPU yang dialokasikan oleh kluster terhadap jumlah total GPU.
Training Job Summary Of Cluster: menampilkan jumlah pekerjaan pelatihan yang berada dalam status Berjalan, Tertunda, Berhasil, dan Gagal.
Node dashboard
Di halaman Kluster, klik Nodes di pojok kanan atas untuk beralih ke dashboard node. Anda dapat melihat metrik berikut di dashboard node:
GPU Node Details: menampilkan informasi tentang node kluster dalam tabel. Informasi berikut ditampilkan: nama setiap node, alamat IP setiap node, peran setiap node, mode GPU setiap node (eksklusif atau dibagi), jumlah GPU yang disediakan oleh setiap node, jumlah total memori GPU yang disediakan oleh setiap node, jumlah GPU yang dialokasikan pada setiap node, jumlah memori GPU yang dialokasikan pada setiap node, jumlah memori GPU yang digunakan pada setiap node, dan pemanfaatan GPU rata-rata pada setiap node.
GPU Duty Cycle: menampilkan pemanfaatan setiap GPU pada setiap node.
GPU Memory Usage: menampilkan penggunaan memori setiap GPU pada setiap node.
GPU Memory Usage Percentage: menampilkan persentase penggunaan memori per GPU pada setiap node.
Allocated GPUs Per Node: menampilkan jumlah GPU yang dialokasikan pada setiap node.
GPU Number Per Node: menampilkan jumlah total GPU pada setiap node.
Total GPU Memory Per Node: menampilkan jumlah total memori GPU pada setiap node.
Training job dashboard
Di halaman Node, klik TrainingJobs di pojok kanan atas untuk beralih ke dashboard pekerjaan pelatihan. Anda dapat melihat metrik berikut di dashboard pekerjaan pelatihan:
Training Jobs: menampilkan informasi tentang setiap pekerjaan pelatihan dalam tabel. Informasi berikut ditampilkan: namespace setiap pekerjaan pelatihan, nama setiap pekerjaan pelatihan, tipe setiap pekerjaan pelatihan, status setiap pekerjaan pelatihan, durasi setiap pekerjaan pelatihan, jumlah GPU yang diminta oleh setiap pekerjaan pelatihan, jumlah memori GPU yang diminta oleh setiap pekerjaan pelatihan, jumlah memori GPU yang digunakan oleh setiap pekerjaan pelatihan, dan pemanfaatan GPU rata-rata setiap pekerjaan pelatihan.
Job Instance Used GPU Memory: menampilkan jumlah memori GPU yang digunakan oleh setiap instans pekerjaan.
Job Instance Used GPU Memory Percentage: menampilkan persentase memori GPU yang digunakan oleh setiap instans pekerjaan.
Job Instance GPU Duty Cycle: menampilkan pemanfaatan GPU setiap instans pekerjaan.
Resource quota dashboard
Di halaman Training Jobs, klik Quota di pojok kanan atas untuk beralih ke dashboard kuota sumber daya. Anda dapat melihat metrik berikut di dashboard kuota sumber daya: Kuota (cpu), Kuota (memory), Kuota (nvidia.com/gpu), Kuota (aliyun.com/gpu-mem), dan Kuota (aliyun.com/gpu). Setiap metrik menampilkan informasi tentang kuota sumber daya dalam tabel. Informasi berikut ditampilkan:
Elastic Quota Name: menampilkan nama grup kuota.
Namespace: menampilkan namespace tempat sumber daya berada.
Resource Name: menampilkan jenis sumber daya.
Max Quota: menampilkan jumlah maksimum sumber daya yang dapat digunakan di namespace tertentu.
Min Quota: menampilkan jumlah minimum sumber daya yang dapat digunakan di namespace tertentu ketika kluster tidak memiliki sumber daya yang cukup.
Used Quota: menampilkan jumlah sumber daya yang digunakan di namespace tertentu.
Langkah 3: Kelola pengguna dan kuota
Suite AI Cloud-Native memungkinkan Anda mengelola pengguna dan kuota sumber daya dengan menggunakan objek sumber daya berikut: Pengguna, Grup Pengguna, Pohon Kuota, Node Kuota, dan Namespace Kubernetes. Gambar berikut menjelaskan hubungan antara objek sumber daya ini.
Pohon kuota memungkinkan Anda mengonfigurasi kuota sumber daya hierarkis. Pohon kuota digunakan oleh plugin penjadwalan kapasitas. Untuk mengoptimalkan pemanfaatan keseluruhan sumber daya kluster, Anda dapat mengizinkan pengguna untuk berbagi sumber daya setelah Anda menggunakan pohon kuota untuk mengalokasikan sumber daya kepada pengguna.
Setiap pengguna di Kubernetes memiliki akun layanan. Akun layanan dapat digunakan sebagai kredensial untuk mengirimkan pekerjaan dan masuk ke konsol. Izin diberikan kepada pengguna berdasarkan peran pengguna. Sebagai contoh, peran admin dapat masuk ke AI Dashboard dan melakukan operasi pemeliharaan pada kluster. Peran peneliti dapat mengirimkan pekerjaan, menggunakan sumber daya kluster, dan masuk ke AI Developer Console. Peran admin memiliki semua izin yang dimiliki oleh peran peneliti.
Grup pengguna adalah unit terkecil dalam alokasi sumber daya. Setiap grup pengguna sesuai dengan node daun di pohon kuota. Pengguna harus dikaitkan dengan grup pengguna sebelum mereka dapat menggunakan sumber daya yang dikaitkan dengan grup pengguna tersebut.
Berikut ini menjelaskan cara menggunakan pohon kuota untuk menetapkan kuota sumber daya hierarkis dan cara menggunakan grup pengguna untuk mengalokasikan sumber daya kepada pengguna. Bagian berikut juga menjelaskan cara berbagi dan mereklaim sumber daya CPU dengan mengirimkan pekerjaan sederhana.
Add a quota node and set resource quotas
Anda dapat menetapkan kuota sumber daya dengan menentukan parameter Min dan Max dari setiap sumber daya. Parameter Min menentukan jumlah minimum sumber daya yang dapat digunakan. Parameter Max menentukan jumlah maksimum sumber daya yang dapat digunakan. Setelah Anda mengaitkan namespace dengan node daun pohon kuota, batasan yang ditetapkan pada node antara node root dan node daun berlaku untuk namespace tersebut.
Jika tidak ada namespace yang tersedia, Anda harus membuat namespace terlebih dahulu. Jika namespace tersedia, pastikan bahwa namespace yang Anda pilih tidak berisi pod dalam status Running.
kubectl create ns namespace1 kubectl create ns namespace2 kubectl create ns namespace3 kubectl create ns namespace4Buat node kuota dan kaitkan dengan namespace.
Create users and user groups
Seorang pengguna dapat termasuk dalam satu atau lebih grup pengguna. Sebuah grup pengguna dapat berisi satu atau lebih pengguna. Anda dapat mengaitkan grup pengguna berdasarkan pengguna atau mengaitkan pengguna berdasarkan grup pengguna. Anda dapat mengalokasikan sumber daya dan memberikan izin berdasarkan proyek menggunakan pohon kuota dan grup pengguna.
Buat pengguna. Untuk informasi lebih lanjut, lihat Hasilkan file kubeconfig dan token login pengguna baru.
Buat grup pengguna. Untuk informasi lebih lanjut, lihat Tambahkan grup pengguna.
Capacity scheduling example
Berikut ini menjelaskan bagaimana penjadwalan kapasitas digunakan untuk berbagi dan mereklaim sumber daya dengan membuat pod yang meminta core CPU. Setiap node kuota dikonfigurasi dengan jumlah minimum sumber daya CPU dan jumlah maksimum sumber daya CPU. Berikut ini menjelaskan prosesnya:
Tetapkan jumlah minimum sumber daya CPU dan jumlah maksimum sumber daya CPU menjadi 40 untuk node root. Ini memastikan bahwa pohon kuota memiliki 40 core CPU yang tersedia.
Tetapkan jumlah minimum sumber daya CPU menjadi 20 dan jumlah maksimum sumber daya CPU menjadi 40 untuk root.a dan root.b.
Tetapkan jumlah minimum sumber daya CPU menjadi 10 dan jumlah maksimum sumber daya CPU menjadi 20 untuk root.a.1, root.a.2, root.b.1, dan root.b.2.
Kirim tugas yang menjalankan lima pod (5 pod x 5 core/pod = 25 core) ke namespace1. Jumlah maksimum sumber daya CPU ditetapkan menjadi 20 untuk root.a.1. Oleh karena itu, empat pod (4 pod x 5 core/pod = 20 core) dapat berjalan secara normal.
Kirim tugas yang menjalankan lima pod (5 pod x 5 core/pod = 25 core) ke namespace2. Jumlah maksimum sumber daya CPU ditetapkan menjadi 20 untuk root.a.2. Oleh karena itu, empat pod (4 pod x 5 core/pod = 20 core) dapat berjalan secara normal.
Kirim tugas yang menjalankan lima pod (5 pod x 5 core/pod = 25 core) ke namespace3. Jumlah minimum sumber daya CPU ditetapkan menjadi 10 untuk root.b.1. Oleh karena itu, dua pod (2 pod x 5 core/pod = 10 core) dapat berjalan secara normal. Penjadwal mempertimbangkan prioritas, ketersediaan, dan waktu pembuatan setiap tugas dan mereklaim sumber daya CPU dari root.a. Penjadwal mereklaim satu core CPU dari root.a.1 dan satu core CPU dari root.a.2. Akibatnya, tiga pod (3 pod x 5 core/pod = 15 core) berjalan di namespace1 dan namespace2, masing-masing.
Kirim tugas yang menjalankan lima pod (5 pod x 5 core/pod = 25 core) ke namespace4. Jumlah minimum sumber daya CPU ditetapkan menjadi 10 untuk root.b.2. Oleh karena itu, dua pod (2 pod x 5 core/pod = 10 core) dapat berjalan secara normal.
Lakukan operasi berikut:
Buat namespace dan pohon kuota.
Jalankan perintah berikut untuk membuat empat namespace.
Jalankan perintah berikut untuk membuat namespace1:
kubectl create ns namespace1 kubectl create ns namespace2 kubectl create ns namespace3 kubectl create ns namespace4Buat pohon kuota berdasarkan gambar berikut.

Buat Deployment di namespace1 menggunakan template YAML berikut. Deployment ini menyediakan lima pod dan setiap pod meminta lima core CPU.
Jika Anda tidak menetapkan kuota elastis, pengguna hanya dapat menggunakan 10 core CPU karena jumlah minimum sumber daya CPU ditetapkan menjadi 10 (cpu.min=10), yang berarti dua pod dibuat. Setelah Anda menetapkan kuota elastis:
Ketika 40 core CPU tersedia di kluster, empat pod dibuat (4 pod x 5 core/pod = 20 core).
Pod terakhir berada dalam status Pending karena jumlah maksimum sumber daya (cpu.max=20) telah tercapai.
apiVersion: apps/v1 kind: Deployment metadata: name: nginx1 namespace: namespace1 labels: app: nginx1 spec: replicas: 5 selector: matchLabels: app: nginx1 template: metadata: name: nginx1 labels: app: nginx1 spec: containers: - name: nginx1 image: nginx resources: limits: cpu: 5 requests: cpu: 5Buat Deployment lain di namespace2 menggunakan template YAML berikut. Deployment ini menyediakan lima pod dan setiap pod meminta lima core CPU.
Jika Anda tidak menetapkan kuota elastis, pengguna hanya dapat menggunakan 10 core CPU karena jumlah minimum sumber daya CPU ditetapkan menjadi 10 (cpu.min=10), yang berarti dua pod dibuat. Setelah Anda menetapkan kuota elastis:
Ketika 20 core CPU (40 core - 20 core di namespace1) tersedia di kluster, empat pod (4 pod x 5 core/pod = 20 core) dibuat.
Pod terakhir berada dalam status Pending karena jumlah maksimum sumber daya (cpu.max=20) telah tercapai.
Setelah Anda membuat dua Deployment sebelumnya, pod di namespace1 dan namespace2 telah menggunakan 40 core CPU, yang merupakan jumlah maksimum core CPU untuk node root.
apiVersion: apps/v1 kind: Deployment metadata: name: nginx2 namespace: namespace2 labels: app: nginx2 spec: replicas: 5 selector: matchLabels: app: nginx2 template: metadata: name: nginx2 labels: app: nginx2 spec: containers: - name: nginx2 image: nginx resources: limits: cpu: 5 requests: cpu: 5Buat Deployment ketiga di namespace3 menggunakan template YAML berikut. Deployment ini menyediakan lima pod dan setiap pod meminta lima core CPU.
Kluster tidak memiliki sumber daya idle. Penjadwal mereklaim 10 core CPU dari root.a untuk menjamin jumlah minimum sumber daya CPU untuk root.b.1.
Sebelum penjadwal mereklaim 10 core CPU yang digunakan sementara, ia juga mempertimbangkan faktor lain, seperti prioritas, ketersediaan, dan waktu pembuatan beban kerja root.a. Oleh karena itu, setelah pod nginx3 dijadwalkan berdasarkan 10 core CPU yang direklaim, dua pod berada dalam status Running dan tiga pod lainnya dalam status Pending.
Setelah 10 core CPU direklaim dari root.a, baik namespace1 maupun namespace2 berisi dua pod yang berada dalam status Running dan tiga pod yang berada dalam status Pending.
apiVersion: apps/v1 kind: Deployment metadata: name: nginx3 namespace: namespace3 labels: app: nginx3 spec: replicas: 5 selector: matchLabels: app: nginx3 template: metadata: name: nginx3 labels: app: nginx3 spec: containers: - name: nginx3 image: nginx resources: limits: cpu: 5 requests: cpu: 5Buat Deployment keempat di namespace4 menggunakan template YAML berikut. Deployment ini menyediakan lima pod dan setiap pod meminta lima core CPU.
Penjadwal mempertimbangkan prioritas, ketersediaan, dan waktu pembuatan setiap tugas dan mereklaim sumber daya CPU dari root.a.
Penjadwal mereklaim satu core CPU dari root.a.1 dan satu core CPU dari root.a.2. Dalam skenario ini, dua pod (2 pod x 5 core CPU/pod = 10 core CPU) berjalan di namespace1. Dua pod (2 pod x 5 core CPU/pod = 10 core CPU) berjalan di namespace2.
apiVersion: apps/v1 kind: Deployment metadata: name: nginx4 namespace: namespace4 labels: app: nginx4 spec: replicas: 5 selector: matchLabels: app: nginx4 template: metadata: name: nginx4 labels: app: nginx4 spec: containers: - name: nginx4 image: nginx resources: limits: cpu: 5 requests: cpu: 5
Hasilnya menunjukkan manfaat penjadwalan kapasitas dalam alokasi sumber daya.
