Mulai Cepat: Sambungkan kluster Kube yang ada ke Azure Arc

Mulai menggunakan Kubernetes dengan dukungan Azure Arc dengan menggunakan Azure CLI atau Azure PowerShell untuk menyambungkan kluster Kubernetes yang ada ke Azure Arc.

Untuk melihat konseptual menyambungkan kluster ke Azure Arc, lihat Gambaran umum agen Kubernetes dengan dukungan Azure Arc. Untuk mencoba hal-hal dalam pengalaman sampel/praktik, kunjungi Mulai Cepat Azure Arc.

Prasyarat

Selain prasyarat ini, pastikan untuk memenuhi semua persyaratan jaringan untuk Kubernetes dengan dukungan Azure Arc.

  • Akun Azure dengan langganan aktif. Buat 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.

  • Versi terbaru Azure CLI.

  • Versi terbaru ekstensi Connectedk8s Azure CLI, diinstal dengan menjalankan perintah berikut:

    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 harus memiliki setidaknya satu node sistem operasi dan jenis linux/amd64 arsitektur dan/atau linux/arm64. Lihat Persyaratan kluster untuk informasi selengkapnya tentang skenario ARM64.

  • Setidaknya 850 MB gratis untuk agen Arc yang akan disebarkan pada kluster, dan kapasitas untuk menggunakan sekitar 7% dari satu CPU.

  • File dan konteks kubeconfig 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.

Buat grup sumber daya

Jalankan perintah berikut:

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

Output:

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

Koneksi kluster Kubernetes yang ada

Jalankan perintah berikut untuk menyambungkan kluster Anda. Perintah ini menyebarkan agen Azure Arc ke kluster dan menginstal Helm v. 3.6.3 ke .azure folder komputer penyebaran. Penginstalan Helm 3 ini hanya digunakan untuk Azure Arc, dan tidak menghapus atau mengubah versi Helm yang diinstal sebelumnya pada komputer.

Dalam contoh ini, nama kluster adalah AzureArcTest1.

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

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.

Penting

Jika penyebaran gagal karena kesalahan waktu habis, lihat panduan pemecahan masalah kami untuk detail tentang cara mengatasi masalah ini.

Menyambungkan menggunakan server proksi keluar

Jika kluster Anda berada di belakang server proksi keluar, permintaan harus dirutekan melalui server proksi keluar.

  1. Pada komputer penyebaran, atur variabel lingkungan yang diperlukan agar Azure CLI 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. Pada kluster Kubernetes, jalankan perintah sambungkan proxy-https dengan parameter dan proxy-http yang ditentukan. Jika server proksi Anda disiapkan dengan HTTP dan HTTPS, pastikan untuk menggunakan --proxy-http untuk proksi HTTP dan --proxy-https untuk proksi HTTPS. Jika server proksi Anda hanya menggunakan HTTP, Anda dapat menggunakan nilai tersebut untuk kedua parameter.

    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 .

Catatan

  • --custom-ca-cert adalah alias untuk --proxy-cert. Salah satu parameter dapat digunakan secara bergantian. Meneruskan kedua parameter dalam perintah yang sama akan menghormati yang diteruskan terakhir.

Jalankan perintah sambungkan --proxy-cert dengan 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.

Tip

Untuk membantu memecahkan masalah saat menyambungkan kluster Anda, lihat Mendiagnosis masalah koneksi untuk kluster Kubernetes dengan dukungan Azure Arc.

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

Jika proses penghapusan gagal, gunakan perintah berikut untuk memaksa penghapusan (menambahkan -y jika Anda ingin melewati perintah konfirmasi):

az connectedk8s delete -n AzureArcTest1 -g AzureArcTest --force

Perintah ini juga dapat digunakan jika Anda mengalami masalah saat membuat penyebaran kluster baru (karena sumber daya yang dibuat sebelumnya tidak sepenuhnya dihapus).

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 terbaiknya adalah menghapus sumber daya Kubernetes dengan dukungan Azure Arc, az connectedk8s delete bukan menghapus sumber daya di portal Azure.

Langkah berikutnya