Mulai Cepat: Sambungkan kluster Kube yang ada ke Azure Arc

Pada mulai cepat ini, Anda akan mempelajari manfaat dari Kube yang diaktifkan Azure Arc dan cara menghubungkan kluster Kube dengan Azure Arc. Untuk tampilan konseptual dalam menyambungkan kluster ke Azure Arc, lihat artikel Arsitektur Agen Kube yang diaktifkan Azure Arc.

Jika Anda tidak memiliki langganan Azure, buatlah akun gratis sebelum Anda memulai.

Prasyarat

  • Instal atau upgrade Azure CLI ke versi = 2.16.0 dan < = 2.29.0

  • Instal ekstensi versi Azure CLI connectedk8s = 1.2.0:

    az extension add --name connectedk8s
    
  • Masuk ke Azure CLI menggunakan identitas (user atau service principal) yang ingin Anda gunakan untuk menghubungkan cluster Anda ke Azure Arc.

    • Identitas yang digunakan harus setidaknya memiliki izin 'Baca' dan 'Tulis' pada tipe sumber daya Kubernetes yang mendukung Azure Arc Microsoft.Kubernetes/connectedClusters ().
    • The Kubernetes Cluster - Azure Arc Onboarding built-in peran berguna untuk onboarding skala karena memiliki izin granular yang diperlukan untuk hanya menghubungkan cluster ke Azure Arc. Peran ini tidak memiliki izin untuk memperbarui, menghapus, atau memodifikasi kluster lain atau sumber daya Azure lainnya.
  • Kluster Kube yang sedang berjalan. Jika tidak memilikinya, Anda dapat membuat kluster menggunakan salah satu opsi berikut:

    • Kubernetes di Docker (KIND)

    • Membuat kluster Kubernetes menggunakan Docker untuk Mac atau Windows

    • Kluster Kube yang dikelola sendiri menggunakan API Kluster

    • Jika Anda ingin menyambungkan kluster OpenShift ke Azure Arc, Anda perlu menjalankan perintah berikut hanya sekali pada kluster Anda sebelum menjalankan az connectedk8s connect:

      oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
      

    Catatan

    Kluster ini perlu memiliki setidaknya satu simpul sistem operasi dan jenis arsitektur linux/amd64. Kluster dengan hanya simpul linux/arm64 belum didukung.

  • File kubeconfig dan konteks yang menunjuk ke kluster Anda.

Memenuhi persyaratan jaringan

Penting

Agen Azure Arc memerlukan URL keluar berikut pada https://:443 agar berfungsi. Untuk *.servicebus.windows.net, websocket perlu diaktifkan untuk akses keluar pada firewall dan proksi.

Titik akhir (DNS) Deskripsi
https://management.azure.com (untuk Azure Cloud), https://management.usgovcloudapi.net (untuk Azure Pemerintah AS) Diperlukan bagi agen untuk terhubung ke Azure dan mendaftarkan kluster.
https://<region>.dp.kubernetesconfiguration.azure.com (untuk Azure Cloud), https://<region>.dp.kubernetesconfiguration.azure.us (untuk Azure Pemerintah AS) Titik akhir sarana data bagi agen untuk mendorong status dan mengambil informasi konfigurasi.
https://login.microsoftonline.com, login.windows.net (untuk Azure Cloud), https://login.microsoftonline.us (untuk Azure Pemerintah AS) Diperlukan untuk mengambil dan memperbarui token Azure Resource Manager.
https://mcr.microsoft.com, https://*.data.mcr.microsoft.com Diperlukan untuk penarikan gambar kontainer untuk agen Azure Arc.
https://gbl.his.arc.azure.com (untuk Azure Cloud), https://gbl.his.arc.azure.us (untuk Azure Pemerintah AS) Diperlukan untuk mendapatkan titik akhir regional guna menarik sertifikat Identitas Layanan Terkelola yang ditetapkan sistem.
https://*.his.arc.azure.com (untuk Azure Cloud), https://usgv.his.arc.azure.us (untuk Azure Pemerintah AS) Diperlukan untuk penarikan sertifikat Identitas Terkelola yang ditetapkan sistem.
*.servicebus.windows.net, guestnotificationservice.azure.com, *.guestnotificationservice.azure.com, sts.windows.net Untuk Kluster Tersambung dan untuk Lokasi Kustom berdasarkan skenario.
https://k8connecthelm.azureedge.net az connectedk8s connect menggunakan Helm 3 untuk menyebarkan agen Azure Arc pada kluster Kubernetes. Titik akhir ini diperlukan bagi unduhan klien Helm untuk memfasilitasi penyebaran bagan helm agen.

