Bagikan melalui


Menyiapkan kluster Kubernetes dengan dukungan Azure Arc

Kluster Kubernetes dengan dukungan Azure Arc adalah prasyarat untuk menyebarkan Operasi Azure IoT. Artikel ini menjelaskan cara menyiapkan kluster sebelum Anda menyebarkan Operasi Azure IoT. Artikel ini mencakup panduan untuk Ubuntu, Windows, Azure Local, dan Tanzu Kubernetes Grid (TKG).

Jika Anda ingin menyebarkan Operasi Azure IoT dengan cepat dan menjalankan beban kerja sampel di lingkungan pengujian, lihat Mulai Cepat: Menjalankan Operasi Azure IoT di GitHub Codespaces dengan K3s.

Prasyarat

Microsoft mendukung Azure Kubernetes Service (AKS) Edge Essentials untuk penyebaran di Windows, K3s untuk penyebaran pada Ubuntu, penyebaran AKS di Azure Local, dan rilis Tanzu Kubernetes (TKr) di TKG. Jika Anda ingin menyebarkan Operasi Azure IoT ke solusi multi-simpul, gunakan K3 di Ubuntu.

Untuk menyiapkan kluster Kubernetes dengan dukungan Azure Arc, Anda memerlukan:

  • Langganan Azure dengan peran Pemilik atau kombinasi peran Kontributor dan Administrator Akses Pengguna. Anda dapat memeriksa tingkat akses Anda dengan menavigasi ke langganan Anda, memilih Kontrol akses (IAM) di sisi kiri portal Azure, lalu memilih Tampilkan akses saya. Jika Anda belum berlangganan Azure, buat akun gratis sebelum memulai.

  • Grup sumber daya Azure. Hanya satu instans Azure IoT Operations yang didukung per grup sumber daya. Untuk membuat grup sumber daya baru, gunakan perintah az group create . Untuk daftar wilayah Azure yang saat ini didukung, lihat Wilayah yang didukung.

    az group create --location <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID>
    
  • Azure CLI versi 2.62.0 atau yang lebih baru diinstal pada komputer kluster Anda. Gunakan az --version untuk memeriksa versi Anda dan az upgrade untuk memperbarui jika perlu. Untuk informasi selengkapnya, lihat Cara menginstal Azure CLI.

  • Versi terbaru ekstensi connectedk8s untuk Azure CLI:

    az extension add --upgrade --name connectedk8s
    

Buat dan aktifkan kluster Arc

Bagian ini menyediakan langkah-langkah untuk membuat kluster di lingkungan yang divalidasi di Linux dan Windows.

Untuk menyiapkan kluster K3s Kubernetes pada Ubuntu:

  1. Buat kluster K3s dengan satu simpul atau beberapa simpul. Misalnya, lihat panduan mulai cepat K3s atau proyek terkait K3s.

  2. Periksa untuk melihat bahwa kubectl diinstal sebagai bagian dari K3s. Jika tidak, ikuti instruksi untuk Menginstal kubectl di Linux.

    kubectl version --client
    
  3. Ikuti instruksi untuk Menginstal Helm.

  4. Buat file yaml konfigurasi K3s di .kube/config:

    mkdir ~/.kube
    sudo KUBECONFIG=~/.kube/config:/etc/rancher/k3s/k3s.yaml kubectl config view --flatten > ~/.kube/merged
    mv ~/.kube/merged ~/.kube/config
    chmod  0600 ~/.kube/config
    export KUBECONFIG=~/.kube/config
    #switch to k3s context
    kubectl config use-context default
    sudo chmod 644 /etc/rancher/k3s/k3s.yaml
    
  5. Jalankan perintah berikut untuk meningkatkan batas pengawasan/instans pengguna.

    echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf
    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    
  6. Untuk performa yang lebih baik, tingkatkan batas deskriptor file:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    

Mengaktifkan Arc pada kluster Anda

