Aracılığıyla paylaş


Öğretici: Azure Arc özellikli Kubernetes'te Azure Container Apps'i etkinleştirme (Önizleme)


Azure Arc özellikli Kubernetes kümeleriyle, Azure Container Apps uygulamalarınızı diğer tüm bölgelerde olduğu gibi dağıtmak için şirket içi veya bulut Kubernetes kümenizde Container Apps özellikli bir özel konum oluşturabilirsiniz.

Bu öğreticide Arc özellikli Kubernetes kümenizde Azure Container Apps'in nasıl etkinleştirileceği gösterilir. Bu öğreticide şunları yapacaksınız:

  • Bağlı bir küme oluşturun.
  • Log Analytics çalışma alanı oluşturma.
  • Container Apps uzantısını yükleyin.
  • Özel bir konum oluşturun.
  • Azure Container Apps bağlı ortamını oluşturun.

Dekont

Önizleme sırasında Arc üzerinde Azure Container Apps üretim yapılandırmalarında desteklenmez. Bu makale yalnızca değerlendirme amacıyla örnek bir yapılandırma sağlar.

Bu öğreticide, sıfırdan bir ortam ayarlamaya yönelik somut yönergeler sağlamak için Azure Kubernetes Service (AKS) kullanılır. Ancak bir üretim iş yükü için Azure Arc'ı zaten Azure'da yönetildiğinden aks kümesinde etkinleştirmek istemeyebilirsiniz.

Ön koşullar

Kurulum

Aşağıdaki Azure CLI uzantılarını yükleyin.

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

Gerekli ad alanlarını kaydedin.

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

Kubernetes küme dağıtımınıza göre ortam değişkenlerini ayarlayın.

GROUP_NAME="my-arc-cluster-group"
AKS_CLUSTER_GROUP_NAME="my-aks-cluster-group"
AKS_NAME="my-aks-cluster"
LOCATION="eastus"

Bağlı küme oluşturma

Aşağıdaki adımlar hizmeti anlamaya başlamanıza yardımcı olur, ancak üretim dağıtımları için bunlar açıklayıcı değil, açıklayıcı olarak görüntülenmelidir. Azure Arc özellikli Kubernetes kümesi oluşturmayla ilgili genel yönergeler için bkz. Hızlı Başlangıç: Mevcut kubernetes kümesini Azure Arc'a Bağlan.

  1. Azure Kubernetes Service'te bir küme oluşturun.

    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
    
  2. kubeconfig dosyasını alın ve kümeyle bağlantınızı test edin. Varsayılan olarak, kubeconfig dosyası öğesine ~/.kube/configkaydedilir.

    az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin
    
    kubectl get ns
    
  3. Azure Arc kaynaklarınızı içerecek bir kaynak grubu oluşturun.

    az group create --name $GROUP_NAME --location $LOCATION
    
  4. Oluşturduğunuz kümeyi Azure Arc'a Bağlan.

    CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource
    
    az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAME
    
  5. Bağlantıyı aşağıdaki komutla doğrulayın. özelliği olarak SucceededgösterilmelidirprovisioningState. Aksi takdirde, komutu bir dakika sonra yeniden çalıştırın.

    az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME
    

Log Analytics çalışma alanı oluşturma

Log Analytics çalışma alanı, Azure Arc özellikli Kubernetes kümesinde çalışan Container Apps uygulamaları için günlüklere erişim sağlar. Log Analytics çalışma alanı isteğe bağlıdır ancak önerilir.

  1. Log Analytics çalışma alanı oluşturma.

    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
    
  2. Mevcut Log Analytics çalışma alanının kodlanmış çalışma alanı kimliğini ve paylaşılan anahtarını almak için aşağıdaki komutları çalıştırın. Bir sonraki adımda bunlara ihtiyacınız olacak.

    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
    