1.Daftarkan penyedia untuk Kube yang diaktifkan Azure Arc

  1. Masukkan perintah berikut:

    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    
  2. Pantau proses pendaftaran. Pendaftaran mungkin memakan waktu hingga 10 menit.

    az provider show -n Microsoft.Kubernetes -o table
    az provider show -n Microsoft.KubernetesConfiguration -o table
    az provider show -n Microsoft.ExtendedLocation -o table
    

    Setelah terdaftar, Anda akan melihat status RegistrationState karena namespace layanan berubah menjadi Registered.

2. Buat grup sumber daya

Jalankan perintah berikut:

az group create --name AzureArcTest --location EastUS --output table

Output:

Nama Lokasi ---------- ------------ eastus AzureArcTest

3. Sambungkan kluster Kube yang ada

Jalankan perintah berikut:

az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest

Catatan

Jika Anda masuk ke Azure CLI menggunakan prinsipal layanan, parameter tambahan perlu diatur untuk mengaktifkan fitur lokasi kustom pada kluster.

Output:

Penyebaran rilis Helm berhasil
    { "aadProfile": { "clientAppId": "", "serverAppId": "", "tenantId": "" }, "agentPublicKeyCertificate": "xxxxxxxxxxxxxxxxx", "agentVersion": null, "connectivityStatus": "Connecting", "distribution": "gke", "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1", "identity": {"principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "tenantId": " xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "type": "SystemAssigned" }, "infrastructure": "gcp", "kubernetesVersion": null, "lastConnectivityTime": null, "location": "eastus", "managedIdentityCertificateExpirationTime": null, "name": "AzureArcTest1", "offering": null, "provisioningState": "Succeeded", "resourceGroup": "AzureArcTest", "tags": {} , "totalCoreCount": null, "totalNodeCount": null, "type": "Microsoft.Kubernetes/connectedClusters" }

Tip

Perintah di atas tanpa parameter lokasi yang ditentukan membuat sumber daya Kube yang diaktifkan Azure Arc di lokasi yang sama dengan grup sumber daya. Untuk membuat sumber daya Kube yang diaktifkan Azure Arc di lokasi yang berbeda, tentukan salah satu --location <region> atau -l <region> saat menjalankan perintah az connectedk8s connect.

4a. Menyambungkan menggunakan server proksi keluar

Jika kluster Anda berada di belakang server proksi keluar, Azure CLI dan Agen Kube yang diaktifkan Azure Arc perlu merutekan permintaan mereka melalui server proksi keluar.

  1. Atur variabel lingkungan yang diperlukan Azure CLI untuk menggunakan server proksi keluar:

    export HTTP_PROXY=<proxy-server-ip-address>:<port>
    export HTTPS_PROXY=<proxy-server-ip-address>:<port>
    export NO_PROXY=<cluster-apiserver-ip-address>:<port>
    
  2. Jalankan perintah sambungkan dengan parameter proksi yang ditentukan:

    az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --proxy-cert <path-to-cert-file>
    

    Catatan

    • Beberapa permintaan jaringan seperti yang melibatkan komunikasi layanan-ke-layanan dalam kluster perlu dipisahkan dari lalu lintas yang dirutekan melalui server proksi untuk komunikasi keluar. Parameter --proxy-skip-range dapat digunakan untuk menentukan rentang CIDR dan titik akhir dengan cara pemisahan dengan koma sehingga komunikasi apa pun dari agen ke titik akhir ini tidak melalui proksi keluar. Minimal, rentang CIDR dari layanan dalam kluster harus ditentukan sebagai nilai untuk parameter ini. Misalnya, katakanlah kubectl get svc -A menampilkan daftar layanan di mana semua layanan memiliki nilai ClusterIP dalam rentang 10.0.0.0/16. Maka nilai yang harus ditentukan untuk --proxy-skip-range adalah 10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc.
    • --proxy-http, --proxy-https, dan --proxy-skip-range diharapkan untuk sebagian besar lingkungan proksi keluar. --proxy-cert--proxy-cert diperlukan jika Anda perlu menyuntikkan sertifikat tepercaya yang diharapkan oleh proxy ke dalam penyimpanan sertifikat pod agen tepercaya.
    • Proksi keluar harus dikonfigurasi untuk memungkinkan koneksi websocket.