Sambungkan kluster Anda ke Azure Arc sehingga dapat dikelola dari jarak jauh.

  1. Dari komputer yang memiliki kubectl akses ke kluster Anda, masuk ke Azure CLI dengan akun pengguna Microsoft Entra Anda yang memiliki peran yang diperlukan untuk langganan Azure:

    az login
    

    Jika suatu saat Anda mendapatkan kesalahan yang mengatakan perangkat Anda harus dikelola untuk mengakses sumber daya Anda, jalankan az login lagi dan pastikan Anda masuk secara interaktif dengan browser.

  2. Setelah Anda masuk, Azure CLI menampilkan semua langganan Anda dan menunjukkan langganan default Anda dengan tanda bintang *. Untuk melanjutkan langganan default Anda, pilih Enter. Jika tidak, ketik jumlah langganan Azure yang ingin Anda gunakan.

  3. Daftarkan penyedia sumber daya yang diperlukan di langganan Anda.

    Nota

    Langkah ini hanya perlu dijalankan sekali per langganan. Untuk mendaftarkan penyedia sumber daya, Anda memerlukan izin untuk melakukan /register/action operasi, yang disertakan dalam peran Kontributor langganan dan Pemilik. Untuk informasi selengkapnya, lihat Penyedia dan jenis sumber daya Azure.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperations"
    az provider register -n "Microsoft.DeviceRegistry"
    az provider register -n "Microsoft.SecretSyncController"
    
  4. Gunakan perintah az connectedk8s connect untuk mengaktifkan Arc pada kluster Kubernetes Anda dan mengelolanya sebagai bagian dari grup sumber daya Azure Anda.

    az connectedk8s connect --name <CLUSTER_NAME> -l <REGION> --resource-group <RESOURCE_GROUP> --subscription <SUBSCRIPTION_ID> --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
    

    Untuk mencegah pembaruan yang tidak direncanakan untuk Azure Arc dan ekstensi sistem Arc yang digunakan sebagai dependensi oleh Azure IoT Operations, perintah ini menonaktifkan peningkatan otomatis. Sebagai gantinya, tingkatkan agen secara manual sesuai kebutuhan.

    Penting

    Jika lingkungan Anda menggunakan server proksi atau Azure Arc Gateway, ubah az connectedk8s connect perintah dengan informasi proksi Anda:

    1. Ikuti petunjuk dalam Sambungkan menggunakan server proksi keluar atau Tambahkan Kluster Kubernetes ke Azure Arc dengan Azure Arc Gateway.
    2. Tambahkan 169.254.169.254 ke parameter --proxy-skip-range dari perintah az connectedk8s connect. Azure Device Registry menggunakan titik akhir lokal ini untuk mendapatkan token akses untuk otorisasi.

    Operasi Azure IoT tidak mendukung server proksi yang memerlukan sertifikat tepercaya.

  5. Dapatkan URL pengeluar sertifikat kluster.

    az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    

    Simpan output perintah ini untuk digunakan di langkah berikutnya.

  6. Buat file konfigurasi k3s.

    sudo nano /etc/rancher/k3s/config.yaml
    
  7. Tambahkan konten berikut ke file config.yaml, ganti penanda tempat <SERVICE_ACCOUNT_ISSUER> dengan URL penerbit dari kluster Anda.

    kube-apiserver-arg:
     - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
     - service-account-max-token-expiration=24h
    
  8. Simpan file dan keluar dari editor nano.

  9. Bersiaplah untuk mengaktifkan layanan Azure Arc, lokasi kustom, pada kluster Arc Anda dengan mendapatkan ID objek lokasi kustom dan menyimpannya sebagai variabel lingkungan, OBJECT_ID. Anda harus masuk ke Azure CLI dengan akun pengguna Microsoft Entra agar berhasil menjalankan perintah, bukan perwakilan layanan. Jalankan perintah berikut persis seperti yang ditulis, tanpa mengubah nilai GUID.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    

    Nota

    Jika Anda menerima kesalahan "Tidak dapat mengambil oid dari aplikasi 'custom-locations'. Melanjutkan tanpa mengaktifkan fitur . Hak istimewa yang tidak memadai untuk menyelesaikan operasi," maka perwakilan layanan Anda mungkin tidak memiliki izin yang diperlukan untuk mengambil ID objek dari lokasi kustom. Masuk ke Azure CLI dengan akun pengguna Microsoft Entra yang memenuhi prasyarat. Untuk informasi selengkapnya, lihat Membuat dan mengelola lokasi kustom.

  10. Gunakan perintah az connectedk8s enable-features untuk mengaktifkan fitur lokasi kustom pada kluster Arc Anda. Perintah ini menggunakan variabel lingkungan OBJECT_ID yang disimpan dari langkah sebelumnya untuk mengatur nilai untuk parameter custom-locations-oid. Jalankan perintah ini pada komputer tempat Anda menyebarkan kluster Kubernetes:

    az connectedk8s enable-features -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    
  11. Mulai ulang K3s.

    systemctl restart k3s
    

Mengonfigurasi kluster multi-node untuk Azure Container Storage yang diaktifkan oleh Azure Arc

Fitur seperti titik akhir penyimpanan lokal aliran data dan konektor media secara opsional menggunakan Azure Container Storage yang diaktifkan oleh Azure Arc (ACSA) untuk menyinkronkan data lokal ke cloud. ACSA tidak diinstal sebagai bagian dari Operasi Azure IoT, jadi Anda harus menginstalnya secara terpisah.

Pada kluster Ubuntu multi-simpul dengan setidaknya tiga simpul, Anda memiliki opsi untuk mengaktifkan toleransi kesalahan untuk penyimpanan ACSA. Untuk mengaktifkan fault tolerance selama penyebaran, ikuti langkah-langkah dalam "Mempersiapkan Linux untuk Volume Edge dengan menggunakan kluster Ubuntu multi-node" untuk mengonfigurasi kluster Anda.

Jika Anda menjalankan kluster pada distribusi Kubernetes selain k3, tinjau panduan untuk Menyiapkan Linux dengan platform lain.

Konfigurasi tingkat lanjut

Pada titik ini, ketika Anda memiliki kluster Kubernetes dengan dukungan Azure Arc tetapi sebelum Anda menyebarkan Operasi Azure IoT ke dalamnya, Anda mungkin ingin mengonfigurasi kluster Anda untuk skenario lanjutan.

Langkah selanjutnya

Setelah memiliki kluster Kubernetes dengan dukungan Azure Arc, Anda dapat memilih untuk menyebarkan Operasi Azure IoT dengan pengaturan pengujian atau dengan pengaturan produksi.

  • Penyebaran pengujian: Direkomendasikan untuk evaluasi cepat dan prototipe sebelum menyebarkan dalam produksi. Penyebaran pengujian tidak cocok untuk produksi, tidak memiliki observabilitas dan keamanan yang ditingkatkan.
  • Penyebaran produksi: Direkomendasikan untuk beban kerja siap produksi. Penyebaran produksi cocok untuk penyebaran IoT dunia nyata dengan kebutuhan kepatuhan dan keamanan.