Container Compute Service (ACS) diintegrasikan dengan kluster terdaftar Distributed Cloud Container Platform for Kubernetes (ACK One). Anda dapat memanfaatkan kluster terdaftar ACK One untuk mengakses daya komputasi yang disediakan oleh ACS. Topik ini menjelaskan cara menggunakan daya komputasi ACS dalam kluster terdaftar ACK One.
Cara menggunakan daya komputasi ACS di kluster terdaftar ACK One
Container Compute Service (ACS) adalah layanan komputasi awan yang menyediakan sumber daya kontainer sesuai spesifikasi Kubernetes. ACS menggunakan arsitektur berlapis untuk mengimplementasikan kontrol Kubernetes dan daya komputasi. Lapisan sumber daya komputasi bertugas menjadwalkan dan mengalokasikan sumber daya ke pod, sedangkan lapisan kontrol Kubernetes mengelola beban kerja seperti Deployment, Layanan, StatefulSet, dan CronJob.
Daya komputasi ACS dapat diimplementasikan di kluster Kubernetes melalui node virtual. Dengan pendekatan ini, kluster Kubernetes mendapatkan elastisitas tinggi tanpa dibatasi oleh kapasitas komputasi fisik. Setelah menggunakan ACS untuk mengelola infrastruktur pod, kluster Kubernetes tidak perlu lagi menjadwalkan atau meluncurkan pod secara individual, serta tidak perlu memperhatikan sumber daya VM bawahnya. ACS dapat memenuhi kebutuhan sumber daya pod kapan saja.
Di kluster terdaftar ACK One, Anda harus menginstal komponen ack-virtual-node untuk menerapkan node virtual dan membuat pod ACS. Jika memerlukan peningkatan kapasitas kluster, Anda dapat membuat pod ACS pada node virtual tanpa merencanakan kapasitas sumber daya node. Pod ACS dapat berkomunikasi dengan pod pada node fisik di kluster. Untuk efisiensi sumber daya, waktu penskalaan lebih singkat, dan pengurangan biaya, kami sarankan menjadwalkan beban kerja jangka panjang dengan lalu lintas elastis ke node virtual. Saat lalu lintas bisnis menurun, pod pada node virtual dapat dilepaskan dengan cepat untuk mengurangi biaya. Pod pada node virtual beroperasi di lingkungan aman dan terisolasi yang dibangun di atas ACS, yang disebut sebagai pod ACS. Untuk informasi lebih lanjut, lihat Ikhtisar kluster terdaftar.
Prasyarat
Sebuah kluster terdaftar ACK One telah dibuat dan terhubung ke pusat data atau kluster Kubernetes penyedia layanan cloud lainnya (disarankan Kubernetes 1.24 atau lebih baru).
Komponen node virtual ACK telah diinstal dengan versi 2.13.0 atau lebih baru. Untuk informasi lebih lanjut, lihat Berikan izin RAM kepada ack-virtual-node dan Instal ack-virtual-node.
Cara menggunakan daya komputasi CPU ACS di kluster terdaftar ACK One
Setelah menginstal versi yang diperlukan dari ACK Virtual Node atau memperbarui komponen ke versi 2.13.0 atau lebih baru, Anda dapat membuat pod ACS dan instance kontainer elastis.
Saat menjadwalkan pod ke node virtual, jika Anda tidak menentukan kelas komputasi pod, instance kontainer elastis diprioritaskan untuk penjadwalan pod secara default.
Untuk menggunakan daya komputasi ACS di kluster ACK, ikuti langkah-langkah berikut:
Buat file bernama nginx.yaml dengan konten berikut:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx alibabacloud.com/acs: "true" # Gunakan daya komputasi ACS. alibabacloud.com/compute-class: general-purpose # Kelas komputasi pod ACS. alibabacloud.com/compute-qos: default # Kelas QoS pod ACS. spec: containers: - name: nginx image: mirrors-ssl.aliyuncs.com/nginx:stable-alpine ports: - containerPort: 80 protocol: TCP resources: limits: cpu: 2 requests: cpu: 2Jalankan perintah berikut untuk membuat aplikasi NGINX:
kubectl apply -f nginx.yamlJalankan perintah berikut untuk memeriksa apakah aplikasi NGINX telah diterapkan:
kubectl get pods -o wideOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-54bcbc9b66-**** 1/1 Running 0 3m29s 192.168.XX.XXX virtual-kubelet-cn-shanghai-l <none> <none> nginx-54bcbc9b66-**** 1/1 Running 0 3m29s 192.168.XX.XXX virtual-kubelet-cn-shanghai-l <none> <none>Output perintah menunjukkan bahwa kedua pod diterapkan pada node dengan
type=virtual-kubeletlabel, yang ditentukan oleh parameternodeSelectordalam konfigurasi Deployment.Jalankan perintah berikut untuk menanyakan detail pod yang dibuat untuk aplikasi NGINX:
kubectl describe pod nginx-54bcbc9b66-****Output yang diharapkan:
Annotations: ProviderCreate: done alibabacloud.com/instance-id: acs-uf6008giwgjxlvn***** alibabacloud.com/pod-ephemeral-storage: 30Gi alibabacloud.com/pod-use-spec: 2-2Gi kubernetes.io/pod-stream-port: 10250 network.alibabacloud.com/enable-dns-cache: false topology.kubernetes.io/region: cn-shanghaiOutput perintah menunjukkan bahwa konfigurasi pod mencakup anotasi
alibabacloud.com/instance-id: acs-uf6008giwgjxlvn*****. Ini menunjukkan bahwa pod tersebut adalah pod ACS.
Cara menggunakan daya komputasi GPU ACS di kluster terdaftar ACK One
Prosedur untuk menggunakan daya komputasi GPU ACS serupa dengan prosedur untuk menggunakan daya komputasi CPU ACS. Namun, Anda juga perlu memastikan bahwa komponen penjadwalan memenuhi persyaratan versi dan menambahkan beberapa konfigurasi tambahan.
Aktivasi
Fitur menggunakan daya komputasi GPU ACS di kluster ACK sedang dalam pratinjau undangan. Untuk menggunakan fitur ini, submit a ticket.
Cara menggunakan daya komputasi ACS di kluster terdaftar ACK One
...
labels:
# Tambahkan label untuk meminta sumber daya GPU ACS.
alibabacloud.com/compute-class: gpu #Atur ke gpu jika daya komputasi GPU digunakan.
alibabacloud.com/compute-qos: default #Kelas QoS, sama dengan daya komputasi ACS biasa.
alibabacloud.com/gpu-model-series: GN8IS # Model GPU. Tentukan model sebenarnya yang Anda gunakan.
...Untuk informasi lebih lanjut tentang hubungan antara kelas komputasi ACS dan kelas QoS, lihat Pemetaan antara kelas komputasi dan kelas QoS daya komputasi.
Untuk informasi lebih lanjut tentang model GPU yang didukung oleh
gpu-model-series, lihat Tentukan model GPU dan versi driver untuk pod GPU yang dipercepat ACS.
Gunakan konten berikut untuk membuat beban kerja GPU:
apiVersion: apps/v1 kind: Deployment metadata: name: dep-node-selector-demo labels: app: node-selector-demo spec: replicas: 1 selector: matchLabels: app: node-selector-demo template: metadata: labels: app: node-selector-demo # Atribut ACS. alibabacloud.com/acs: "true" # Gunakan daya komputasi ACS. alibabacloud.com/compute-class: gpu alibabacloud.com/compute-qos: default alibabacloud.com/gpu-model-series: example-model # Model GPU. Tentukan model sebenarnya yang ingin Anda gunakan, seperti T4. spec: containers: - name: node-selector-demo image: registry-cn-hangzhou.ack.aliyuncs.com/acs/stress:v1.0.4 command: - "sleep" - "1000h" resources: limits: cpu: 1 memory: 1Gi nvidia.com/gpu: "1" requests: cpu: 1 memory: 1Gi nvidia.com/gpu: "1"Jalankan perintah berikut untuk menanyakan status beban kerja yang dipercepat GPU:
kubectl get pod node-selector-demo-9cdf7bbf9-s**** -oyamlOutput yang diharapkan:
phase: Running resources: limits: #other resources nvidia.com/gpu: "1" requests: #other resources nvidia.com/gpu: "1"