5. Memverifikasi koneksi kluster

Jalankan perintah berikut:

az connectedk8s list --resource-group AzureArcTest --output table

Output:

Name Location ResourceGroup ------------- ---------- --------------- AzureArcTest1 eastus AzureArcTest

Catatan

Setelah onboarding cluster, dibutuhkan sekitar 5 sampai 10 menit untuk metadata cluster (versi cluster, versi agen, jumlah node, dll) ke permukaan pada halaman gambaran umum sumber daya Kubernetes yang mendukung Azure Arc di portal Azure.

6. Lihat agen Azure Arc untuk Kube

Kube yang diaktifkan Azure Arc menyebarkan beberapa operator ke dalam namespace layanan azure-arc.

  1. Lihat penyebaran dan pod ini menggunakan:

    kubectl get deployments,pods -n azure-arc
    
  2. Pastikan semua pod dalam keadaan Running.

    Output:

    
     NAMA SIAP UP-TO-DATE TERSEDIA AGE deployment.apps/cluster-metadata-operator 1/1 1 1 1 13d deployment.apps/clusterconnect-agent 1/1 1 1 1 13d deployment.apps/clusteridentityoperator 1/1 1 1 13d deployment.apps/config-agent 1/1 1 1 13d deployment.apps/controller-manager 1/1 1 1 13d deployment.apps/extension-manager 1/1 1 1 1 13d deployment.apps/flux-logs-agent 1/1 1 1 1 13d deployment.apps/kube-aad-proxy 1/1 1 1 13d deployment.apps/metrics-agent 1/1 1 1 1 13d deployment.apps/resource-sync-agent 1/1 1 1  13d
     NAMA READY STATUS RESTARTS AGE pod/cluster-metadata-operator-9568b899c-2stjn 2/2 Running 0 13d pod/clusterconnect-agent-576758886d-vggmv 3/3 Running 0 13d pod/clusteridentityoperator-6f59466c87-mm96j 2/2 Running 0 13d pod/config-agent-7cbd6cb89f-9fdnt 2/2 Running 0 0 0 0 Pod13d/controller-manager-df6d56db5-kxmfj 2/2 Running 0 13d pod/extension-manager-58c94c5b89-c6q72 2/2 Running 0 13d pod/flux-logs-agent-6db9687fcb-rmxww 1/1 Running 0 13d pod/kube-aad-proxy-67b87b9f55-bthqv 2/2 Running 0 13d  pod/metrics-agent-575c565fd9-k5j2t 2/2 Running 0 13d pod/resource-sync-agent-6bbd8bcd86-x5bk5 2/2 Running 0 13d

Gambaran konseptual dari agen-agen ini tersedia di sini.

7. Bersihkan sumber daya

Anda dapat menghapus sumber daya Kube yang diaktifkan Azure Arc, semua sumber daya konfigurasi terkait, dan agen apa pun yang berjalan di kluster menggunakan Azure CLI menggunakan perintah berikut:

az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest

Catatan

Menghapus sumber daya Kube yang diaktifkan Azure Arc menggunakan portal Microsoft Azure akan menghapus sumber daya konfigurasi terkait, tetapi tidak menghapus agen yang berjalan pada kluster. Praktik terbaik adalah menghapus sumber daya Kube yang diaktifkan Azure Arc menggunakan az connectedk8s delete dan bukan portal Microsoft Azure.

Langkah berikutnya

Lanjutkan ke artikel berikutnya untuk mempelajari cara menerapkan konfigurasi ke kluster Kube yang tersambung menggunakan GitOps.