Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
CanIPull adalah alat diagnostik untuk Azure Kubernetes Service (AKS). Sebarkan dengan menggunakan Azure Copilot atau manifes Kubernetes lengkap dalam artikel ini. CanIPull membaca konfigurasi identitas kluster dari satu simpul yang dipilih, memeriksa resolusi DNS untuk server autentikasi Azure Container Registry (ACR), dan memvalidasi pertukaran token ACR awal.
Artikel ini menunjukkan cara menjalankan CanIPull dengan menggunakan Azure Copilot atau manifes Kubernetes. CanIPull v0.1.0 berjalan pada satu node LINUX AMD64 sekali waktu. Ulangi pemeriksaan pada node lain yang didukung untuk membandingkan konektivitas atau konfigurasinya.
Important
CanIPull bukan uji tarik gambar end-to-end. Hasil yang berhasil tidak mengonfirmasi akses ke repositori, manifes gambar, atau lapisan gambar karena CanIPull tidak memilih atau menarik gambar.
Prasyarat
Sebelum memulai, Anda memerlukan:
- Kluster AKS yang ada dengan setidaknya satu node LINUX AMD64.
- Instans ACR yang sudah ada yang ingin Anda uji.
Untuk menyebarkan CanIPull dengan Azure Copilot, Anda juga memerlukan akses ke Azure Copilot di portal Azure.
Untuk menyebarkan CanIPull secara manual, Anda juga perlu:
- Azure CLI sudah terpasang.
- Sesi Azure CLI terautentikasi dengan izin untuk mendapatkan kredensial pengguna untuk kluster AKS dan membaca instans ACR.
-
kubectldikonfigurasi untuk menyambungkan ke kluster AKS Anda. - Izin Kubernetes untuk melihat daftar node pada cakupan kluster; membuat, melihat, melihat daftar, memantau, dan menghapus pod di namespace
default; serta melihat log pod di namespacedefault.
Menyebarkan CanIPull dengan Azure Copilot
Azure Copilot dapat memilih kluster AKS, node LINUX AMD64, dan server autentikasi ACR, lalu menyebarkan CanIPull untuk Anda. Diagnostik memeriksa resolusi DNS dan pertukaran token ACR dari simpul yang dipilih. Ini tidak memilih atau mengakses repositori atau gambar.
- Di portal Azure, buka Copilot.
- Masukkan salah satu perintah berikut:
Help me deploy CanIPull to my AKS cluster.Can an AMD64 Linux node in my AKS cluster resolve and authenticate to a specific Azure Container Registry?Help me test ACR token exchange from an AMD64 Linux node in my AKS cluster.
- Pilih kluster AKS dan node AMD64 Linux tempat Anda ingin CanIPull dijalankan.
- Pilih instans ACR yang server autentikasinya ingin Anda gunakan untuk pemeriksaan pertukaran DNS dan token.
- Tinjau pilihan, lalu konfirmasi penerapan.
- Setelah penyebaran selesai, ikuti perintah untuk membuka panel Jalankan perintah .
- Tinjau log CanIPull untuk dns, identitas kluster, dan hasil pertukaran token ACR.
Untuk informasi selengkapnya tentang pengalaman ini, lihat Menggunakan CanIPull dengan Azure Copilot.
Menyebarkan CaniPull secara manual
Untuk menyebarkan CanIPull secara manual, sambungkan ke kluster, pilih node Linux AMD64, dapatkan server login ACR yang sepenuhnya memenuhi syarat, simpan manifes pod lengkap yang disediakan di bagian ini sebagai canipull.yaml, dan jalankan kubectl apply --filename canipull.yaml. Pod sekali pakai memungkinkan Anda memilih node target dan memeriksa log diagnostik secara langsung melalui kubectl.
Important
Manifes dipasang /etc/kubernetes/azure.json dari simpul yang dipilih. File ini berisi konfigurasi identitas kluster sensitif. Sebarkan pod hanya jika Anda adalah administrator kluster tepercaya. Jangan meningkatkan verbositas CanIPull karena tingkat yang lebih tinggi dapat mencetak token akses. Hapus pod segera setelah Anda menyelesaikan pengujian.
Sambungkan ke kluster dan pilih simpul
Atur variabel untuk kluster AKS dan instans ACR.
RESOURCE_GROUP=<resource-group> CLUSTER_NAME=<aks-cluster-name> ACR_NAME=<acr-name>Dapatkan kredensial kluster.
az aks get-credentials \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAMEDapatkan server masuk ACR. CanIPull mengharapkan nama server login lengkap, seperti
myregistry.azurecr.io, bukan nama sumber daya ACR.ACR_LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --query loginServer \ --output tsv) echo $ACR_LOGIN_SERVERCantumkan simpul AMD64 Linux dan pilih simpul tempat Anda ingin menjalankan pemeriksaan diagnostik. CanIPull
v0.1.0hanya mendukung simpul AMD64.kubectl get nodes \ --selector kubernetes.io/os=linux,kubernetes.io/arch=amd64 \ --output wide
Membuat dan menyebarkan manifes CanIPull lengkap
Salin manifes lengkap ke dalam file bernama
canipull.yaml. Ganti<target-linux-node>dan<acr-login-server>dengan nama node dan server login ACR dari bagian sebelumnya. Manifest mengikat CanIPull ke node yang dipilih, menonaktifkan pemasangan token akun layanan dan eskalasi hak istimewa, serta memasang konfigurasi node yang diperlukan dalam mode hanya baca.apiVersion: v1 kind: Pod metadata: name: canipull namespace: default labels: app: canipull spec: automountServiceAccountToken: false nodeName: <target-linux-node> restartPolicy: Never containers: - name: canipull image: mcr.microsoft.com/aks/canipull:v0.1.0 imagePullPolicy: IfNotPresent args: - <acr-login-server> securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true volumeMounts: - name: azure-config mountPath: /etc/kubernetes/azure.json readOnly: true volumes: - name: azure-config hostPath: path: /etc/kubernetes/azure.json type: FileBuat pod.
kubectl apply --filename canipull.yamlTunggu hingga pod selesai.
kubectl get pod canipull --watchTekan Ctrl+C saat status pod berubah menjadi
CompletedatauError.
Meninjau hasil CanIPull
Lihat output diagnostik.
kubectl logs canipull
Pengujian yang berhasil mencakup hasil berikut:
- Server autentikasi ACR diselesaikan melalui DNS.
- CanIPull membaca konfigurasi Azure dari simpul.
- Identitas kubelet klaster atau prinsipal layanan dapat melakukan autentikasi.
- ACR menerima pertukaran token awal.
Hasil ini hanya mengonfirmasi bahwa simpul yang dipilih dapat menyelesaikan server autentikasi ACR dan bahwa identitas kluster dapat menyelesaikan pertukaran token awal. CanIPull tidak menarik gambar atau memvalidasi akses ke repositori, manifes gambar, atau lapisan gambar.
Pesan keberhasilan akhir alat ini menggunakan redaksi yang lebih luas daripada ruang lingkup pengujian dan menyerupai keluaran berikut:
Your cluster can pull images from <acr-login-server>!
Untuk memverifikasi penarikan gambar end-to-end, sebarkan beban kerja yang mereferensikan gambar di repositori target.
Jika pengujian gagal, tinjau baris log yang ditandai FAILED. Penyebab umumnya meliputi:
- Server autentikasi ACR tidak dapat di-resolve dari node yang dipilih.
- Simpul yang dipilih tidak berisi
/etc/kubernetes/azure.json. - Kredensial identitas kluster tidak valid.
- ACR menolak pertukaran token untuk identitas kubelet atau perwakilan layanan.
Jika pertukaran token gagal karena identitas tidak berwenang untuk mengakses ACR, lihat Mengautentikasi dengan ACR dari AKS.
Membersihkan sumber daya
Hapus pod CanIPull dan hapus aksesnya ke konfigurasi node.
kubectl delete pod canipull