hızlı başlangıç: mevcut bir kubernetes kümesini Azure yaya Bağlan

Bu hızlı başlangıçta, Azure Arc özellikli Kubernetes 'in avantajlarını ve mevcut bir Kubernetes kümesini Azure yaya nasıl bağlayacağınızı öğreneceksiniz. Kümeleri Azure yaya bağlama hakkında kavramsal bakış için bkz. Azure Arc-etkinleştirilmiş Kubernetes aracı mimarisi makalesi.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

  • Azure CLI 'yı sürüme yüklemek veya yükseltmek >= 2.16.0

  • Sürüm >= 1.2.0 connectedk8s Azure CLI uzantısını yükler:

    az extension add --name connectedk8s
    
  • Kümenizi Azure yaya bağlamak için kullanmak istediğiniz kimliği (Kullanıcı veya hizmet sorumlusu) kullanarak Azure CLI 'Da oturum açın .

    • Kullanılan kimliğin, Azure Arc özellikli Kubernetes kaynak türü () üzerinde en azından ' Read ' ve ' Write ' izinlerine sahip olması gerekir Microsoft.Kubernetes/connectedClusters .
    • Kubernetes kümesi-Azure Arc ekleme yerleşik rolü , yalnızca kümeleri Azure yaya bağlamak için gereken ayrıntılı izinlere sahip olduğundan ölçekli ekleme için yararlıdır. Bu rol, diğer kümeleri veya diğer Azure kaynaklarını güncelleştirme, silme veya değiştirme izinlerine sahip değildir.
  • Çalışır duruma bir Kubernetes kümesi. Bir tane yoksa, aşağıdaki seçeneklerden birini kullanarak bir küme oluşturabilirsiniz:

    • Docker 'da Kubernetes (tür)

    • Mac Için Docker veya Windows kullanarak bir Kubernetes kümesi oluşturma

    • Küme API 'sini kullanarak kendi kendine yönetilen Kubernetes kümesi

    • Bir OpenShift kümesini Azure yaya bağlamak istiyorsanız, çalıştırmadan önce kümenizde bir kez aşağıdaki komutu yürütmeniz gerekir az connectedk8s connect :

      oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
      

    Not

    Kümenin en az bir işletim sistemi ve mimari türü düğümü olması gerekir linux/amd64 . Yalnızca düğümleri olan kümeler linux/arm64 henüz desteklenmiyor.

  • kubeconfigKümenize işaret eden bir dosya ve bağlam.

Ağ gereksinimlerini karşılayın

Önemli

Azure Arc aracıları için aşağıdaki giden URL 'Lerin https://:443 çalışması gerekir. İçin *.servicebus.windows.net , WebSockets güvenlik duvarı ve proxy üzerinde giden erişim için etkinleştirilmesi gerekir.

Uç nokta (DNS) Açıklama
https://management.azure.com (Azure bulutu için), https://management.usgovcloudapi.net (Azure US kamu için) Aracının Azure 'a bağlanması ve kümeyi kaydetmesi için gereklidir.
https://<region>.dp.kubernetesconfiguration.azure.com (Azure bulutu için), https://<region>.dp.kubernetesconfiguration.azure.us (Azure US kamu için) Aracının durumu iletme ve yapılandırma bilgilerini getirme işlemi için veri düzlemi uç noktası.
https://login.microsoftonline.com, login.windows.net (Azure bulutu için), https://login.microsoftonline.us (Azure US kamu için) Azure Resource Manager belirteçleri getirmek ve güncelleştirmek için gereklidir.
https://mcr.microsoft.com, https://*.data.mcr.microsoft.com Azure Arc aracıları için kapsayıcı görüntülerini çekmek için gereklidir.
https://gbl.his.arc.azure.com (Azure bulutu için), https://gbl.his.arc.azure.us (Azure US kamu için) Sistem tarafından atanan yönetilen kimlik sertifikalarının çekmesine yönelik bölgesel bitiş noktasını almak için gereklidir.
https://*.his.arc.azure.com (Azure bulutu için), https://usgv.his.arc.azure.us (Azure US kamu için) Sistem tarafından atanan yönetilen kimlik sertifikalarını çekmek için gereklidir.
*.servicebus.windows.net, guestnotificationservice.azure.com, *.guestnotificationservice.azure.com, sts.windows.net küme Bağlan ve özel konum tabanlı senaryolar için.
https://k8connecthelm.azureedge.net az connectedk8s connect , Kubernetes kümesinde Azure Arc aracılarını dağıtmak için Held 3 kullanır. Bu uç nokta, aracı helb grafiğinin dağıtımını kolaylaştırmak için hele istemci indirmesi için gereklidir.

