Tutorial: Mengaktifkan Azure Container Apps di Kubernetes dengan dukungan Azure Arc (Pratinjau)
Dengan kluster Kubernetes dengan dukungan Azure Arc, Anda dapat membuat lokasi kustom yang diaktifkan Container Apps di kluster Kubernetes lokal atau cloud untuk menyebarkan aplikasi Azure Container Apps seperti yang Anda lakukan di wilayah lain.
Tutorial ini akan menunjukkan kepada Anda cara mengaktifkan Azure Container Apps pada kluster Kubernetes dengan dukungan Arc. Dalam tutorial ini, Anda akan:
- Buat kluster yang terhubung.
- Membuat ruang kerja Log Analytics.
- Instal ekstensi Container Apps.
- Buat lokasi khusus.
- Buat lingkungan yang terhubung dengan Azure Container Apps.
Catatan
Selama pratinjau, Azure Container Apps di Arc tidak didukung dalam konfigurasi produksi. Artikel ini menyediakan contoh konfigurasi hanya untuk tujuan evaluasi.
Tutorial ini menggunakan Azure Kubernetes Service (AKS) untuk memberikan instruksi konkret untuk menyiapkan lingkungan dari awal. Namun, untuk beban kerja produksi, Anda mungkin tidak ingin mengaktifkan Azure Arc pada kluster AKS karena sudah dikelola di Azure.
Prasyarat
- Akun Azure dengan langganan aktif.
- Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
- Instal Azure CLI.
- Akses ke registri kontainer publik atau privat, seperti Azure Container Registry.
- Tinjau persyaratan dan batasan pratinjau publik. Kepentingan tertentu adalah persyaratan kluster.
Siapkan
Instal ekstensi Azure CLI berikut.
az extension add --name connectedk8s --upgrade --yes
az extension add --name k8s-extension --upgrade --yes
az extension add --name customlocation --upgrade --yes
az extension add --name containerapp --upgrade --yes
Daftarkan namespace yang diperlukan.
az provider register --namespace Microsoft.ExtendedLocation --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
az provider register --namespace Microsoft.App --wait
az provider register --namespace Microsoft.OperationalInsights --wait
Atur variabel lingkungan berdasarkan penyebaran kluster Kubernetes Anda.
GROUP_NAME="my-arc-cluster-group"
AKS_CLUSTER_GROUP_NAME="my-aks-cluster-group"
AKS_NAME="my-aks-cluster"
LOCATION="eastus"
Buat klaster terhubung
Langkah-langkah berikut membantu Anda mulai memahami layanan, tetapi untuk penyebaran produksi, mereka harus dilihat sebagai ilustrasi, bukan preskriptif. Lihat Mulai Cepat: Hubungkan kluster Kube yang ada ke Azure Arc untuk petunjuk umum pembuatan kluster Kube yang diaktifkan Arc Azure.
Buat kluster di Azure Kubernetes Service.
az group create --name $AKS_CLUSTER_GROUP_NAME --location $LOCATION az aks create \ --resource-group $AKS_CLUSTER_GROUP_NAME \ --name $AKS_NAME \ --enable-aad \ --generate-ssh-keys
Dapatkan file kubeconfig dan uji koneksi ke klaster. Secara default, file kubeconfig disimpan ke
~/.kube/config
.az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin kubectl get ns
Buat grup sumber daya untuk memuat sumber daya Azure Arc Anda.
az group create --name $GROUP_NAME --location $LOCATION
Sambungkan klaster yang Anda buat ke Azure Arc.
CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAME
Validasi koneksi dengan perintah berikut. Ini harus menunjukkan
provisioningState
properti sebagaiSucceeded
. Jika tidak, jalankan perintah lagi setelah satu menit.az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME
Membuat ruang kerja Analitik Log
Ruang kerja Log Analytics menyediakan akses ke log untuk aplikasi Container Apps yang berjalan di kluster Kubernetes dengan dukungan Azure Arc. Ruang kerja Analitik Log bersifat opsional, tetapi disarankan.
Membuat ruang kerja Log Analytics.
WORKSPACE_NAME="$GROUP_NAME-workspace" # Name of the Log Analytics workspace az monitor log-analytics workspace create \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME
Jalankan perintah berikut untuk mendapatkan ID ruang kerja yang dikodekan dan kunci bersama untuk ruang kerja Log Analytics yang sudah ada. Akan dibutuhkan di bagian berikutnya.
LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query customerId \ --output tsv) LOG_ANALYTICS_WORKSPACE_ID_ENC=$(printf %s $LOG_ANALYTICS_WORKSPACE_ID | base64 -w0) # Needed for the next step LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query primarySharedKey \ --output tsv) LOG_ANALYTICS_KEY_ENC=$(printf %s $LOG_ANALYTICS_KEY | base64 -w0) # Needed for the next step
Menginstal ekstensi Container Apps
Penting
Jika menyebarkan ke AKS di Azure Local , pastikan Anda telah menyiapkan HAProxy atau load balancer kustom sebelum mencoba menginstal ekstensi.
Atur variabel lingkungan berikut ke nama ekstensi Container Apps yang diinginkan, namespace kluster tempat sumber daya harus disediakan, dan nama untuk lingkungan yang terhubung dengan Azure Container Apps. Pilih nama unik untuk
<connected-environment-name>
. Nama lingkungan yang terhubung akan menjadi bagian dari nama domain untuk aplikasi yang akan Anda buat di lingkungan yang terhubung dengan Azure Container Apps.EXTENSION_NAME="appenv-ext" NAMESPACE="appplat-ns" CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
Instal ekstensi Container Apps ke kluster yang terhubung dengan Azure Arc Anda dengan Log Analytics diaktifkan. Analitik Log tidak dapat ditambahkan ke ekstensi nanti.
az k8s-extension create \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --extension-type 'Microsoft.App.Environment' \ --release-train stable \ --auto-upgrade-minor-version true \ --scope cluster \ --release-namespace $NAMESPACE \ --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \ --configuration-settings "appsNamespace=${NAMESPACE}" \ --configuration-settings "clusterName=${CONNECTED_ENVIRONMENT_NAME}" \ --configuration-settings "envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group=${AKS_CLUSTER_GROUP_NAME}" \ --configuration-settings "logProcessor.appLogs.destination=log-analytics" \ --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" \ --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}"
Catatan
Untuk menginstal ekstensi tanpa integrasi Log Analytics, hapus tiga
--configuration-settings
parameter terakhir dari perintah.Tabel berikut menjelaskan berbagai
--configuration-settings
parameter saat menjalankan perintah:Parameter Deskripsi Microsoft.CustomLocation.ServiceAccount
Akun layanan yang dibuat untuk lokasi kustom. Disarankan agar diatur ke nilai default
.appsNamespace
Namespace layanan yang digunakan untuk membuat definisi dan revisi aplikasi. Ini harus cocok dengan namespace rilis ekstensi. clusterName
Nama lingkungan Kubernetes ekstensi Container Apps yang akan dibuat terhadap ekstensi ini. logProcessor.appLogs.destination
Opsional. Tujuan untuk log aplikasi. Menerima log-analytics
ataunone
, tidak memilih menonaktifkan log platform.logProcessor.appLogs.logAnalyticsConfig.customerId
Diperlukan hanya ketika logProcessor.appLogs.destination
diatur kelog-analytics
. ID ruang kerja Log analytics yang dikodekan basis64. Parameter ini harus dikonfigurasi sebagai pengaturan yang dilindungi.logProcessor.appLogs.logAnalyticsConfig.sharedKey
Diperlukan hanya ketika logProcessor.appLogs.destination
diatur kelog-analytics
. Kunci bersama ruang kerja analitik Log yang dikodekan base64. Parameter ini harus dikonfigurasi sebagai pengaturan yang dilindungi.envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group
Nama grup sumber daya tempat klaster Azure Kubernetes Service berada. Valid dan hanya diperlukan ketika klaster yang mendasarinya adalah Azure Kubernetes Service. id
Simpan properti ekstensi Container Apps untuk nanti.EXTENSION_ID=$(az k8s-extension show \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --query id \ --output tsv)
Tunggu hingga ekstensi terinstal sepenuhnya sebelum melanjutkan. Anda dapat menunggu sesi terminal hingga selesai dengan menjalankan perintah berikut:
az resource wait --ids $EXTENSION_ID --custom "properties.provisioningState!='Pending'" --api-version "2020-07-01-preview"
Kamu dapat menggunakan kubectl
untuk melihat Pod yang telah dibuat di klaster Kubernetes:
kubectl get pods -n $NAMESPACE
Untuk mempelajari selengkapnya tentang pod ini dan perannya dalam sistem, lihat Gambaran umum Azure Arc.
Buat lokasi khusus
Lokasi kustom adalah lokasi Azure yang Anda tetapkan ke lingkungan yang terhubung dengan Azure Container Apps.
Atur variabel lingkungan berikut ke nama lokasi kustom yang diinginkan dan untuk ID kluster yang terhubung dengan Azure Arc.
CUSTOM_LOCATION_NAME="my-custom-location" # Name of the custom location CONNECTED_CLUSTER_ID=$(az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME --query id --output tsv)
Buat lokasi kustom:
az customlocation create \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --host-resource-id $CONNECTED_CLUSTER_ID \ --namespace $NAMESPACE \ --cluster-extension-ids $EXTENSION_ID
Catatan
Jika Anda mengalami masalah saat membuat lokasi kustom di kluster, Anda mungkin perlu mengaktifkan fitur lokasi kustom pada kluster Anda. Ini diperlukan jika masuk ke CLI menggunakan Perwakilan Layanan atau jika Anda masuk dengan pengguna Microsoft Entra dengan izin terbatas pada sumber daya kluster.
Validasi bahwa lokasi kustom berhasil dibuat dengan perintah berikut. Output harus menunjukkan
provisioningState
properti sebagaiSucceeded
. Jika tidak, jalankan ulang perintah setelah satu menit.az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAME
Simpan ID lokasi kustom untuk langkah berikutnya.
CUSTOM_LOCATION_ID=$(az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query id \ --output tsv)
Membuat lingkungan terhubung Azure Container Apps
Sebelum dapat mulai membuat aplikasi di lokasi kustom, Anda memerlukan lingkungan yang terhubung dengan Azure Container Apps.
Buat lingkungan terhubung Container Apps:
az containerapp connected-env create \ --resource-group $GROUP_NAME \ --name $CONNECTED_ENVIRONMENT_NAME \ --custom-location $CUSTOM_LOCATION_ID \ --location $LOCATION
Validasi bahwa lingkungan terhubung Container Apps berhasil dibuat dengan perintah berikut. Output harus menunjukkan
provisioningState
properti sebagaiSucceeded
. Jika tidak, jalankan lagi setelah satu menit.az containerapp connected-env show --resource-group $GROUP_NAME --name $CONNECTED_ENVIRONMENT_NAME