Azure Arc özellikli Kubernetes küme uzantılarını dağıtma ve yönetme

Arc özellikli bir Kubernetes kümesinde uzantı örnekleri oluşturabilir, güncelleştirmeler ve yapılandırmalarla ilgili seçenekler de dahil olmak üzere gerekli ve isteğe bağlı parametreleri ayarlayabilirsiniz. Ayrıca uzantı örneklerini görüntüleyebilir, listeleyebilir, güncelleştirebilir ve silebilirsiniz.

Başlamadan önce Arc özellikli Kubernetes kümesi uzantılarının kavramsal genel bakışını okuyun ve şu anda kullanılabilir olan uzantıların listesini gözden geçirin.

Önkoşullar

  • Azure CLI'nın en son sürümü.

  • ve k8s-extension Azure CLI uzantılarının connectedk8s en son sürümleri. Aşağıdaki komutları çalıştırarak bu uzantıları yükleyin:

    az extension add --name connectedk8s
    az extension add --name k8s-extension
    

    connectedk8s ve k8s-extension uzantıları zaten yüklüyse, aşağıdaki komutları kullanarak en son sürüme güncelleştirildiklerinden emin olun:

    az extension update --name connectedk8s
    az extension update --name k8s-extension
    
  • en az bir işletim sistemi düğümüne ve mimari türüne linux/amd64sahip mevcut Azure Arc özellikli Kubernetes bağlı kümesi. Flux (GitOps) dağıtıyorsanız, düğüm olmadan ARM64 tabanlı bir linux/amd64 küme kullanabilirsiniz.

Uzantı örneği oluşturma

Yeni bir uzantı örneği oluşturmak için kullanın ve k8s-extension creategerekli parametrelerin değerlerini geçirin.

Bu örnek, Azure Arc özellikli Kubernetes kümesinde bir Azure İzleyici Kapsayıcısı Analizler uzantısı örneği oluşturur:

az k8s-extension create --name azuremonitor-containers  --extension-type Microsoft.AzureMonitor.Containers --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

Çıkış:

{
  "autoUpgradeMinorVersion": true,
  "configurationProtectedSettings": null,
  "configurationSettings": {
    "logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
  },
  "creationTime": "2021-04-02T12:13:06.7534628+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.azuremonitor.containers",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
  "identity": null,
  "installState": "Pending",
  "lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
  "lastStatusTime": null,
  "name": "azuremonitor-containers",
  "releaseTrain": "Stable",
  "resourceGroup": "demo",
  "scope": {
    "cluster": {
      "releaseNamespace": "azuremonitor-containers"
    },
    "namespace": null
  },
  "statuses": [],
  "systemData": null,
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "2.8.2"
}

Not

Hizmet, hassas bilgileri 48 saatten uzun süre tutamaz. Azure Arc özellikli Kubernetes aracılarının 48 saatten uzun bir süre ağ bağlantısı yoksa ve kümede uzantı oluşturulup oluşturulmayacağını belirleyemiyorsa uzantı duruma geçirilmiştir Failed . Bu durumda yeni bir Uzantı Azure kaynağı oluşturmak için yeniden çalıştırmanız k8s-extension create gerekir.

Azure İzleyici Kapsayıcısı Analizler tek bir uzantıdır (küme başına yalnızca bir tane gereklidir). Uzantılar aracılığıyla aynı yüklemeden önce Azure İzleyici Kapsayıcısı Analizler önceki Helm grafiği yüklemelerini temizlemeniz gerekir (uzantılar olmadan). komutunu çalıştırmadan az k8s-extension createönce Helm grafiğini silme yönergelerini izleyin.

Gerekli parametreler

Bir uzantı örneği oluşturmak için kullanılırken az k8s-extension create aşağıdaki parametreler gereklidir.

Parametre adı Açıklama
--name Uzantı örneğinin adı
--extension-type Kümeye yüklemek istediğiniz uzantı türü. Örneğin: Microsoft.AzureMonitor.Containers, microsoft.azuredefender.kubernetes
--scope Uzantının yükleme kapsamı: cluster veya namespace
--cluster-name Uzantı örneğinin oluşturulması gereken Azure Arc özellikli Kubernetes kaynağının adı
--resource-group Azure Arc özellikli Kubernetes kaynağını içeren kaynak grubu
--cluster-type Uzantı örneğinin oluşturulması gereken küme türü. Çoğu senaryo için Azure Arc özellikli Kubernetes kümelerine karşılık gelen kullanın connectedClusters.

