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

Kubernetes uzantıları özelliği, Azure Arc özellikli Kubernetes kümelerinde aşağıdakileri etkinleştirir:

  • Azure Resource Manager tabanlı küme uzantısı dağıtımı.
  • Uzantı Helm grafiklerinin yaşam döngüsü yönetimi.

Bu makalede şunları öğreneceksiniz:

  • Şu anda hangi Azure Arc özellikli Kubernetes kümesi uzantıları kullanılabilir.
  • Uzantı örnekleri oluşturma.
  • Gerekli ve isteğe bağlı parametreler.
  • Uzantı örneklerini görüntüleme, listeleme, güncelleştirme ve silme.

Bu özelliğe kavramsal bir genel bakış , Küme uzantıları - Azure Arc özellikli Kubernetes'te kullanılabilir.

Önkoşullar

  • Azure CLI'yi en son sürüme yükleyin veya yükseltin .

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

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

    connectedk8s ve k8s-extension uzantısı zaten yüklüyse, aşağıdaki komutu kullanarak bunları en son sürüme güncelleştirebilirsiniz:

    az extension update --name connectedk8s
    az extension update --name k8s-extension
    
  • Mevcut Azure Arc özellikli Kubernetes bağlı kümesi.

Şu anda kullanılabilir uzantılar

Şu anda aşağıdaki uzantılar kullanılabilir.

Dahili numara Description
Kapsayıcılar için Azure İzleyici Kubernetes kümesinde dağıtılan iş yüklerinin performansına ilişkin görünürlük sağlar. Denetleyicilerden, düğümlerden ve kapsayıcılardan bellek ve CPU kullanım ölçümlerini toplar.
Azure İlkesi Azure İlkesi, Açık İlke Aracısı (OPA) için bir erişim denetleyicisi web kancası olan Ağ Geçidi Denetleyicisi'ni, kümelerinizde merkezi ve tutarlı bir şekilde büyük ölçekte zorlamalar ve korumalar uygulayacak şekilde genişletir.
Azure Key Vault Gizli Dizi Sağlayıcısı Gizli Dizi Deposu için Azure Key Vault Sağlayıcısı CSI Sürücüsü, Azure Key Vault'nin bir CSI birimi aracılığıyla Kubernetes kümesiyle gizli dizi deposu olarak tümleştirilmesine olanak tanır.
Bulut için Microsoft Defender Kubernetes kümesinden denetim günlüğü verileri gibi güvenlikle ilgili bilgileri toplar. Toplanan verileri temel alan öneriler ve tehdit uyarıları sağlar.
Azure Arc özellikli Open Service Mesh Kümede Open Service Mesh dağıtır ve mTLS güvenliği, ayrıntılı erişim denetimi, trafik kaydırma, Azure İzleyici ile veya Prometheus ve Grafana'nın açık kaynak eklentileriyle izleme, Jaeger ile izleme, dış sertifika yönetimi çözümüyle tümleştirme gibi özellikler sağlar.
Azure Arc Özellikli Veri Hizmetleri Kubernetes'i ve seçtiğiniz altyapıyı kullanarak Azure veri hizmetlerini şirket içinde, uçta ve genel bulutlarda çalıştırmanızı mümkün kılar.
Azure Arc üzerinde Azure App Service Azure Arc özellikli Kubernetes kümelerinin üzerinde App Service bir Kubernetes ortamı sağlamanızı sağlar.
Kubernetes'te Azure Event Grid Azure Arc özellikli Kubernetes kümelerinin üzerinde konular ve olay abonelikleri gibi olay kılavuzu kaynakları oluşturun ve yönetin.
Azure Arc üzerinde Azure API Management Azure Arc özellikli Kubernetes kümelerinde API Management ağ geçidini dağıtın ve yönetin.
Azure Arc özellikli Machine Learning Azure Arc özellikli Kubernetes kümelerinde Azure Machine Learning'i dağıtın ve çalıştırın.
Flux (GitOps) Küme yapılandırmasını ve uygulama dağıtımını yönetmek için Flux ile GitOps kullanın.
Azure Kubernetes Service (AKS) ve Arc özellikli Kubernetes için Dapr uzantısı Dapr araçlarını indirme ve kümelerinize çalışma zamanını el ile yükleme ve yönetme yükünü ortadan kaldırır.

Not

Azure Arc özellikli Open Service Mesh, Azure Key Vault Gizli Dizi Sağlayıcısı, Flux (GitOps) ve Bulut uzantıları için Microsoft Defender desteğiyle Azure'dan sağlanan AKS karma kümelerine Azure Arc uzantılarını yükleme şu anda önizleme aşamasındadır.

Uzantı kapsamı

Arc özellikli Kubernetes kümesindeki uzantı yüklemeleri küme kapsamlı veya ad alanı kapsamlıdır.