Container Apps uzantısını yükleme

  1. Aşağıdaki ortam değişkenlerini Container Apps uzantısının istenen adına, kaynakların sağlanması gereken küme ad alanına ve Azure Container Apps bağlı ortamının adına ayarlayın. için <connected-environment-name>benzersiz bir ad seçin. Bağlı ortam adı, Azure Container Apps bağlı ortamında oluşturacağınız uygulamanın etki alanı adının bir parçası olacaktır.

    EXTENSION_NAME="appenv-ext"
    NAMESPACE="appplat-ns"
    CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
    
  2. Log Analytics etkinken Container Apps uzantısını Azure Arc'a bağlı kümenize yükleyin. Log Analytics daha sonra uzantıya eklenemez.

    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}"
    

    Dekont

    Uzantıyı Log Analytics tümleştirmesi olmadan yüklemek için komuttan son üç --configuration-settings parametreyi kaldırın.

    Aşağıdaki tabloda, komutu çalıştırırken çeşitli --configuration-settings parametreler açıklanmaktadır:

    Parametre Tanım
    Microsoft.CustomLocation.ServiceAccount Özel konum için oluşturulan hizmet hesabı. değerine defaultayarlanması önerilir.
    appsNamespace Uygulama tanımlarını ve düzeltmelerini oluşturmak için kullanılan ad alanı. Uzantı yayın ad alanıyla eşleşmelidir .
    clusterName Bu uzantıda oluşturulacak Container Apps uzantısı Kubernetes ortamının adı.
    logProcessor.appLogs.destination isteğe bağlı. Uygulama günlükleri için hedef. veya nonekabul ederlog-analytics, hiçbiri seçildiğinde platform günlükleri devre dışı bırakılır.
    logProcessor.appLogs.logAnalyticsConfig.customerId Yalnızca logProcessor.appLogs.destination olarak ayarlandığında log-analyticsgereklidir. Base64 ile kodlanmış Log Analytics çalışma alanı kimliği. Bu parametre korumalı bir ayar olarak yapılandırılmalıdır.
    logProcessor.appLogs.logAnalyticsConfig.sharedKey Yalnızca logProcessor.appLogs.destination olarak ayarlandığında log-analyticsgereklidir. Base64 kodlu Log Analytics çalışma alanı paylaşılan anahtarı. Bu parametre korumalı bir ayar olarak yapılandırılmalıdır.
    envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group Azure Kubernetes Service kümesinin bulunduğu kaynak grubunun adı. Geçerli ve yalnızca temel küme Azure Kubernetes Service olduğunda gereklidir.
  3. id Container Apps uzantısının özelliğini daha sonra için kaydedin.

    EXTENSION_ID=$(az k8s-extension show \
        --cluster-type connectedClusters \
        --cluster-name $CLUSTER_NAME \
        --resource-group $GROUP_NAME \
        --name $EXTENSION_NAME \
        --query id \
        --output tsv)
    
  4. Devam etmeden önce uzantının tamamen yüklenmesini bekleyin. Aşağıdaki komutu çalıştırarak terminal oturumunuzun tamamlanana kadar beklemesini sağlayabilirsiniz:

    az resource wait --ids $EXTENSION_ID --custom "properties.provisioningState!='Pending'" --api-version "2020-07-01-preview"
    

Kubernetes kümenizde oluşturulmuş podları görmek için kullanabilirsiniz kubectl :

kubectl get pods -n $NAMESPACE

Bu podlar ve sistemdeki rolleri hakkında daha fazla bilgi edinmek için bkz . Azure Arc'a genel bakış.

Özel konum oluşturma

Özel konum , Azure Container Apps bağlı ortamına atadığınız bir Azure konumudur.

  1. Aşağıdaki ortam değişkenlerini özel konumun istenen adına ve Azure Arc'a bağlı kümenin kimliğine ayarlayın.

    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)
    
  2. Özel konumu oluşturun:

    az customlocation create \
        --resource-group $GROUP_NAME \
        --name $CUSTOM_LOCATION_NAME \
        --host-resource-id $CONNECTED_CLUSTER_ID \
        --namespace $NAMESPACE \
        --cluster-extension-ids $EXTENSION_ID
    

    Dekont

    Kümenizde özel konum oluştururken sorunlarla karşılaşırsanız, kümenizde özel konum özelliğini etkinleştirmeniz gerekebilir. Cli'de hizmet sorumlusu kullanarak oturum açtıysanız veya küme kaynağında kısıtlı izinlere sahip bir Microsoft Entra kullanıcısıyla oturum açtıysanız bu gereklidir.

  3. Aşağıdaki komutla özel konumun başarıyla oluşturulduğunu doğrulayın. Çıkış, özelliğini olarak SucceededgöstermelidirprovisioningState. Aksi takdirde, komutu bir dakika sonra yeniden çalıştırın.

    az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAME
    
  4. Sonraki adım için özel konum kimliğini kaydedin.

    CUSTOM_LOCATION_ID=$(az customlocation show \
        --resource-group $GROUP_NAME \
        --name $CUSTOM_LOCATION_NAME \
        --query id \
        --output tsv)
    

Azure Container Apps bağlı ortamını oluşturma

Özel konumda uygulama oluşturmaya başlayabilmeniz için önce bir Azure Container Apps bağlı ortamına ihtiyacınız vardır.

  1. Container Apps bağlı ortamını oluşturun:

    az containerapp connected-env create \
        --resource-group $GROUP_NAME \
        --name $CONNECTED_ENVIRONMENT_NAME \
        --custom-location $CUSTOM_LOCATION_ID \
        --location $LOCATION
    
  2. Aşağıdaki komutla Container Apps bağlı ortamının başarıyla oluşturulduğunu doğrulayın. Çıkış, özelliğini olarak SucceededgöstermelidirprovisioningState. Aksi takdirde, bir dakika sonra yeniden çalıştırın.

    az containerapp connected-env show --resource-group $GROUP_NAME --name $CONNECTED_ENVIRONMENT_NAME
    

Sonraki adımlar