İsteğe bağlı parametreler

Senaryolarınız için gerekli parametrelerle birlikte bu isteğe bağlı parametrelerden birini veya daha fazlasını kullanın.

Not

uzantı örneğinizi olarak ayarlayarak auto-upgrade-minor-versiontrueen son ikincil ve düzeltme eki sürümlerine otomatik olarak yükseltmeyi seçebilir veya bunun yerine parametresini kullanarak --version uzantı örneğinin sürümünü el ile ayarlayabilirsiniz. Her zaman en son güvenlik düzeltme eklerine ve özelliklere sahip olmanız için ikincil ve düzeltme eki sürümleri için otomatik yükseltmeleri etkinleştirmenizi öneririz.

Ana sürüm yükseltmeleri hataya neden olan değişiklikler içerebileceğinden, uzantı örneğinin yeni ana sürümleri için otomatik yükseltmeler desteklenmez. Uzantı örneklerinin yeni bir ana sürüme el ile ne zaman yükseltileceğini seçebilirsiniz.

Parametre adı Açıklama
--auto-upgrade-minor-version Uzantı ikincil sürümünün otomatik olarak yükseltilip yükseltileceğini belirleyen Boole özelliği. Varsayılan ayar true değeridir. Bu parametre olarak trueayarlanırsa, sürüm dinamik olarak güncelleştirileceği için parametresini ayarlayamazsınız version . olarak ayarlanırsa false, düzeltme eki sürümleri için bile uzantı otomatik olarak yükseltilmeyecek.
--version Yüklenecek uzantının sürümü (uzantı örneğinin sabitleneceği belirli bir sürüm). olarak ayarlandıysa auto-upgrade-minor-versiontruesağlanmamalıdır.
--configuration-settings İşlevselliğini denetlemek için uzantıya geçirilebilen Ayarlar. Bunlar, parametre adından sonra boşlukla ayrılmış key=value çiftler olarak geçirilir. Bu parametre komutunda kullanılıyorsa, --configuration-settings-file aynı komutta kullanılamaz.
--configuration-settings-file Yapılandırma ayarlarını uzantıya geçirmek için kullanılacak çiftler içeren key=value bir JSON dosyasının yolu. Bu parametre komutunda kullanılıyorsa, --configuration-settings aynı komutta kullanılamaz.
--configuration-protected-settings kullanarak GET alınamayan Ayarlar API çağrıları veya az k8s-extension show komutları. Genellikle hassas ayarları geçirmek için kullanılır. Bunlar, parametre adından sonra boşlukla ayrılmış key=value çiftler olarak geçirilir. Bu parametre komutunda kullanılıyorsa, --configuration-protected-settings-file aynı komutta kullanılamaz.
--configuration-protected-settings-file Gizli ayarları uzantıya geçirmek için kullanılacak çiftler içeren key=value bir JSON dosyasının yolu. Bu parametre komutunda kullanılıyorsa, --configuration-protected-settings aynı komutta kullanılamaz.
--release-namespace Bu parametre, yayının oluşturulacağı ad alanını gösterir. Yalnızca olarak ayarlandıysa scopeclustergeçerlidir.
--release-train Uzantı yazarları, , Previewvb. gibi Stablefarklı sürüm trenlerinde sürüm yayımlayabilir. Bu parametre açıkça ayarlanmazsa, Stable varsayılan olarak kullanılır.
--target-namespace Yayının oluşturulacağı ad alanını gösterir. Bu uzantı örneği için oluşturulan sistem hesabının izni bu ad alanıyla kısıtlanacak. Yalnızca olarak ayarlandıysa scopenamespacegeçerlidir.

Uzantı ayrıntılarını göster

Şu anda yüklü olan bir uzantı örneğinin ayrıntılarını görüntülemek için komutunu kullanarak k8s-extension showzorunlu parametrelerin değerlerini geçirin.

az k8s-extension show --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

Çıkış:

