Anda dapat menggunakan fitur akselerasi P2P di kluster tepi untuk mempercepat penarikan gambar dan mengurangi waktu yang diperlukan untuk menerapkan aplikasi. Topik ini menjelaskan cara menggunakan fitur akselerasi P2P di kluster tepi.
Prasyarat
Sebuah instance Container Registry Enterprise Edition telah dibuat. Instance tersebut harus berupa edisi standar atau lanjutan. Untuk informasi lebih lanjut, lihat Buat Instance Container Registry Enterprise Edition.
Instance Container Registry Enterprise Edition dikonfigurasi untuk mengizinkan akses dari kluster tepi melalui Internet dan daftar putih telah dikonfigurasi untuk instance tersebut. Untuk informasi lebih lanjut, lihat Konfigurasikan Akses Melalui Internet.
Langkah 1: Dapatkan ID instance Container Registry
Masuk ke Konsol Container Registry.
Di bilah navigasi atas, pilih wilayah.
Di panel navigasi sisi kiri, klik Instances.
Di halaman Instances, klik instance Enterprise Edition yang ingin Anda kelola.
Lihat ID instance Container Registry di pojok kiri atas halaman Overview.
Step 2: Install the P2P component
Masuk ke Konsol ACK.
Di panel navigasi sisi kiri Konsol ACK, pilih .
Di halaman App Catalog, cari komponen ack-edge-acr-acceleration-p2p. Setelah menemukan komponen tersebut, klik kartu komponen.
Di panel Deploy, pilih kluster tepi.
PentingAnda harus memilih kluster tepi sebelum menyetel parameter. Jika Anda menyetel parameter sebelum memilih kluster tepi, pengaturan parameter menjadi tidak valid.
Di tab Parameters halaman detail komponen, atur parameter registryInstances ke ID instance Container Registry yang Anda peroleh di Langkah 1.
Jika beberapa instance Container Registry digunakan, pisahkan ID instance dengan koma (,) saat menyetel parameter registryInstances.
CatatanSecara default, komponen P2P menggunakan port 65001 pada node. Jika port 65001 telah digunakan oleh komponen lain, ubah port yang digunakan oleh komponen P2P sesuai kebutuhan bisnis Anda.
p2p: ... # Port of P2P Agent in host network port: 65001 # Id of ACR registry instances, support multi, e.g. "cri-xxx,cri-yyy" registryInstances: <ACR instance Id>Atur parameter
plusModesehingga satu atau lebih kolam node di kluster tepi dapat menggunakan komponen P2P untuk akselerasi P2P.CatatanUntuk informasi lebih lanjut tentang cara melihat nama dan ID kolam node, lihat Lihat Nama dan ID Kolam Node di Kluster Tepi.
p2p: plusMode: # Valid values: p2p and source. # Nilai p2p menunjukkan bahwa gambar diunduh dalam mode P2P. # Nilai source menunjukkan bahwa gambar diunduh dari komponen registry-mirror atau registri di cloud. Jika Anda menyetel parameter ke source, komponen scheduler tidak akan diterapkan di kluster Anda. downloadPattern: "p2p" # Periode retensi data yang di-cache oleh komponen registry-mirror. cacheTTL: 24h # Jalur tempat data di-cache oleh komponen registry-mirror di host. # Jika parameter ini tidak ditentukan, cache akan hilang saat kontainer registry-mirror dimulai ulang. cacheHostPath: "" # Tentukan satu atau lebih kolam node di kluster tepi. Anda dapat memperoleh nama dan ID setiap kolam node di Konsol Container Service for Kubernetes (ACK). # name: nama kolam node di kluster tepi. # id: ID kolam node. edgeNodePools: - name: "" id: "" # Jika Anda menyetel parameter ke true, fitur akselerasi transfer Object Storage Service (OSS) diaktifkan selama penarikan dari asal melalui Internet. Fitur ini berlaku untuk skenario di mana Internet tidak stabil. Misalnya, Anda dapat mengaktifkan fitur ini saat gambar ditarik lintas wilayah melalui Internet. # Sebelum konfigurasi, pastikan bahwa fitur akselerasi transfer diaktifkan di konsol OSS. ossInternetAccelerate: false # Jika Anda menyetel parameter ke true, komponen scheduler dan registry-mirror diterapkan pada node tertentu. # Sebelum konfigurasi, Anda harus menambahkan label berikut ke node: k8s.aliyun.com/p2p-plus-node=true. nodeSelectorEnable: falseOpsional: Jika kluster Anda dan instance Container Registry Enterprise Edition berada di wilayah yang berbeda, atur parameter region ke wilayah instance Container Registry Enterprise Edition.
# Kluster Anda dan instance Container Registry Enterprise Edition berada di wilayah yang berbeda. Tentukan wilayah instance Container Registry Enterprise Edition. region: ""Opsional: Jika Anda ingin menentukan batas atas total bandwidth untuk unggah dan unduh oleh komponen P2P, atur parameter ratelimit. Nilai default adalah 5 MB/s. Anda dapat menentukan nilai berdasarkan bandwidth node.
p2p: # Total net rate limit (MBytes/s) for uploading and downloading ratelimit: "5M"Di panel Deploy, klik Create.
Langkah 3: Aktifkan akselerasi P2P
Anda dapat menambahkan label akselerasi P2P ke beban kerja seperti pod dan Deployment untuk mengaktifkan akselerasi P2P untuk beban kerja tersebut. Anda juga dapat menambahkan label akselerasi P2P ke namespace di kluster ACK Anda. Dengan cara ini, akselerasi P2P diaktifkan untuk semua beban kerja yang memenuhi kondisi akselerasi di namespace tersebut. Anda tidak perlu memodifikasi file YAML beban kerja tertentu untuk mengaktifkan akselerasi P2P. Pilih metode untuk menambahkan label akselerasi P2P berdasarkan kebutuhan bisnis Anda.
Nama label akselerasi P2P adalah k8s.aliyun.com/image-accelerate-mode dan nilainya adalah p2p.
Tambahkan Label Akselerasi P2P ke Beban Kerja
Dalam contoh ini, tambahkan label akselerasi P2P ke Deployment. Jalankan perintah berikut untuk mengedit file YAML Deployment:
kubectl edit deploy <Nama Deployment>Tambahkan label
k8s.aliyun.com/image-accelerate-mode: p2pke file YAML Deployment.apiVersion: apps/v1 kind: Deployment metadata: name: test labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: # aktifkan P2P k8s.aliyun.com/image-accelerate-mode: p2p app: nginx spec: # rahasia penarikan gambar instansi ACR Anda imagePullSecrets: - name: test-registry containers: # gambar instansi ACR Anda - image: test-registry-vpc.cn-hangzhou.cr.aliyuncs.com/docker-builder/nginx:latest name: test command: ["sleep", "3600"]Tambahkan Label Akselerasi P2P ke Namespace
Tambahkan Label Akselerasi P2P ke Namespace di Konsol ACK
Masuk ke Konsol ACK.
Di panel navigasi sisi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik nama kluster atau klik Details di kolom Actions.
Di panel navigasi sisi kiri, klik Namespaces and Quotas.
Di halaman Namespace, temukan namespace yang ingin Anda konfigurasi dan klik Edit di kolom Actions.
Di bagian Label kotak dialog Edit Namespace, atur parameter Variable Key ke
k8s.aliyun.com/image-accelerate-modedan parameter Variable Value kep2p, lalu klik OK.
Tambahkan Label Akselerasi P2P ke Namespace Menggunakan kubectl
kubectl label namespaces <your-namespace> k8s.aliyun.com/image-accelerate-mode=p2p
Verifikasi akselerasi P2P
Setelah akselerasi P2P diaktifkan untuk pod, komponen P2P secara otomatis menambahkan informasi terkait P2P ke file YAML pod. Informasi tersebut mencakup anotasi terkait P2P, alamat gambar yang dipercepat P2P, dan Rahasia untuk menarik gambar yang dipercepat P2P.
Rahasia untuk menarik gambar yang dipercepat P2P dan Rahasia untuk menarik gambar asli hanya berbeda dalam nama domain repositori gambar. Konfigurasi lain dari kedua Rahasia tersebut sama. Jika informasi pengguna tidak valid di Rahasia untuk menarik gambar asli, gambar yang dipercepat P2P juga gagal ditarik.
Jalankan perintah berikut untuk melihat file YAML pod:
kubectl get po <Nama Pod> -oyamlKeluaran yang Diharapkan:
apiVersion: v1
kind: Pod
metadata:
annotations:
# inject p2p-annotations automatically
k8s.aliyun.com/image-accelerate-mode: p2p
k8s.aliyun.com/p2p-config: '...'
spec:
containers:
# inject image to p2p endpoint
- image: test-registry-vpc.distributed.cn-hangzhou.cr.aliyuncs.com:65001/docker-builder/nginx:latest
imagePullSecrets:
- name: test-registry
# inject image pull secret for p2p endpoint
- name: acr-credential-test-registry-p2pJika anotasi terkait P2P, alamat gambar yang dipercepat P2P, dan Rahasia untuk menarik gambar yang dipercepat P2P ada di file YAML, akselerasi P2P diaktifkan.
Lihat nama dan ID kolam node di kluster tepi
Masuk ke Konsol ACK.
Di panel navigasi sisi kiri Konsol ACK, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik nama kluster atau klik Details di kolom Actions. Halaman detail kluster akan muncul.
Di panel navigasi sisi kiri halaman detail, pilih .
Di halaman Node Pools, lihat nama semua kolam node. Klik nama kolam node yang ID-nya ingin Anda lihat.
Di bagian Node Pool Information halaman detail kolam node, lihat ID kolam node.