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

Azure hizmetleri ve senaryoları etkinleştirmek için Azure Arc etkin Kubernetes kümelerindeki uzantıları kullanabilirsiniz. Bu makalede, güncelleştirmeler ve yapılandırma seçenekleri dahil olmak üzere uzantı örneklerinin nasıl oluşturulacağı ve gerekli ve isteğe bağlı parametrelerin nasıl ayarlanacağı açıklanır. Ayrıca uzantı örneklerini görüntülemeyi, listelemeyi, güncelleştirmeyi ve silmeyi de öğrenirsiniz.

Başlamadan önce Azure Arc etkinleştirilmiş Kubernetes kümesi uzantılarının overview sayfasını okuyun ve şu anda kullanılabilir olan uzantılar listesini gözden geçirin. Bu makaledeki adımlar herhangi bir uzantı için çalışır, ancak belirli yapılandırma ayarlarını veya kılavuzlarını anlamak için dağıtmak istediğiniz uzantının belgelerini gözden geçirin.

Prerequisites

  • Azure CLI en son sürümü.

  • connectedk8s ve k8s-extension Azure CLI uzantılarının en son sürümleri. Bu uzantıların en son sürümünü yüklemek veya güncelleştirmek için aşağıdaki komutları çalıştırın:

    az extension add --upgrade --name connectedk8s
    az extension add --upgrade --name k8s-extension
    
  • Var olan, en az bir işletim sistemi ve mimari türünde linux/amd64 düğüm içeren Azure Arc özellikli Kubernetes bağlı kümesi. Yalnızca Flux (GitOps) veya Kapsayıcılar için Microsoft Defender uzantılarını dağıtırsanız, düğüm kullanmadan ARM64 tabanlı bir linux/amd64 küme kullanabilirsiniz.

Uzantı örneği oluşturma

Yeni bir uzantı örneği oluşturmak için komutunu kullanın k8s-extension create ve ortamınız için parametre değerleri sağlayın.

Bu örnek, Azure Arc özellikli bir Kubernetes kümesinde Azure Monitor uzantı örneği ile bir Container içgörüleri oluşturur.

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

Aşağıdaki örneğe benzer bir çıktı olup olmadığını denetleyin:

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

Note

Azure Arc özellikli Kubernetes acenteleri 48 saatten fazla ağ bağlantısı yoksa, kümede uzantı oluşturulamaz ve uzantı Failed durumuna geçirilir. Bu koşul oluşursa uzantı kaynağını oluşturmak için yeniden çalıştırın k8s-extension create .

Küme başına Azure Monitor uzantısında yalnızca bir Container Insights gereklidir. Kapsayıcı İçgörüler'i bir uzantı aracılığıyla kurmadan önce uzantılarını kullanmayan Kapsayıcı İçgörüler'e ait önceki Helm chart kurulumlarını silmeniz gerekir. komutunu çalıştırmadan az k8s-extension createönce Helm grafiğini silme adımlarını tamamlayın.

Uzantı oluşturmak için gerekli parametreler

Aşağıdaki tabloda, bir uzantı örneği oluşturmak için kullanmak az k8s-extension create için gerekli parametreler açıklanmaktadır:

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 veya microsoft.azuredefender.kubernetes.
--cluster-name Uzantı örneğinin oluşturulacağı Azure Arc etkin Kubernetes kaynağının adı.
--resource-group Azure Arc etkin Kubernetes kaynağını içeren kaynak grubu.
--cluster-type Uzantı örneğinin oluşturulacağı küme türü. Çoğu senaryoda, Azure Arc özellikli kubernetes kümesi için küme türü olan connectedClusters kullanın.

Uzantı oluşturma için isteğe bağlı parametreler

Senaryonuz için gerekli parametrelerle bu isteğe bağlı parametrelerden birini veya daha fazlasını kullanın. Bu parametrelerden bazıları birlikte kullanılamaz. Her parametrenin açıklamasını gözden geçirin ve senaryonuz için geçerli olanları kullanın.

Note