{
  "autoUpgradeMinorVersion": true,
  "configurationProtectedSettings": null,
  "configurationSettings": {
    "logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
  },
  "creationTime": "2021-04-02T12:13:06.7534628+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.azuremonitor.containers",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
  "identity": null,
  "installState": "Installed",
  "lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
  "lastStatusTime": "2021-04-02T12:13:49.636+00:00",
  "name": "azuremonitor-containers",
  "releaseTrain": "Stable",
  "resourceGroup": "demo",
  "scope": {
    "cluster": {
      "releaseNamespace": "azuremonitor-containers"
    },
    "namespace": null
  },
  "statuses": [],
  "systemData": null,
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "2.8.2"
}

Kümede yüklü olan tüm uzantıları listeleme

Bir kümede yüklü olan tüm uzantıların listesini görüntülemek için komutunu kullanarak k8s-extension listzorunlu parametrelerin değerlerini geçirin.

az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

Çıkış:

[
  {
    "autoUpgradeMinorVersion": true,
    "creationTime": "2020-09-15T02:26:03.5519523+00:00",
    "errorInfo": {
      "code": null,
      "message": null
    },
    "extensionType": "Microsoft.AzureMonitor.Containers",
    "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/myExtInstanceName",
    "identity": null,
    "installState": "Pending",
    "lastModifiedTime": "2020-09-15T02:48:45.6469664+00:00",
    "lastStatusTime": null,
    "name": "myExtInstanceName",
    "releaseTrain": "Stable",
    "resourceGroup": "myRG",
    "scope": {
      "cluster": {
        "releaseNamespace": "myExtInstanceName1"
      }
    },
    "statuses": [],
    "type": "Microsoft.KubernetesConfiguration/extensions",
    "version": "0.1.0"
  },
  {
    "autoUpgradeMinorVersion": true,
    "creationTime": "2020-09-02T00:41:16.8005159+00:00",
    "errorInfo": {
      "code": null,
      "message": null
    },
    "extensionType": "microsoft.azuredefender.kubernetes",
    "id": "/subscriptions/0e849346-4343-582b-95a3-e40e6a648ae1/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/defender",
    "identity": null,
    "installState": "Pending",
    "lastModifiedTime": "2020-09-02T00:41:16.8005162+00:00",
    "lastStatusTime": null,
    "name": "microsoft.azuredefender.kubernetes",
    "releaseTrain": "Stable",
    "resourceGroup": "myRg",
    "scope": {
      "cluster": {
        "releaseNamespace": "myExtInstanceName2"
      }
    },
    "type": "Microsoft.KubernetesConfiguration/extensions",
    "version": "0.1.0"
  }
]

Uzantı örneğini güncelleştirme

Not

içindeki ve --configuration-protected-settings güncelleştirilebilen belirli ayarları --configuration-settings anlamak için belirli uzantı türüne ilişkin belgelere bakın. için --configuration-protected-settings, yalnızca bir ayar güncelleştirilse bile tüm ayarların sağlanması beklenir. Bu ayarlardan herhangi biri atlanırsa, bu ayarlar eski ve silinmiş olarak kabul edilir.

Mevcut bir uzantı örneğini güncelleştirmek için komutunu kullanarak k8s-extension updatezorunlu ve isteğe bağlı parametrelerin değerlerini geçirin. Zorunlu ve isteğe bağlı parametreler, uzantı örneği oluşturmak için kullanılan parametrelerden biraz farklıdır.

Bu örnek, Azure Machine Learning uzantısı örneğinin ayarını olarak truegüncelleştirirauto-upgrade-minor-version:

az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --auto-upgrade-minor-version true --cluster-type managedClusters

Güncelleştirme için gerekli parametreler

Parametre adı Açıklama
--name Uzantı örneğinin adı
--cluster-name Uzantı örneğinin oluşturulması gereken kümenin adı
--resource-group Kümeyi içeren kaynak grubu
--cluster-type Uzantı örneğinin oluşturulması gereken küme türü. Azure Arc özellikli Kubernetes kümeleri için kullanın connectedClusters. AKS kümeleri için kullanın managedClusters.

Güncelleştirme için isteğe bağlı parametreler

