Anda dapat menggunakan fitur percepatan P2P di klaster lokal dan klaster di cloud pihak ketiga untuk mempercepat penarikan gambar serta mengurangi waktu yang diperlukan untuk menerapkan aplikasi. Topik ini menjelaskan cara menggunakan fitur percepatan P2P di kedua jenis klaster tersebut.
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 klaster lokal atau klaster di cloud pihak ketiga melalui Internet, serta daftar putih telah dikonfigurasi untuk instance tersebut. Untuk informasi lebih lanjut, lihat Konfigurasikan Akses melalui Internet.
- Operasi berikut dilakukan di lingkungan tempat Anda menjalankan perintah:
- Instal Helm. Untuk informasi lebih lanjut, lihat Helm.
- Instal klien kubectl dan gunakan kubectl untuk mengakses klaster.
Prosedur
- Jalankan perintah berikut untuk menginstal komponen P2P menggunakan Helm:
export ACR_INSTANCE_REGION="<region of acr instance >" export ACR_INSTANCE_ID="<id of acr instance >" export ALIYUN_AK="<aliyun access key>" export ALIYUN_SK="<aliyun access key secret >" export P2P_CHART="https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/app/charts-incubator/ack-acr-acceleration-p2p-0.2.3.tgz" helm install ack-acr-acceleration-p2p $P2P_CHART -n aliyun-acr-acceleration --create-namespace \ --set region=$ACR_INSTANCE_REGION \ --set accessKey=$ALIYUN_AK \ --set accessKeySecret=$ALIYUN_SK \ --set p2p.registryInstances=$ACR_INSTANCE_ID \ --set pullImageInternet=true \ --set p2p.plusMode.enable=trueSelama instalasi, Anda dapat menambahkan pengaturan parameter berikut sesuai kebutuhan Anda:# Periode retensi data yang di-cache oleh komponen registry-mirror. Periode retensi default adalah 24 jam. Anda dapat mengubah nilai ini berdasarkan kapasitas disk node. --set p2p.plusMode.cacheTTL=<waktu kustom> # Jalur tempat data di-cache oleh komponen registry-mirror pada host. # Jika parameter ini tidak ditentukan, cache akan hilang saat kontainer registry-mirror di-restart. --set p2p.plusMode.cacheHostPath=<jalur host> # Fitur percepatan 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 percepatan transfer diaktifkan di konsol OSS. --set p2p.plusMode.ossInternetAccelerate=true # Nilai sumber menunjukkan bahwa gambar diunduh dari komponen registry-mirror atau registri di cloud. Dalam hal ini, komponen scheduler tidak diterapkan ke klaster Anda. --set p2p.plusMode.downloadPattern=source # 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. --set p2p.plusMode.nodeSelectorEnable=true - Aktifkan percepatan P2P.Anda dapat menambahkan label percepatan P2P ke beban kerja seperti pod dan Deployment untuk mengaktifkan percepatan P2P pada beban kerja tersebut. Selain itu, Anda juga dapat menambahkan label percepatan P2P ke namespace di klaster Anda. Dengan cara ini, percepatan P2P akan diaktifkan untuk semua beban kerja yang memenuhi kondisi percepatan di namespace tersebut, sehingga tidak perlu memodifikasi file YAML beban kerja tertentu. Pilih metode penambahan label percepatan P2P berdasarkan kebutuhan bisnis Anda.Catatan Nama label percepatan P2P adalah
k8s.aliyun.com/image-accelerate-modedengan nilaip2p.- Tambahkan label percepatan P2P ke beban kerjaDalam contoh ini, tambahkan label percepatan P2P ke Deployment. Jalankan perintah berikut untuk mengedit file YAML Deployment:
Tambahkan labelkubectl edit deploy <Nama Deployment>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 percepatan P2P ke namespace
Jalankan perintah berikut untuk menambahkan label percepatan P2P ke namespace:
kubectl label namespaces <your-namespace> k8s.aliyun.com/image-accelerate-mode=p2p
- Tambahkan label percepatan P2P ke beban kerja
- Verifikasi percepatan P2P.Setelah percepatan 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.Penting
- Jika tidak ada gambar dari instance Container Registry Enterprise Edition yang ditentukan dalam file YAML asli pod, komponen P2P tidak akan menambahkan informasi di atas ke file tersebut. Jika tidak ada Rahasia untuk menarik gambar dari instance Container Registry Enterprise Edition dalam mode reguler yang dikonfigurasi, komponen P2P juga tidak akan menambahkan informasi tersebut.
- 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 dalam 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: # injeksi anotasi p2p secara otomatis k8s.aliyun.com/image-accelerate-mode: p2p k8s.aliyun.com/p2p-config: '...' spec: containers: # injeksi gambar ke titik akhir p2p - image: test-registry-vpc.distributed.cn-hangzhou.cr.aliyuncs.com:65001/docker-builder/nginx:latest imagePullSecrets: - name: test-registry # injeksi rahasia penarikan gambar untuk titik akhir p2p - 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, percepatan P2P telah diaktifkan.
- Opsional:Jalankan perintah berikut untuk memodifikasi parameter komponen P2P sesuai kebutuhan Anda:
helm upgrade ack-acr-acceleration-p2p $P2P_CHART -n aliyun-acr-acceleration \ --set p2p.plusMode.cacheTTL=72h - Opsional:Jalankan perintah berikut untuk menghapus instalasi komponen P2P:
helm uninstall ack-acr-acceleration-p2p -n aliyun-acr-acceleration