Uzantı örneğinizi en son ikincil ve düzeltme eki sürümlerine otomatik olarak yükseltmek için 'yi olarak ayarlayın. 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. Uzantı örneğinin sürümünü parametresini --version kullanarak el ile de ayarlayabilirsiniz.

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ükseltme desteği yoktur. Bir uzantı örneğinin 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ükseltmeyeceğini ayarlayan bir Boole özelliği. Varsayılan ayar true değeridir. Bu parametreyi olarak trueayarlarsanız, sürüm dinamik olarak güncelleştirildiğinden parametresini ayarlayamazsınız version . Bu parametreyi false olarak ayarlarsanız, uzantı düzeltme eki sürümleri için bile otomatik olarak yükseltilmez.
--version Yüklenecek uzantının sürümü (uzantı örneğinin sabitleneceği sürüm). auto-upgrade-minor-version true olarak ayarlandıysa version parametresini ayarlayamazsınız.
--configuration-settings İşlevselliğini denetlemek için uzantıya geçirebileceğiniz ayarlar. Bu ayarları parametre adından sonra boşlukla ayrılmış key=value çiftler olarak geçirin. Komutta bu parametreyi kullanırsanız, --config-settings-file'yi aynı komutta kullanamazsınız.
--config-settings-file Uzantıya yapılandırma ayarlarını geçirmek için kullanılacak key=value çiftlerini içeren bir JSON dosyasının yolu. Komutta bu parametreyi kullanırsanız, aynı komutta kullanamazsınız --configuration-settings .
--config-protected-settings API çağrılarıyla veya az k8s-extension show komutlarıyla elde edilemeyen ayarlar. Genellikle hassas ayarları geçirmek için kullanılır. Bu ayarları parametre adından sonra boşlukla ayrılmış key=value çiftler olarak geçirin. Komutta bu parametreyi kullanırsanız, aynı komutta kullanamazsınız --config-protected-settings-file .
--config-protected-settings-file Hassas ayarları uzantıya geçirmek için kullanılacak key=value çiftleri içeren bir JSON dosyasının yolu. Komutta bu parametreyi kullanırsanız, aynı komutta kullanamazsınız --config-protected-settings .
--release-train Eklentinin Stable veya Preview gibi farklı sürüm trenlerinde yayımlanmış sürümleri varsa. Bu parametreyi açıkça ayarlamazsanız varsayılan Stable değerdir.
--scope Uzantının yükleme kapsamı (cluster veya namespace). Uzantıların çoğu küme kapsamlıdır, bu nedenle bu parametre yalnızca uzantı ad alanı kapsamına alınmışsa gereklidir.
--release-namespace scope olarak ayarlandığındacluster, bu parametre yayının oluşturulacağı ad alanını belirtir.
--target-namespace scope olarak ayarlandığındanamespace, bu parametre yayının oluşturulacağı ad alanını belirtir. Bu uzantı örneği için oluşturulan sistem hesabının izinleri bu ad alanıyla sınırlıdır.

Diğer isteğe bağlı parametreler hakkında bilgi için başvuru belgelerine az k8s-extension create bakın.

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 kullanın k8s-extension show . Gerekli parametre yer tutucuları için senaryonuzdaki değerleri kullanın.

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

Aşağıdaki örneğe benzer bir çıktı görmeniz gerekir:

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

Kümede yüklü olan tüm uzantıların listesini görüntülemek için komutunu kullanın k8s-extension list . Gerekli parametre yer tutucuları için senaryonuzdaki değerleri kullanın.

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

Aşağıdaki örneğe benzer bir çıktı görmeniz gerekir:

[
  {
    "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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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

Note

--configuration-settings ve --config-protected-settings içerisindeki belirli ayarlarla ilgili bilgi için, belirli uzantıya ait belgeleri inceleyin. için --config-protected-settings, yalnızca bir ayarı güncelleştirseniz bile tüm ayarları sağlayın. Bu ayarlardan herhangi birini atlarsanız, atlanmış ayarlar silinir.

Mevcut bir uzantı örneğini güncelleştirmek için kullanın k8s-extension update. Zorunlu ve isteğe bağlı parametreler için değerleri geçirin. Bu parametreler, uzantı örneği oluşturmak için kullandığınız parametrelerden biraz farklıdır.

Bu örnek, Azure Machine Learning uzantı örneğinin auto-upgrade-minor-version ayarını true olarak güncelleştirir:

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

Uzantı güncelleştirmesi için gerekli parametreler

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

Uzantı güncelleştirmesi 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ükseltılmayacağını belirten bir Boole özelliği. Varsayılan ayar true değeridir. Bu parametre olarak trueayarlanırsa, sürüm dinamik olarak güncelleştirildiğinden parametresini ayarlayamazsınız version . Parametre false olarak ayarlanırsa, düzeltme eki sürümleri için bile uzantı otomatik olarak yükseltilmez.
--version Yüklenecek uzantının sürümü (uzantı örneğinin sabitleneceği belirli bir sürüm). auto-upgrade-minor-version öğesine true olarak ayarlandıysa sağlanmamalıdır.
--configuration-settings İşlevselliğini denetlemek için uzantıya geçirebileceğiniz ayarlar. Bu ayarları parametre adından sonra boşlukla ayrılmış key=value çiftler olarak geçirin. Komutta bu parametreyi kullanırsanız, aynı komutta kullanamazsınız --config-settings-file . Yalnızca güncelleştirme gerektiren ayarları sağlayın. Sağlanan ayarlar belirtilen değerlerle değiştirilir.
--config-settings-file Yapılandırma ayarlarını uzantıya geçirmek için kullanılacak çiftleri içeren key=value bir JSON dosyasının yolu. Komutta bu parametreyi kullanırsanız, aynı komutta kullanamazsınız --configuration-settings .
--config-protected-settings GET API çağrıları veya az k8s-extension show komutları kullanılarak alınamayan ayarlar. Genellikle hassas ayarları geçirmek için kullanılır. Bu ayarları parametre adından sonra boşlukla ayrılmış key=value çiftler olarak geçirin. Komutunda bu parametreyi kullanırsanız, aynı komutta --config-protected-settings-file öğesini kullanamazsınız. Korumalı bir ayarı güncelleştirdiğinizde, tüm korumalı ayarları yapılandırın. Ayarlardan herhangi birini atlarsanız, bu ayarlar eski olarak kabul edilir ve silinir.
--config-protected-settings-file Uzantıya gizli ayarları geçirmek için kullanılacak key=value çiftlerini içeren bir JSON dosyasının yolu. Komutta bu parametreyi kullanırsanız, aynı komutta kullanamazsınız --config-protected-settings .
--scope Uzantının yükleme kapsamı (cluster veya namespace). Uzantıların çoğu küme kapsamlıdır, bu nedenle bu parametre yalnızca uzantı ad alanı kapsamına alınmışsa gereklidir.
--release-train Uzantının Stable veya Preview gibi farklı sürüm trenlerinde yayınlanmış sürümleri varsa, sürüm treni. Bu parametreyi açıkça ayarlamazsanız varsayılan Stable değerdir.

Diğer isteğe bağlı parametreler hakkında bilgi için başvuru belgelerine az k8s-extension update bakın.

Uzantı örneğini yükseltme

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

Uzantının yeni bir ana sürümünü almak için el ile yükseltmeniz gerekir. Ana sürüm yükseltmelerinde beklenmeyen hata değişikliklerini önlemek için uzantılarınızı ne zaman yükseltebileceğinizi seçebilirsiniz.

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

Bu örnek, Azure Machine Learning uzantı ö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

Kümedeki bir uzantı örneğini silmek için kullanın k8s-extension delete. Gerekli parametre yer tutucuları için senaryonuzdaki değerleri kullanın.

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

Note

Bu komut Azure uzantı kaynağını hemen siler. Ancak komut, bu uzantıyla ilişkili kümedeki Helm sürümünü yalnızca Kubernetes kümesinde çalışan aracıların ağ bağlantısı olduğunda ve Azure hizmetlere ulaşabildiğinde siler.