Parametre adı Açıklama
--auto-upgrade-minor-version Uzantı ikincil sürümünün otomatik olarak yükseltilip yükseltildiğini belirten Boole özelliği. Varsayılan ayar true değeridir. Bu parametre true olarak ayarlanırsa, sürüm dinamik olarak güncelleştirileceği için version parametresini ayarlayamazsınız. olarak ayarlanırsa false, düzeltme eki sürümleri için bile uzantı otomatik olarak yükseltilmeyecek.
--version Yüklenecek uzantının sürümü (uzantı örneğinin sabitleneceği belirli bir sürüm). Auto-upgrade-minor-version olarak ayarlandıysa truesağlanmamalıdır.
--configuration-settings İşlevselliğini denetlemek için uzantıya geçirilebilen Ayarlar. Bunlar, parametre adından sonra boşlukla ayrılmış key=value çiftler olarak geçirilir. Bu parametre komutunda kullanılıyorsa, --configuration-settings-file aynı komutta kullanılamaz. Yalnızca güncelleştirme gerektiren ayarların sağlanması gerekir. Sağlanan ayarlar belirtilen değerlerle değiştirilir.
--configuration-settings-file Yapılandırma ayarlarını uzantıya geçirmek için kullanılacak çiftler içeren key=value JSON dosyasının yolu. Bu parametre komutunda kullanılıyorsa, --configuration-settings aynı komutta kullanılamaz.
--configuration-protected-settings kullanarak GET alınamayan Ayarlar API çağrıları veya az k8s-extension show komutları. Genellikle hassas ayarları geçirmek için kullanılır. Bunlar, parametre adından sonra boşlukla ayrılmış key=value çiftler olarak geçirilir. Bu parametre komutunda kullanılıyorsa, --configuration-protected-settings-file aynı komutta kullanılamaz. Korumalı bir ayarı güncelleştirdiğinizde, tüm korumalı ayarların belirtilmesi beklenir. Bu ayarlardan herhangi biri atlanırsa, bu ayarlar eski ve silinmiş olarak kabul edilir.
--configuration-protected-settings-file Gizli ayarları uzantıya geçirmek için kullanılacak çiftler içeren key=value bir JSON dosyasının yolu. Bu parametre komutunda kullanılıyorsa, --configuration-protected-settings aynı komutta kullanılamaz.
--scope Uzantının yükleme kapsamı - cluster veya namespace.
--release-train Uzantı yazarları, , Previewvb. gibi Stablefarklı sürüm trenlerinde sürüm yayımlayabilir. Bu parametre açıkça ayarlanmazsa, Stable varsayılan olarak kullanılır.

Uzantı örneğini yükseltme

Daha önce belirtildiği gibi true olarak ayarlarsanız auto-upgrade-minor-version yeni bir ikincil sürüm yayınlandığında uzantı otomatik olarak yükseltilir. Çoğu senaryo için otomatik yükseltmeleri etkinleştirmenizi öneririz. false olarak ayarlarsanız auto-upgrade-minor-version , daha yeni bir sürüm istiyorsanız uzantıyı el ile yükseltmeniz gerekir.

Bir uzantının yeni bir ana örneğini almak için el ile yükseltmeler de gereklidir. Ana sürüm yükseltmelerinde beklenmeyen hataya neden olan değişiklikleri önlemek için ne zaman yükseltileceğini seçebilirsiniz.

Bir uzantı örneğini el ile yükseltmek için parametresini version kullanın k8s-extension update ve bir sürüm belirtmek üzere ayarlayın.

Bu örnek bir Azure Machine Learning uzantısı örneğini x.y.z sürümüne güncelleştirir:

az k8s-extension update --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters --name azureml --version x.y.z

Uzantı örneğini silme

Bir kümedeki uzantı örneğini silmek için komutunu kullanarak k8s-extension deletezorunlu parametrelerin değerlerini geçirin:

az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters

Not

Bu uzantıyı temsil eden Azure kaynağı hemen silinir. Bu uzantıyla ilişkili kümedeki Helm sürümü yalnızca Kubernetes kümesinde çalışan aracıların ağ bağlantısı olduğunda silinir ve istenen durumu getirmek için Azure hizmetlerine yeniden ulaşabilir.

Sonraki adımlar