Anda dapat menggunakan komponen aliyun-acr-credential-helper untuk menarik gambar privat tanpa menggunakan kata sandi dari instance Container Registry Personal Edition dan Enterprise Edition ke cluster Kubernetes mandiri. Topik ini menjelaskan cara menggunakan aliyun-acr-credential-helper untuk menarik gambar privat tanpa menggunakan kata sandi dalam dua skenario.
Prasyarat
Cluster terdaftar telah dibuat dan cluster Kubernetes eksternal terhubung ke cluster terdaftar. Untuk informasi lebih lanjut, lihat Buat cluster terdaftar di konsol ACK.
Catatan penggunaan
Komponen aliyun-acr-credential-helper membaca konfigurasi dari acr-configuration ConfigMap di namespace kube-system dari cluster ACK dan kemudian menarik gambar privat. Setelah Anda mengonfigurasi komponen aliyun-acr-credential-helper, komponen tersebut menghasilkan Secret di cluster Anda dan mengaitkan Secret dengan akun layanan yang Anda tentukan di ConfigMap acr-configuration. Secara default, semua pod yang menggunakan akun layanan ini menggunakan Secret yang dihasilkan untuk menarik gambar tanpa menggunakan kata sandi.
Jika Anda membuat akun layanan untuk menerapkan aplikasi, seperti Helm chart, akun layanan memerlukan waktu untuk dikaitkan dengan secret yang dihasilkan oleh aliyun-acr-credential-helper. Kami merekomendasikan agar Anda menggunakan fitur webhook untuk menyuntikkan secret ke akun layanan sebelum Anda menarik gambar.
Tabel berikut menjelaskan batasan penggunaan komponen aliyun-acr-credential-helper untuk menarik gambar privat tanpa menggunakan kata sandi.
Parameter | Deskripsi |
Pencermatan |
|
Cluster dan versi Kubernetes |
|
Peringatan
Item | Peringatan |
imagePullSecrets |
|
ServiceAccount |
|
Wilayah | Periksa apakah gambar privat yang ingin Anda tarik berada di wilayah cluster ACK Anda. Secara default, Anda hanya dapat menarik gambar privat dari instance Container Registry yang berada di wilayah cluster ACK Anda. Jika Anda ingin menarik gambar lintas wilayah, lihat bagian "Skenario 2: Menarik gambar lintas wilayah" dari topik ini. |
Format YAML | Saat Anda memodifikasi acr-configuration ConfigMap di namespace kube-system, pastikan Anda menggunakan indentasi yang sama seperti contoh dalam topik ini. Kami merekomendasikan agar Anda menempelkan konten YAML yang disediakan dalam topik ini ke editor, mengganti nilai yang sesuai, lalu menerapkan konfigurasi. Ini memastikan bahwa format ConfigMap valid. |
Konfigurasikan komponen aliyun-acr-credential-helper di cluster mandiri
Step 1: Grant RAM permissions to aliyun-acr-credential-helper
Gunakan onectl
Instal onectl di mesin lokal Anda. Untuk informasi lebih lanjut, lihat Gunakan onectl untuk mengelola cluster terdaftar.
Jalankan perintah berikut untuk memberikan izin RAM kepada aliyun-acr-credential-helper:
onectl ram-user grant --addon aliyun-acr-credential-helperKeluaran yang diharapkan:
Ram policy ack-one-registered-cluster-policy-aliyun-acr-credential-helper granted to ram user ack-one-user-ce313528c3 successfully.
Gunakan konsol
Sebelum Anda dapat menginstal komponen di cluster eksternal, Anda harus menyetel pasangan AccessKey untuk memberikan cluster eksternal izin mengakses sumber daya Alibaba Cloud. Sebelum menyetel pasangan AccessKey, buat pengguna RAM dan berikan pengguna RAM izin untuk mengakses sumber daya Alibaba Cloud.
Buat kebijakan kustom. Contoh:
{ "Version": "1", "Statement": [ { "Action": [ "cr:GetAuthorizationToken", "cr:ListInstanceEndpoint", "cr:PullRepository" ], "Resource": [ "*" ], "Effect": "Allow" } ] }Buat pasangan AccessKey untuk pengguna RAM.
PeringatanKami merekomendasikan agar Anda konfigurasikan kebijakan berbasis pasangan AccessKey untuk kontrol akses jaringan, membatasi sumber panggilan AccessKey ke lingkungan jaringan tepercaya untuk meningkatkan keamanan AccessKey.
Gunakan pasangan AccessKey untuk membuat Secret bernama alibaba-addon-secret di cluster terdaftar.
Sistem secara otomatis menggunakan pasangan AccessKey untuk mengakses sumber daya cloud saat Anda menginstal komponen aliyun-acr-credential-helper.
kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your access key id>' --from-literal='access-key-secret=<your access key secret>'CatatanGanti
<your access key id>dan<your access key secret>dengan pasangan AccessKey yang Anda peroleh di langkah sebelumnya.
Step 2: Update and configure aliyun-acr-credential-helper
Anda harus menginstal dan mengonfigurasi aliyun-acr-credential-helper sebelum dapat menggunakannya untuk menarik gambar tanpa menggunakan kata sandi.
Gunakan onectl
Jalankan perintah berikut untuk menginstal aliyun-acr-credential-helper:
onectl addon install aliyun-acr-credential-helperKeluaran yang diharapkan:
Addon aliyun-acr-credential-helper, version **** installed.Jika aliyun-acr-credential-helper sudah diinstal, pastikan aliyun-acr-credential-helper adalah versi terbaru. Anda dapat menjalankan perintah berikut untuk memperbarui aliyun-acr-credential-helper ke versi terbaru:
onectl addon upgrade aliyun-acr-credential-helperKeluaran yang diharapkan:
Addon aliyun-acr-credential-helper upgraded to version ****.Gunakan konsol
Jika Anda telah menginstal komponen aliyun-acr-credential-helper, pastikan komponen tersebut adalah versi terbaru. Jika tidak, perbarui komponen. Memperbarui komponen tidak memengaruhi bisnis Anda. Untuk informasi lebih lanjut, lihat Kelola komponen. Untuk informasi lebih lanjut tentang komponen aliyun-acr-credential-helper, lihat aliyun-acr-credential-helper.
Setelah komponen aliyun-acr-credential-helper diperbarui ke versi terbaru, Peran RAM yang digunakan komponen tersebut berubah. Komponen menyediakan parameter tokenMode untuk memungkinkan Anda menentukan Peran RAM yang digunakan komponen. Untuk informasi lebih lanjut tentang dampak perubahan Peran RAM yang digunakan komponen, lihat [Perubahan Produk] Cabut izin yang digunakan aliyun-acr-credential-helper.
Setelah komponen aliyun-acr-credential-helper diperbarui ke versi terbaru, Peran RAM yang digunakan komponen tersebut berubah. Komponen menyediakan parameter tokenMode untuk memungkinkan Anda menentukan Peran RAM yang digunakan komponen. Untuk informasi lebih lanjut tentang dampak perubahan Peran RAM yang digunakan komponen, lihat [Perubahan Produk] Cabut izin yang digunakan aliyun-acr-credential-helper.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan cluster yang Anda inginkan dan klik namanya. Di panel kiri, pilih .
Di halaman Add-ons, klik tab Security, temukan aliyun-acr-credential-helper, lalu klik Install.
Di halaman Parameters, gunakan nilai default auto untuk parameter tokenMode dan klik OK.
Setelah Anda memperbarui cluster ACK yang dikelola ke versi terbaru, komponen aliyun-acr-credential-helper menyediakan parameter tokenMode. Anda dapat memodifikasi parameter setelah komponen diinstal. Setelah komponen dimodifikasi, sistem membuat ulang pod untuk komponen tersebut. Cluster lama yang dijelaskan dalam tabel mengacu pada cluster yang dibuat sebelum 3 April 2023, dan cluster baru mengacu pada cluster yang dibuat pada atau setelah 3 April 2023. Tabel berikut menjelaskan nilai valid dari parameter tokenMode.
tokenMode
Deskripsi
auto
Menentukan secara otomatis apakah akan menggunakan mode managedRole, yang merupakan nilai default. Sistem menggunakan mode managedRole untuk cluster baru dan mode workerRole untuk cluster lama.
managedRole
Menggunakan mode managedRole.
workerRole
Menggunakan mode workerRole.
Skenario 1: Tarik gambar privat dari instance Container Registry Enterprise Edition dan Personal Edition
ACK memungkinkan Anda menarik gambar privat dari Container Registry Enterprise Edition dan Personal Edition secara bersamaan, dari Container Registry Enterprise Edition secara terpisah, atau dari Container Registry Personal Edition secara terpisah. Modifikasi acr-configuration ConfigMap berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan komponen. Contoh:
Enterprise Edition
apiVersion:v1 kind:ConfigMap metadata: name:acr-configuration namespace:kube-system selfLink:/api/v1/namespaces/kube-system/configmaps/acr-configuration data: acr-api-version:"2018-12-01" acr-registry-info:|- -instanceId:"cri-xxx" # Parameter default di konsol adalah #-instanceId. Anda harus menghapus tanda pagar (#) dan mengonfigurasi parameter ini. regionId:"cn-hangzhou" expiring-threshold:15m service-account:default watch-namespace:allPersonal Edition
apiVersion:v1 kind:ConfigMap metadata: name:acr-configuration namespace:kube-system selfLink:/api/v1/namespaces/kube-system/configmaps/acr-configuration data: acr-api-version:"2018-12-01" acr-registry-info:|- -instanceId:"" # Parameter default di konsol adalah #-instanceId. Anda harus menghapus tanda pagar (#) dan mempertahankan nilai default. regionId:"cn-hangzhou" expiring-threshold:15m service-account:default watch-namespace:all
Anda dapat mengonfigurasi ConfigMap acr-configuration dengan salah satu metode berikut:
Gunakan konsol
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama cluster yang ingin Anda kelola dan pilih Configurations > ConfigMaps di panel navigasi kiri.
Di bagian atas halaman ConfigMap, pilih kube-system dari daftar drop-down Namespace. Kemudian, temukan ConfigMap acr-configuration dan konfigurasikan parameternya.
Jika ConfigMap acr-configuration tidak ada, buat ConfigMap. Untuk informasi lebih lanjut, lihat Buat ConfigMap. Untuk informasi tentang cara memperbarui ConfigMaps, lihat Kelola ConfigMaps.
Klik Edit di kolom Actions untuk mengonfigurasi kunci dan nilai untuk ConfigMap.
Klik Edit YAML di kolom Actions untuk mengonfigurasi kunci dan nilai untuk ConfigMap.
Gunakan kubectl
Jalankan perintah berikut untuk masuk ke halaman pengeditan ConfigMap acr-configuration:
kubectl edit cm acr-configuration -n kube-systemKonfigurasikan parameter ConfigMap acr-configuration berdasarkan kebutuhan Anda.
Skenario 2: Tarik gambar lintas wilayah
Jika Anda ingin menarik gambar dari instance Container Registry ke cluster terdaftar dan instance Container Registry serta cluster terdaftar diterapkan di wilayah yang berbeda, Anda harus memodifikasi acr-configuration ConfigMap.
Sebagai contoh, jika Anda ingin menarik gambar dari instance Container Registry yang diterapkan di wilayah China (Beijing) dan China (Hangzhou) pada saat yang sama, modifikasi ConfigMap acr-configuration berdasarkan blok kode berikut. Untuk informasi lebih lanjut, lihat Konfigurasikan komponen.
data:
service-account: "default"
watch-namespace: "all"
expiring-threshold: "15m"
notify-email: "**@aliyuncs.com"
acr-registry-info: |
- instanceId: ""
regionId: cn-beijing
- instanceId: ""
regionId: cn-hangzhou Anda dapat mengonfigurasi ConfigMap acr-configuration dengan salah satu metode berikut:
Gunakan konsol
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama cluster yang ingin Anda kelola dan pilih Configurations > ConfigMaps di panel navigasi kiri.
Di bagian atas halaman ConfigMap, pilih kube-system dari daftar drop-down Namespace. Kemudian, temukan ConfigMap acr-configuration dan konfigurasikan parameternya.
Jika ConfigMap acr-configuration tidak ada, buat ConfigMap. Untuk informasi lebih lanjut, lihat Buat ConfigMap. Untuk informasi tentang cara memperbarui ConfigMaps, lihat Kelola ConfigMaps.
Klik Edit di kolom Actions untuk mengonfigurasi kunci dan nilai untuk ConfigMap.
Klik Edit YAML di kolom Actions untuk mengonfigurasi kunci dan nilai untuk ConfigMap.
Gunakan kubectl
Jalankan perintah berikut untuk masuk ke halaman pengeditan ConfigMap acr-configuration:
kubectl edit cm acr-configuration -n kube-systemKonfigurasikan parameter ConfigMap acr-configuration berdasarkan kebutuhan Anda.