Membuat kluster Kubernetes menggunakan Terraform (pratinjau)
Artikel ini menjelaskan cara membuat kluster Kubernetes di Azure Local menggunakan Terraform dan Modul Terverifikasi Azure. Alur kerjanya adalah sebagai berikut:
- Buat pasangan kunci SSH.
- Buat kluster Kubernetes di Azure Local 23H2 menggunakan Terraform. Secara default, kluster terhubung dengan Azure Arc.
- Validasi penyebaran dan sambungkan ke kluster.
Penting
Fitur pratinjau ini tersedia berdasarkan layanan mandiri dengan dasar pilihan. Pratinjau disediakan "apa adanya" dan "sesuai dengan ketersediaannya", dan dikecualikan dari perjanjian tingkat layanan serta garansi terbatas. Azure Kubernetes Service, yang diaktifkan oleh pratinjau Azure Arc sebagian dicakup oleh dukungan pelanggan berdasarkan upaya terbaik.
Sebelum Anda mulai
Pastikan Anda memiliki prasyarat berikut sebelum memulai:
- Dapatkan detail berikut dari administrator infrastruktur lokal Anda:
- ID langganan Azure: ID langganan Azure yang menggunakan Azure Local untuk penyebaran dan pendaftaran.
- Nama lokasi kustom atau ID: ID Azure Resource Manager dari lokasi kustom. Lokasi kustom dikonfigurasi selama penyebaran kluster Azure Local. Admin infrastruktur Anda harus memberi Anda ID Resource Manager dari lokasi kustom. Parameter ini diperlukan untuk membuat kluster Kubernetes. Anda juga bisa mendapatkan ID Resource Manager menggunakan
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
, jika admin infrastruktur menyediakan nama lokasi kustom dan nama grup sumber daya. - Nama atau ID jaringan logis: ID Azure Resource Manager dari jaringan logis Lokal Azure yang dibuat mengikuti langkah-langkah ini. Admin Anda harus memberi Anda ID jaringan logis. Parameter ini diperlukan untuk membuat kluster Kubernetes. Anda juga bisa mendapatkan ID Azure Resource Manager menggunakan
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
jika Anda mengetahui grup sumber daya tempat jaringan logis dibuat.
- Pastikan Anda memiliki GitHub, versi terbaru Azure CLI, dan klien Terraform yang diinstal pada komputer pengembangan Anda.
- Unduh dan instal kubectl pada komputer pengembangan Anda.
Membuat pasangan kunci SSH
Buat pasangan kunci SSH di Azure dan simpan file kunci privat untuk tujuan pemecahan masalah dan pengumpulan log. Untuk instruksi mendetail, lihat Membuat dan menyimpan kunci SSH dengan Azure CLI atau di portal Microsoft Azure .
Buka sesi Cloud Shell di browser web Anda atau luncurkan terminal di komputer lokal Anda.
Buat pasangan kunci SSH menggunakan perintah az sshkey create:
az sshkey create --name "mySSHKey" --resource-group $<resource_group_name>
atau, gunakan perintah
ssh-keygen
:ssh-keygen -t rsa -b 4096
Ambil nilai kunci publik Anda dari Azure atau dari komputer lokal Anda di bawah /.ssh/id_rsa.pub.
Untuk opsi lainnya, Anda dapat mengikuti Mengonfigurasi kunci SSH untuk kluster AKS membuat kunci SSH, atau menggunakan Membatasi akses SSH selama pembuatan kluster. Untuk mengakses node setelahnya, lihat Menghubungkan ke node pekerja Windows atau Linux dengan SSH.
Masuk ke Azure
Terraform hanya mendukung autentikasi ke Azure dengan Azure CLI menggunakan az login
. Autentikasi menggunakan Azure PowerShell tidak didukung. Oleh karena itu, meskipun Anda dapat menggunakan modul Azure PowerShell saat melakukan pekerjaan Terraform, Anda harus terlebih dahulu mengautentikasi ke Azure:
az login
Menerapkan kode Terraform
Buat direktori yang dapat Anda gunakan untuk menguji sampel kode Terraform, dan menjadikannya direktori Anda saat ini.
Di direktori yang sama, buat file bernama providers.tf dan tempelkan kode berikut:
terraform { required_version = "~> 1.5" required_providers { azapi = { source = "azure/azapi" version = "~> 2.0" } azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } } } provider "azurerm" { features { resource_group { prevent_deletion_if_contains_resources = false } } }
Buat file lain bernama main.tf yang menunjuk ke modul AKS Arc AVM terbaru, dan sisipkan kode berikut. Anda dapat membaca deskripsi dan input modul dan menambahkan parameter opsional sesuai kebutuhan. Untuk menemukan ID objek grup admin, lihat Mengaktifkan autentikasi Microsoft Entra untuk kluster Kubernetes. Anda dapat mengikuti panduan ini untuk menemukannya di lingkungan Azure Anda. Untuk mengaktifkan Azure RBAC, perbarui parameter yang sesuai dan lihat Aktifkan Azure RBAC untuk Otorisasi Kubernetes untuk melihat prasyaratnya.
module "aks_arc" { # Make sure to use the latest AVM module version source = "Azure/avm-res-hybridcontainerservice-provisionedclusterinstance/azurerm" version = "~>2.0" # Make sure to provide all required parameters resource_group_id = "<Resource_Group>" location = "<Region>" name = "<Cluster_Name>" logical_network_id = "<LNet_ID>" custom_location_id = "<CustomLocation_ID>" agent_pool_profiles = [{count=1}] ssh_public_key = "Your_SSH_Key" # Optional parameters, update them as needed enable_azure_rbac = false enable_workload_identity = false enable_oidc_issuer = false rbac_admin_group_object_ids = ["<Admin_Group_Object_ID>"] }
Mulai Inisialisasi Terraform
Jalankan terraform init
untuk memulai penyebaran Terraform. Pastikan untuk menggunakan -upgrade
bendera untuk meningkatkan plugin penyedia yang diperlukan ke versi terbaru:
terraform init -upgrade
Membuat rencana eksekusi Terraform dan menerapkan
Pastikan Anda menjalankan az login
dan mengautentikasi ke Azure sebelum langkah ini, jika tidak, penerapan paket Terraform gagal. Jalankan terraform plan
untuk membuat rencana eksekusi, lalu jalankan terraform apply
untuk menerapkan file output ke infrastruktur cloud Anda:
terraform plan -out main.tfplan
terraform apply main.tfplan
Perintah dijalankan, lalu mengembalikan keberhasilan setelah sumber daya berhasil disediakan.
Memvalidasi penyebaran dan menyambungkan ke kluster
Anda sekarang dapat terhubung ke kluster Kubernetes dengan menjalankan az connectedk8s proxy
dari komputer pengembangan Anda. Anda juga dapat menggunakan kubectl untuk melihat status simpul dan pod. Ikuti langkah yang sama seperti yang dijelaskan dalam Sambungkan ke kluster Kubernetes.