Uzantı oluşturma sırasında belirtilene release-namespace küme kapsamlı bir uzantı yüklenir. Genellikle küme kapsamındaki uzantının ve podlar, işleçler ve Özel Kaynak Tanımları (CRD' ler) gibi bileşenlerinin yalnızca bir örneği kümedeki yayın ad alanına yüklenir.

Ad alanı kapsamlı bir uzantı, özelliği kullanılarak –namespace sağlanan belirli bir ad alanına yüklenebilir. Uzantı bir ad alanı kapsamında dağıtılabildiğinden, ad alanı kapsamlı uzantının ve bileşenlerinin birden çok örneği kümede çalıştırılabilir. Her uzantı örneğinin dağıtıldığı ad alanında izinleri vardır. Kubernetes'te Event Grid dışında yukarıdaki tüm uzantılar küme kapsamındadır.

Yukarıda listelenen tüm uzantılar, Azure Arc'ta Azure API Management dışında küme kapsamlıdır.

Küme uzantılarının kullanımı

Uzantı örneği oluşturma

ile k8s-extension create, zorunlu parametreler için değerleri geçirerek yeni bir uzantı örneği oluşturun. Aşağıdaki komut, Azure Arc özellikli Kubernetes kümenizde kapsayıcılar için Azure İzleyici 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 tutamıyor. 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 . Duruma geçtikten Failed sonra, yeni bir uzantı Azure kaynağı oluşturmak için yeniden çalıştırmanız k8s-extension create gerekir.

Kapsayıcılar için Azure İzleyici tekil bir uzantıdır (küme başına yalnızca bir tane gereklidir). Uzantılar aracılığıyla yüklemeden önce kapsayıcılar için Azure İzleyici'nin ö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

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ı için 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 connectedClustersArc özellikli Kubernetes'e karşılık gelen kullanın.

Not

Azure'dan sağlanan AKS karma kümeleriyle çalışırken kullanılacak provisionedClusters şekilde ayarlamanız --cluster-type ve komutuna eklemeniz --cluster-resource-provider microsoft.hybridcontainerservice gerekir. Azure'dan sağlanan AKS karma kümelerine Azure Arc uzantılarını yükleme şu anda önizleme aşamasındadır.

İsteğe bağlı parametreler

Parametre adı Açıklama
--auto-upgrade-minor-version Uzantı ikincil sürümünün otomatik olarak yükseltilip yükseltilmeyeceğini belirten Boole özelliği. Varsayılan: true. Bu parametre true olarak ayarlanırsa, sürüm dinamik olarak güncelleştirileceği için parametreyi ayarlayamazsınız version . olarak ayarlanırsa false, düzeltme eki sürümleri için bile uzantı otomatik olarak yükseltilmeyecektir.
--version Yüklenecek uzantının sürümü (uzantı örneğinin sabitleneceği belirli 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. Parametre adından sonra boşlukla ayrılmış key=value çiftler olarak geçirileceklerdir. 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 anahtar değer çiftlerine sahip JSON dosyasının yolu. Bu parametre komutunda kullanılıyorsa, --configuration-settings aynı komutta kullanılamaz.
--configuration-protected-settings Bu ayarlar API çağrıları veya az k8s-extension show komutları kullanılarak GET alınamaz ve bu nedenle hassas ayarları geçirmek için kullanılır. Parametre adından sonra boşlukla ayrılmış key=value çiftler olarak geçirileceklerdir. 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 anahtar değer çiftlerine sahip 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. Bu parametre yalnızca parametresi olarak clusterayarlandıysa scope geçerlidir.
--release-train Uzantı yazarları, sürümleri , Previewvb. gibi Stablefarklı sürüm eğitimlerinde yayımlayabilir. Bu parametre açıkça ayarlanmadıysa, Stable varsayılan olarak kullanılır. Parametre olarak ayarlandığında falsebu parametre kullanılamazautoUpgradeMinorVersion.
--target-namespace Bu parametre, 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. Bu parametre yalnızca parametresi olarak ayarlandıysa scopenamespacegeçerlidir.

Uzantı örneğinin ayrıntılarını gösterme

ile yüklü olan ve zorunlu parametreler için değerleri geçiren uzantı örneğinin k8s-extension showayrıntılarını görüntüleyin:

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

ile bir kümede k8s-extension listyüklü olan tüm uzantıları, zorunlu parametreler için değerleri geçirerek listeleyin.

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 silme

ile bir kümedeki k8s-extension deletebir uzantı örneğini silin ve zorunlu parametreler için değerleri 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.

Not

Azure'dan sağlanan AKS karma kümeleriyle çalışırken delete komutuna eklemeniz --yes gerekir. Azure'dan sağlanan AKS karma kümelerine Azure Arc uzantılarını yükleme şu anda önizleme aşamasındadır.

Azure'dan sağlanan AKS karma kümeleri (önizleme)

Azure'dan sağlanan AKS karma kümelerine uzantı dağıtabilirsiniz. Ancak, başarıyla dağıtmak için göz önünde bulundurmanız gereken birkaç önemli fark vardır:

  • parametresinin --cluster-type değeri olmalıdır provisionedClusters.

  • Komutlarınıza eklemeniz --cluster-resource-provider microsoft.hybridcontainerservice gerekir.

  • Uzantı örneğini silerken komutuna eklemeniz --yes gerekir:

    az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type provisionedClusters --cluster-resource-provider microsoft.hybridcontainerservice --yes
    

Ayrıca, Azure CLI k8s-extension modülünün en son sürümünü (sürüm >= 1.3.3) kullanıyor olmanız gerekir. En son sürümü eklemek veya güncelleştirmek için aşağıdaki komutları kullanın:

# add if you do not have this installed
az extension add --name k8s-extension

# update if you do have the module installed
az extension update --name k8s-extension

Önemli

Azure'dan sağlanan AKS karma kümelerine Azure Arc uzantılarını yükleme şu anda önizleme aşamasındadır.

Sonraki adımlar

Azure Arc özellikli Kubernetes için şu anda kullanılabilen küme uzantıları hakkında daha fazla bilgi edinin: