Mulai Cepat: Sambungkan kluster Kube yang ada ke Azure Arc

Mulai menggunakan Kubernetes yang didukung Azure Arc dengan menggunakan Azure CLI atau Azure PowerShell untuk menghubungkan kluster Kubernetes yang ada ke Azure Arc.

Untuk melihat konseptual menyambungkan kluster ke Azure Arc, lihat Gambaran umum agen Kubernetes dengan dukungan Azure Arc.

Prasyarat

  • Akun Azure dengan langganan aktif. Membuat akun secara gratis.

  • Pemahaman dasar tentang konsep inti Kubernetes.

  • Identitas (pengguna atau perwakilan layanan) yang dapat digunakan untuk masuk ke Azure CLI dan menghubungkan kluster Anda ke Azure Arc.

    Penting

    • Identitas harus memiliki izin 'Baca' dan 'Tulis' pada jenis sumber daya Kube yang didukung Azure Arc (Microsoft.Kubernetes/connectedClusters).
    • Peran bawaan Kluster Kubernetes - Azure Arc Onboarding dapat digunakan untuk identitas ini. Peran ini berguna untuk onboarding dalam skala besar, karena hanya memiliki izin terperinci yang diperlukan untuk menghubungkan kluster ke Azure Arc, dan tidak memiliki izin untuk memperbarui, menghapus, atau memodifikasi kluster lain atau sumber daya Azure lainnya.
  • Menginstal atau meningkatkan Azure CLI ke versi >= 2.16.0

  • Instal ekstensi Azure CLI connectedk8s versi >= 1.2.0:

    az extension add --name connectedk8s
    
  • 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

      Catatan

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

  • File dan konteks kubeconfig yang menunjuk ke kluster Anda.

Mendaftarkan penyedia untuk Kubernetes dengan dukungan 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.

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, , https://<region>.login.microsoft.comlogin.windows.net (untuk Azure Cloud), https://login.microsoftonline.us, <region>.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, https://k8sconnectcsp.azureedge.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.

Membuat grup sumber daya

Jalankan perintah berikut:

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

Output:

Location    Name
----------  ------------
eastus      AzureArcTest

Menyambungkan kluster Kubernetes yang ada

Jalankan perintah berikut:

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

Catatan

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

Output:

Helm release deployment succeeded

    {
      "aadProfile": {
        "clientAppId": "",
        "serverAppId": "",
        "tenantId": ""
      },
      "agentPublicKeyCertificate": "xxxxxxxxxxxxxxxxxxx",
      "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.

Menyambungkan menggunakan server proksi keluar

Jika kluster Anda berada di belakang server proksi keluar, permintaan harus dirutekan 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-certhanya diperlukan jika Anda perlu menyisipkan sertifikat terpercaya yang diharapkan oleh proksi ke dalam penyimpanan sertifikat terpercaya dari pod agen.
  • Proksi keluar harus dikonfigurasi untuk memungkinkan koneksi websocket.

Untuk server proksi keluar di mana hanya sertifikat tepercaya yang perlu disediakan tanpa input titik akhir server proksi, az connectedk8s connect dapat dijalankan hanya --proxy-cert dengan input yang ditentukan. Jika beberapa sertifikat tepercaya diharapkan, rantai sertifikat gabungan dapat disediakan dalam satu file menggunakan --proxy-cert parameter .

Jalankan perintah sambungkan dengan --proxy-cert parameter yang ditentukan:

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>

Memverifikasi koneksi kluster

Jalankan perintah berikut:

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

Output:

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

Catatan

Setelah onboarding kluster, dibutuhkan waktu sekitar 5 hingga 10 menit agar metadata kluster (versi kluster, versi agen, jumlah simpul, dll.) muncul pada halaman ringkasan sumber daya Kube yang diaktifkan Azure Arc di portal Microsoft Azure.

Melihat agen Azure Arc untuk Kubernetes

Kubernetes dengan dukungan Azure Arc menyebarkan beberapa agen ke azure-arc dalam namespace layanan.

  1. Lihat penyebaran dan pod ini menggunakan:

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

    Output:

     NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
     deployment.apps/cluster-metadata-operator   1/1     1            1           13d
     deployment.apps/clusterconnect-agent        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           13d
     deployment.apps/flux-logs-agent             1/1     1            1           13d
     deployment.apps/kube-aad-proxy              1/1     1            1           13d
     deployment.apps/metrics-agent               1/1     1            1           13d
     deployment.apps/resource-sync-agent         1/1     1            1           13d
    
     NAME                                            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          13d
     pod/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
    

Untuk informasi selengkapnya tentang agen ini, lihat Gambaran umum agen Kubernetes dengan dukungan Azure Arc.

Membersihkan 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 Kubernetes dengan dukungan Azure Arc menggunakan portal Azure menghapus sumber daya konfigurasi terkait, tetapi tidak menghapus agen apa pun yang berjalan pada kluster. Praktik terbaik adalah menghapus sumber daya Kubernetes dengan dukungan Azure Arc, az connectedk8s delete bukan menghapus sumber daya di portal Azure.

Langkah berikutnya

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