Membuat kluster Kubernetes menggunakan Azure CLI
Berlaku untuk: Azure Stack HCI, versi 23H2
Artikel ini menjelaskan cara membuat kluster Kubernetes di Azure Stack HCI menggunakan Azure CLI. Alur kerja adalah sebagai berikut:
- Buat kluster Kubernetes di Azure Stack HCI 23H2 menggunakan Azure CLI. Kluster ini terhubung dengan Azure Arc secara default.
- Saat membuat kluster, Anda menyediakan grup Microsoft Entra yang berisi daftar pengguna Microsoft Entra dengan akses administrator kluster Kube.
- Akses kluster menggunakan kubectl dan Microsoft Entra ID Anda.
- Jalankan contoh aplikasi multi-kontainer dengan ujung depan web dan instans Redis di kluster.
Sebelum Anda mulai
- Sebelum memulai, pastikan Anda memiliki detail berikut dari administrator infrastruktur lokal Anda:
- ID langganan Azure - ID langganan Azure tempat Azure Stack HCI digunakan untuk penyebaran dan pendaftaran.
-
ID Lokasi Kustom - ID Azure Resource Manager lokasi kustom. Lokasi kustom dikonfigurasi selama penyebaran kluster Azure Stack HCI. Admin infrastruktur Anda harus memberi Anda ID Resource Manager 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. -
ID Jaringan - ID Resource Manager Azure dari jaringan logis Azure Stack HCI 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 Resource Manager Azure 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.
- Anda dapat menjalankan langkah-langkah dalam artikel ini di komputer pengembangan lokal untuk membuat kluster Kubernetes pada penyebaran Azure Stack HCI jarak jauh Anda. Pastikan Anda memiliki versi terbaru Az CLI di komputer pengembangan Anda. Anda juga dapat memilih untuk meningkatkan versi Az CLI Anda menggunakan
az upgrade
. - Untuk terhubung ke kluster Kubernetes dari mana saja, buat grup Microsoft Entra dan tambahkan anggota ke dalamnya. Semua anggota dalam grup Microsoft Entra memiliki akses administrator kluster ke kluster. Pastikan untuk menambahkan diri Anda sebagai anggota ke grup Microsoft Entra. Jika anda tidak menambahkan diri sendiri, anda tidak dapat mengakses kluster Kubernetes menggunakan kubectl. Untuk informasi selengkapnya tentang membuat grup Microsoft Entra dan menambahkan pengguna, lihat Mengelola grup Microsoft Entra dan keanggotaan grup.
- Unduh dan instal kubectl pada komputer pengembangan Anda. Alat baris perintah Kube, kubectl, memungkinkan Anda menjalankan perintah terhadap kluster Kubernetes. Anda dapat menggunakan kubectl untuk menyebarkan aplikasi, memeriksa dan mengelola sumber daya kluster, dan melihat log.
Menginstal ekstensi Azure CLI
Jalankan perintah berikut untuk menginstal ekstensi Azure CLI yang diperlukan:
az extension add -n aksarc --upgrade
az extension add -n customlocation --upgrade
az extension add -n stack-hci-vm --upgrade
az extension add -n connectedk8s --upgrade
Membuat kluster Kubernetes
az aksarc create
Gunakan perintah untuk membuat kluster Kubernetes di AKS Arc. Pastikan Anda masuk ke Azure sebelum menjalankan perintah ini. Jika Anda memiliki beberapa langganan Azure, pilih ID langganan yang sesuai menggunakan perintah az account set .
az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys --load-balancer-count 0 --control-plane-ip $controlplaneIP
Setelah beberapa menit, perintah selesai dan mengembalikan informasi berformat JSON tentang kluster.
Sambungkan ke kluster Kube
Sekarang Anda dapat terhubung ke kluster Kubernetes dengan menjalankan az connectedk8s proxy
perintah dari komputer pengembangan Anda. Pastikan Anda masuk ke Azure sebelum menjalankan perintah ini. Jika Anda memiliki beberapa langganan Azure, pilih ID langganan yang sesuai menggunakan perintah az account set .
Perintah ini mengunduh kubeconfig kluster Kubernetes ke komputer pengembangan dan membuka saluran koneksi proksi ke kluster Kubernetes lokal Anda. Saluran terbuka selama perintah berjalan. Biarkan perintah ini berjalan selama Anda ingin mengakses kluster Anda. Jika waktu habis, tutup jendela CLI, buka yang baru, lalu jalankan perintah lagi.
Anda harus memiliki izin Kontributor pada grup sumber daya yang menghosting kluster Kubernetes agar berhasil menjalankan perintah berikut:
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
Output yang diharapkan:
Proxy is listening on port 47011
Merged "aks-workload" as current context in .\\aks-arc-kube-config
Start sending kubectl requests on 'aks-workload' context using
kubeconfig at .\\aks-arc-kube-config
Press Ctrl+C to close proxy.
Jaga agar sesi ini tetap berjalan dan terhubung ke kluster Kubernetes anda dari terminal/perintah yang berbeda. Verifikasi bahwa Anda dapat terhubung ke kluster Kubernetes dengan menjalankan perintah kubectl get. Perintah ini mengembalikan daftar node kluster:
kubectl get node -A --kubeconfig .\aks-arc-kube-config
Contoh output berikut menunjukkan simpul yang dibuat di langkah-langkah sebelumnya. Pastikan status simpul Siap:
NAME STATUS ROLES AGE VERSION
moc-l0ttdmaioew Ready control-plane,master 34m v1.24.11
moc-ls38tngowsl Ready <none> 32m v1.24.11
Menyebarkan aplikasi
File manifes Kube menentukan status kluster yang diinginkan, seperti gambar kontainer mana yang akan dijalankan.
Anda dapat menggunakan manifes untuk membuat semua objek yang diperlukan untuk menjalankan aplikasi Azure Vote. Manifes ini mencakup dua Penyebaran Kube:
- Sampel aplikasi Azure Vote Python.
- Instans Redis.
Dua layanan Kubernetes juga dibuat:
- Layanan internal untuk instans Redis.
- Layanan eksternal untuk mengakses aplikasi Azure Vote dari internet.
Buat file bernama azure-vote.yaml, dan salin dalam manifes berikut:
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-back
template:
metadata:
labels:
app: azure-vote-back
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-back
image: <path to image>/oss/bitnami/redis:6.0.8
env:
- name: ALLOW_EMPTY_PASSWORD
value: "yes"
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-front
template:
metadata:
labels:
app: azure-vote-front
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-front
image: <path to image>/azure-vote-front:v1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
Sebarkan aplikasi menggunakan perintah kubectl apply dan tentukan nama YAML Anda:
kubectl apply -f azure-vote.yaml --kubeconfig .\\aks-arc-kube-config
Contoh output berikut menunjukkan penyebaran dan layanan yang berhasil dibuat:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Uji aplikasi
Ketika aplikasi berjalan, layanan Kube memaparkan frontend aplikasi ke internet. Diperlukan beberapa menit untuk menyelesaikan proses ini.
Pantau kemajuan menggunakan perintah kubectl get service dengan argumen --watch
.
kubectl get service azure-vote-front --watch --kubeconfig .\aks-arc-kube-config
Output EXTERNAL-IP untuk layanan azure-vote-front awalnya ditampilkan sebagai tertunda.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Setelah alamat EXTERNAL-IP berubah dari tertunda ke alamat IP publik yang sebenarnya, gunakan CTRL-C untuk menghentikan proses watch kubectl. Output contoh berikut menunjukkan alamat IP publik yang valid yang ditetapkan ke layanan:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Untuk melihat aplikasi Azure Vote yang sedang berjalan, buka browser web ke alamat IP eksternal layanan Anda.
Menghapus kluster
Jalankan az aksarc delete
perintah untuk membersihkan kluster yang Anda buat:
az aksarc delete --resource-group $aksclustername --name $resource_group