1. Azure yay özellikli Kubernetes için sağlayıcı kaydetme

  1. Aşağıdaki komutları girin:

    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    
  2. Kayıt işlemini izleyin. Kayıt, en fazla 10 dakika sürebilir.

    az provider show -n Microsoft.Kubernetes -o table
    az provider show -n Microsoft.KubernetesConfiguration -o table
    az provider show -n Microsoft.ExtendedLocation -o table
    

    Kaydolduktan sonra, RegistrationState Bu ad alanlarının durumunu olarak değiştirme durumunu görmeniz gerekir Registered .

2. kaynak grubu oluşturma

Şu komutu çalıştırın:

az group create --name AzureArcTest --location EastUS --output table

Çıkış:

Location    Name
----------  ------------
eastus      AzureArcTest

3. var olan bir kubernetes kümesini Bağlan

Şu komutu çalıştırın:

az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest

Not

Azure CLı hizmetinde bir hizmet sorumlusu kullanarak oturum açtıysanız, kümede özel konum özelliğinin etkinleştirilmesi için ek bir parametre ayarlanması gerekir.

Çıkış:

Helm release deployment succeeded

    {
      "aadProfile": {
        "clientAppId": "",
        "serverAppId": "",
        "tenantId": ""
      },
      "agentPublicKeyCertificate": "xxxxxxxxxxxxxxxxxxx",
      "agentVersion": null,
      "connectivityStatus": "Connecting",
      "distribution": "gke",
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1",
      "identity": {
        "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "type": "SystemAssigned"
      },
      "infrastructure": "gcp",
      "kubernetesVersion": null,
      "lastConnectivityTime": null,
      "location": "eastus",
      "managedIdentityCertificateExpirationTime": null,
      "name": "AzureArcTest1",
      "offering": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "AzureArcTest",
      "tags": {},
      "totalCoreCount": null,
      "totalNodeCount": null,
      "type": "Microsoft.Kubernetes/connectedClusters"
    }

İpucu

Yukarıdaki konum parametresi olmadan Yukarıdaki komut, Azure Arc özellikli Kubernetes kaynağını kaynak grubuyla aynı konumda oluşturur. Azure Arc özellikli Kubernetes kaynağını farklı bir konumda oluşturmak için, komutunu ya da --location <region> -l <region> komutunu çalıştırırken belirtin az connectedk8s connect .

4a. giden proxy sunucusu kullanarak Bağlan

Kümeniz giden bir proxy sunucusunun arkasındaysa Azure CLı ve Azure Arc özellikli Kubernetes aracılarının isteklerini giden ara sunucu üzerinden yönlendirmesi gerekir.

  1. Azure CLı için gereken ortam değişkenlerini giden proxy sunucusunu kullanacak şekilde ayarlayın:

    export HTTP_PROXY=<proxy-server-ip-address>:<port>
    export HTTPS_PROXY=<proxy-server-ip-address>:<port>
    export NO_PROXY=<cluster-apiserver-ip-address>:<port>
    
  2. Connect komutunu belirtilen proxy parametreleriyle Çalıştır:

    az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --proxy-cert <path-to-cert-file>
    

    Not

    • Küme içi hizmetten hizmete iletişimi gibi bazı ağ isteklerinin, giden iletişim için proxy sunucusu üzerinden yönlendirilen trafikle ayrılması gerekir. --proxy-skip-rangeParametresi, aracılardan bu uç noktalara giden iletişimin giden ara sunucu üzerinden gitmemesi IÇIN CIDR aralığını ve uç noktalarını virgülle ayrılmış bir şekilde belirtmek için kullanılabilir. En azından, kümedeki hizmetlerin CıDR aralığı bu parametrenin değeri olarak belirtilmelidir. Örneğin, kubectl get svc -A tüm hizmetlerin aralıktaki ClusterIP değerlerine sahip olduğu bir hizmet listesini döndürlim 10.0.0.0/16 . Ardından, için belirtmek için değeri --proxy-skip-range 10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc .
    • --proxy-http, --proxy-https ve --proxy-skip-range çoğu giden proxy ortamları için beklenmektedir. --proxy-certyalnızca proxy tarafından beklenen güvenilen sertifikaları, aracı pods 'nin güvenilen sertifika deposuna eklemeniz gerekiyorsa gereklidir.
    • Giden ara sunucu, WebSocket bağlantılarına izin verecek şekilde yapılandırılmalıdır.

5. Küme bağlantısını doğrulama

Şu komutu çalıştırın:

az connectedk8s list --resource-group AzureArcTest --output table

Çıkış:

Name           Location    ResourceGroup
-------------  ----------  ---------------
AzureArcTest1  eastus      AzureArcTest

Not

Kümeyi eklemenin ardından küme meta verilerinin (küme sürümü, aracı sürümü, düğüm sayısı vb.) Azure Arc etkin Kubernetes kaynağının genel bakış sayfasında ortaya Azure portal.

6. Kubernetes Azure Arc aracılarını görüntüleme

Azure Arc kubernetes ad alanına birkaç işleç azure-arc dağıtır.

  1. Şu dağıtımları ve podları görüntülemek için şunları kullanın:

    kubectl get deployments,pods -n azure-arc
    
  2. Tüm podların bir durumda olduğunu Running doğrulayın.

    Çıkış:

    
     NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
     deployment.apps/cluster-metadata-operator   1/1     1            1           13d
     deployment.apps/clusterconnect-agent        1/1     1            1           13d
     deployment.apps/clusteridentityoperator     1/1     1            1           13d
     deployment.apps/config-agent                1/1     1            1           13d
     deployment.apps/controller-manager          1/1     1            1           13d
     deployment.apps/extension-manager           1/1     1            1           13d
     deployment.apps/flux-logs-agent             1/1     1            1           13d
     deployment.apps/kube-aad-proxy              1/1     1            1           13d
     deployment.apps/metrics-agent               1/1     1            1           13d
     deployment.apps/resource-sync-agent         1/1     1            1           13d
    
     NAME                                            READY   STATUS    RESTARTS   AGE
     pod/cluster-metadata-operator-9568b899c-2stjn   2/2     Running   0          13d
     pod/clusterconnect-agent-576758886d-vggmv       3/3     Running   0          13d
     pod/clusteridentityoperator-6f59466c87-mm96j    2/2     Running   0          13d
     pod/config-agent-7cbd6cb89f-9fdnt               2/2     Running   0          13d
     pod/controller-manager-df6d56db5-kxmfj          2/2     Running   0          13d
     pod/extension-manager-58c94c5b89-c6q72          2/2     Running   0          13d
     pod/flux-logs-agent-6db9687fcb-rmxww            1/1     Running   0          13d
     pod/kube-aad-proxy-67b87b9f55-bthqv             2/2     Running   0          13d
     pod/metrics-agent-575c565fd9-k5j2t              2/2     Running   0          13d
     pod/resource-sync-agent-6bbd8bcd86-x5bk5        2/2     Running   0          13d
     

Bu aracılara kavramsal bir genel bakış burada mevcuttur.

7. Kaynakları temizleme

Aşağıdaki komutu kullanarak Azure Arc Kubernetes kaynağını, ilişkili yapılandırma kaynaklarını ve Azure CLI kullanarak kümede çalışan aracıları silebilirsiniz:

az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest

Not

Azure Arc kullanan Kubernetes kaynağını silmek Azure portal ilişkili yapılandırma kaynaklarını kaldırır, ancak kümede çalışan aracıları kaldırmaz. En iyi yöntem, Azure Arc yerine kullanarak Azure Arc Kubernetes az connectedk8s delete kaynağını Azure portal.

Sonraki adımlar

GitOps kullanarak bağlı Kubernetes kümenize yapılandırma dağıtma hakkında bilgi edinmek için sonraki makaleye ilerleyin.