Azure Kubernetes Service ile kullanmak üzere Azure Container Storage'ı yükleme

Azure Container Storage , kapsayıcılar için oluşturulmuş bulut tabanlı bir birim yönetimi, dağıtımı ve düzenleme hizmetidir. İster yeni bir küme oluşturun ister hizmeti mevcut bir kümede etkinleştirin, Azure Kubernetes Service (AKS) kümesine Azure Container Storage'ın en son üretim sürümünü yüklemek için bu öğreticiyi kullanın.

Bu makalede desteklenen iki akışı (yalnızca yükleyici veya yükleyici + depolama türü) kullanarak Azure Container Storage'ın nasıl yükleneceği, sürücü yükleme işleminin nasıl tetiklendiği ve dağıtımınızın nasıl doğrulanıp sorun giderilme adımları açıklanmaktadır. Azure Container Storage, Kapsayıcı Depolama Arabirimi'ni (CSI) uygulayan sürücüleri yükler.

Azure Container Storage'ın açık kaynak sürümünü tercih ediyorsanız alternatif yükleme yönergeleri için local-csi-driver deposuna bakın.

Bu eğitimin sonunda şunları yapabilirsiniz:

  • Azure CLI ortamınızı hazırlama
  • Kümeniz için kaynak grubu oluşturma veya seçme
  • Düğüm havuzu sanal makine türlerinizin yükleme ölçütlerine uygun olduğunu onaylayın
  • Yeni bir AKS kümesi oluşturarak veya mevcut bir kümede etkinleştirerek Azure Container Storage'ı yükleme

Önemli

Bu makale Azure Container Storage (sürüm 2.x.x) için geçerlidir. Önceki sürümler için Bkz. Azure Container Storage (sürüm 1.x.x) belgeleri. AKS kümenizde Zaten Azure Container Storage (sürüm 1.x.x) yüklüyse , aşağıdaki adımları izleyerek kaldırın.

Önkoşullar

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

  • Bu makale, Azure CLI sürüm v2.83.0 veya üzerini gerektirir. Daha fazla bilgi için bkz. Azure CLI'yi yükleme. Sorunlar oluşursa aks-preview gibi uzantıları devre dışı bırakın. Uzantıları gerektiği gibi yükleyin veya güncelleştirin:

    • az extension add --upgrade --name k8s-extension
    • az extension add --upgrade --name elastic-san (Yalnızca elastik SAN)
  • Kubernetes komut satırı istemcisine ihtiyacınız vardır. kubectl Azure Cloud Shell kullanıyorsanız zaten yüklüdür. komutunu çalıştırarak az aks install-cli yerel olarak yükleyebilirsiniz.

  • Hedef bölgenizin Azure Container Storage bölgelerinde desteklenip desteklenmediğini denetleyin.

  • Düğüm havuzu yapılandırmanızı planlama:

    • İşletim sistemi türü olarak Linux kullanın (Windows desteklenmez).
    • Depolama için iyileştirilmiş veya GPU hızlandırılmış VM'ler gibi yerel NVMe depolama türünü kullanmayı planlıyorsanız yerel NVMe veri disklerini destekleyen bir sanal makine (VM) SKU'su seçin.
    • Mevcut kümeler için, Azure Container Storage'ı etkinleştirmeden önce düğüm havuzlarının desteklenen bir VM SKU'su kullandığına emin olun.
  • Elastik SAN'ı abonelikte ilk kez kullanıyorsanız şu tek seferlik kayıt komutunu çalıştırın:

    az provider register --namespace Microsoft.ElasticSan
    

Abonelik bağlamı ayarlama

komutunu kullanarak az account set Azure aboneliği bağlamınızı ayarlayın. komutunu çalıştırarak az account list --output tableabonelik kimliklerini görüntüleyebilirsiniz. "<subscription-id>'yi abonelik kimliğiniz ile değiştirin."

az account set --subscription <subscription-id>

Kaynak grubu oluşturma

Azure kaynak grubu, kaynaklar için mantıksal bir kapsayıcıdır. Kaynak grubu oluşturduğunuzda bir konum belirtirsiniz. Bu konum kaynak grubu meta verilerini depolar ve açık bölge olmadan oluşturduğunuz kaynaklar için varsayılan bölge olarak görev görür.

kullanarak az group createbir kaynak grubu oluşturun. <resource-group-name> öğesini kaynak grubunuzun adıyla ve <location>, eastus, westus2 veya westus3 gibi bir Azure bölgesiyle değiştirin. Mevcut bir AKS kümesinde Azure Container Storage'ı etkinleştirirseniz, kümeyi zaten barındıran kaynak grubunu kullanın.

az group create --name <resource-group-name> --location <location>

Kaynak grubu başarıyla oluşturulursa, şu örneğe benzer bir çıktı görürsünüz:

{
  "id": "/subscriptions/<guid>/resourceGroups/myContainerStorageRG",
  "location": "eastus",
  "managedBy": null,
  "name": "myContainerStorageRG",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Azure Container Storage'ı yeni bir AKS kümesine yükleme

Ortamınızla eşleşen senaryoyu seçin.

Önemli

Azure Container Storage varsayılan olarak en son ana sürümü yükler. --container-storage-version ile bir ana sürümü sabitleyebilirsiniz. Küçük veya yama sürümlerini sabitleyemezsiniz.

Sadece yükleyici kurulumu

Yeni bir AKS kümesi oluşturmak ve Azure Container Storage'ı yüklemek için aşağıdaki komutu çalıştırın. ve <cluster-name> değerlerini kendi değerlerinizle değiştirin <resource-group> ve kullanmak istediğiniz VM türünü belirtin.

az aks create -n <cluster-name> -g <resource-group> --node-vm-size Standard_L8s_v3 --enable-azure-container-storage --generate-ssh-keys

Dağıtım 5 dakika kadar sürebilir. Bir depolama sınıfı oluşturana veya depolama türünü daha sonra etkinleştirene kadar CSI sürücü yüklemesi ertelenebilir.

Yerel NVMe depolama sınıfı veya Elastik SAN depolama sınıfı oluşturma yönergelerini izleyin.

Yükleyici + depolama türü yükleme

Yeni bir AKS kümesi oluşturmak ve Azure Container Storage'ı yüklemek için aşağıdaki komutu çalıştırın. ve <cluster-name> değerlerini kendi değerlerinizle değiştirin <resource-group> ve kullanmak istediğiniz VM türünü belirtin.

az aks create -n <cluster-name> -g <resource-group> --node-vm-size Standard_L8s_v3 --enable-azure-container-storage ephemeralDisk --generate-ssh-keys

Bu komut yükleyiciyi yükler, yerel NVMe CSI sürücüsünü dağıtır ve adlı local-csivarsayılan bir depolama sınıfı oluşturur. gibi ephemeralDisk elasticSanbir liste sağlayarak hem yerel NVMe hem de Elastic SAN yükleyebilir ve kullanabilirsiniz.

Azure Container Storage'ı var olan bir AKS kümesine yükleme

Sadece yükleyici kurulumu

Mevcut aks kümesinde Azure Container Storage'ı etkinleştirmek için aşağıdaki komutu çalıştırın. ve <cluster-name> değerlerini kendi değerlerinizle değiştirin<resource-group>.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage

Dağıtım 5 dakika kadar sürebilir. Tamamlandığında, kümede Azure Container Storage yükleyici bileşeni yüklü olur. Bir depolama sınıfı oluşturana veya depolama türünü daha sonra etkinleştirene kadar CSI sürücü yüklemesi ertelenebilir. Yerel NVMe depolama sınıfı veya Elastik SAN depolama sınıfı oluşturma yönergelerini izleyin.

Yükleyici + depolama türü yükleme

Mevcut aks kümesinde Azure Container Storage'ı etkinleştirmek için aşağıdaki komutu çalıştırın. ve <cluster-name> değerlerini kendi değerlerinizle değiştirin <resource-group> ve kullanmak istediğiniz depolama türünü belirtin.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage elasticSan

Bu komut yükleyiciyi yükler, Elastik SAN CSI sürücüsünü dağıtır ve adlı azuresan-csivarsayılan bir depolama sınıfı oluşturur. gibi ephemeralDisk elasticSanbir liste sağlayarak hem yerel NVMe hem de Elastic SAN yükleyebilir ve kullanabilirsiniz.

  • Terraform'ı hazırlama ve Azure'da kimlik doğrulaması
  • Kaynak grubunuzu ve AKS kümesi yapılandırmanızı tanımlama
  • Düğüm havuzu sanal makine türlerinizin yükleme ölçütlerine uygun olduğunu onaylayın
  • Azure Container Storage dağıtımını yapmak veya mevcut bir kümede etkinleştirmek amacıyla Terraform'ı uygula.

Önemli

Bu makale Azure Container Storage (sürüm 2.x.x) için geçerlidir. Önceki sürümler için Bkz. Azure Container Storage (sürüm 1.x.x) belgeleri. AKS kümenizde Zaten Azure Container Storage (sürüm 1.x.x) yüklüyse , aşağıdaki adımları izleyerek kaldırın.

Önkoşullar

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

  • Bu makale, Azure CLI sürüm v2.83.0 veya üzerini gerektirir. Daha fazla bilgi için bkz. Azure CLI'yi yükleme. Sorunlar oluşursa aks-preview gibi uzantıları devre dışı bırakın. Uzantıları gerektiği gibi yükleyin veya güncelleştirin:

    • az extension add --upgrade --name k8s-extension
    • az extension add --upgrade --name elastic-san (Yalnızca elastik SAN)
  • Kubernetes komut satırı istemcisine ihtiyacınız vardır. kubectl Azure Cloud Shell kullanıyorsanız zaten yüklüdür. komutunu çalıştırarak az aks install-cli yerel olarak yükleyebilirsiniz.

  • Hedef bölgenizin Azure Container Storage bölgelerinde desteklenip desteklenmediğini denetleyin.

  • Düğüm havuzu yapılandırmanızı planlama:

    • İşletim sistemi türü olarak Linux kullanın (Windows desteklenmez).
    • Depolama için iyileştirilmiş veya GPU hızlandırmalı VM'ler gibi yerel NVMe veri disklerini destekleyen bir sanal makine (VM) SKU'su seçin.
    • Mevcut kümeler için, Azure Container Storage'ı etkinleştirmeden önce düğüm havuzlarının desteklenen bir VM SKU'su kullandığına emin olun.
  • Terraform sürüm 1.5 veya üzerini yükleyin ve ile terraform versionyüklemeyi onaylayın. Terraform, Azure CLI kimlik doğrulamanızı yeniden kullanabilir.

  • Elastik SAN'ı abonelikte ilk kez kullanıyorsanız şu tek seferlik kayıt komutunu çalıştırın:

    az provider register --namespace Microsoft.ElasticSan
    

Abonelik bağlamı ayarlama

Terraform, birden çok yöntemle hedef Azure aboneliğini belirleyebilir:

  • subscription_id sağlayıcı bloğunda
  • ARM_SUBSCRIPTION_ID ortam değişkeni
  • Azure CLI varsayılan aboneliği
  • Yönetilen kimlik (Azure'da çalışırken)

Yerel kullanım için Azure CLI bağlamını ayarlayın:

az account set --subscription <subscription-id>

Terraform ile abonelikte ilk kez dağıtım yaparsanız şu tek seferlik kayıt komutunu çalıştırın:

az provider register --namespace Microsoft.KubernetesConfiguration

# Wait for registration to complete (can take a few minutes)
az provider show --namespace Microsoft.KubernetesConfiguration --query "registrationState" -o tsv

Azure Container Storage'ı yeni bir AKS kümesine yükleme

Önemli

Azure Container Storage, kullanılabilir en son sürümü yükler ve kendisini otomatik olarak güncelleştirir. El ile sürüm seçimi desteklenmez.

  1. Boş bir çalışma dizininde, AKS kümesinin aşağıdaki minimum yapılandırmasına sahip bir dosya oluşturun main.tf . Gereksinimlerinizi karşılamak için kaynak adlarını, konumları ve VM boyutlarını güncelleştirin.

    terraform {
      required_version = ">= 1.5.0"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 4.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    resource "azurerm_resource_group" "rg" {
      name     = "demo-aks-rg"
      location = "eastus"
    }
    
    resource "azurerm_kubernetes_cluster" "aks" {
      name                = "demo-aks-cluster"
      dns_prefix          = "demo-aks"
      location            = azurerm_resource_group.rg.location
      resource_group_name = azurerm_resource_group.rg.name
    
      default_node_pool {
        name       = "systempool"
        vm_size    = "Standard_L8s_v3"
        node_count = 3
      }
    
      identity {
        type = "SystemAssigned"
      }
    }
    
    resource "azurerm_kubernetes_cluster_extension" "container_storage" {
      # NOTE: the `name` parameter must be "acstor" for Azure CLI compatibility
      name           = "acstor"
      cluster_id     = azurerm_kubernetes_cluster.aks.id
      extension_type = "microsoft.azurecontainerstoragev2"
    }
    
  2. AzureRM sağlayıcısını indirmek için çalışma dizinini başlatın.

    terraform init
    
  3. Planlanan değişiklikleri gözden geçirin.

    terraform plan
    
  4. Kaynak grubunu, AKS kümesini ve Azure Container Storage uzantısını oluşturmak için yapılandırmayı uygulayın. Dağıtım genellikle 5 dakika sürer.

    terraform apply
    

Tamamlandığında, kümede Azure Container Storage yükleyici bileşeni yüklü olur. Siz bir depolama sınıfı oluşturana kadar CSI sürücüsü yüklemesi ertelenebilir. Yerel NVMe depolama sınıfı veya Elastik SAN depolama sınıfı oluşturma yönergelerini izleyin.

Azure Container Storage'ı var olan bir AKS kümesine yükleme

AKS kümeniz zaten varsa ve bunu Terraform dışında yönetiyorsanız, yalnızca uzantı kaynağını yazarak Azure Container Storage'ı etkinleştirmeye devam edebilirsiniz. Küme kimliğini aramak için bir veri kaynağı kullanın.

terraform {
  required_version = ">= 1.5.0"
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 4.0"
    }
  }
}

provider "azurerm" {
  features {}
}

data "azurerm_kubernetes_cluster" "existing" {
  name                = "existing-aks"
  resource_group_name = "existing-aks-rg"
}

resource "azurerm_kubernetes_cluster_extension" "container_storage" {
  # NOTE: the `name` parameter must be "acstor" for Azure CLI compatibility
  name           = "acstor"
  cluster_id     = data.azurerm_kubernetes_cluster.existing.id
  extension_type = "microsoft.azurecontainerstoragev2"
}

Hedeflenen kümeye Azure Container Storage'ı yüklemek için, terraform init komutunu (eğer bu yeni bir çalışma diziniyse) ve ardından terraform apply komutunu çalıştırın. Dağıtım genellikle 5 dakika sürer.

Tamamlandığında, kümede Azure Container Storage yükleyici bileşeni yüklü olur. Siz bir depolama sınıfı oluşturana kadar CSI sürücüsü yüklemesi ertelenebilir. Yerel NVMe depolama sınıfı veya Elastik SAN depolama sınıfı oluşturma yönergelerini izleyin.

Yüklemeyi doğrulama

AKS kümesine bağlanma

Doğrulama komutlarını çalıştırmadan önce yerel kubeconfig'inizin hedef kümeye ayarlandığından emin olun:

az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>

Birden çok kümeyi yönetiyorsanız, var olan bağlamı değiştirmek için ekleyin --overwrite-existing veya benzersiz bir bağlam adı ayarlamak için kullanın --context .

Yükleyiciyi doğrulama (yalnızca yükleyici modu)

Yalnızca yükleyiciyi etkinleştirdikten sonra yükleyicinin mevcut olduğunu doğrulayın:

kubectl get deploy -n kube-system | grep acstor

Beklenen çıkış:

acstor-cluster-manager                2/2     2            2           4d9h
acstor-geneva                         2/2     2            2           4d9h

Depolama sınıfı varlığını doğrulama

Depolama sınıfı oluşturduktan veya depolama türünü etkinleştirdikten sonra depolama sınıfını doğrulayın:

kubectl get sc

Örnek çıkış:

NAME                    PROVISIONER               RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
azuresan-csi            san.csi.azure.com         Delete          Immediate              false                  4d7h
local-csi               localdisk.csi.acstor.io   Delete          WaitForFirstConsumer   true                   4d5h

Sürücü yüklemesini doğrulama

Depolama sınıfı oluşturma veya depolama türü yükleme işleminden sonra beklenen bileşenleri doğrulayın:

kubectl get pod -n kube-system | grep acstor

Örnek çıkış:

pod/acstor-azuresan-csi-driver-jrqd2                       7/7     Running   0               142m
pod/acstor-azuresan-csi-driver-tcdp8                       7/7     Running   0               142m
pod/acstor-cluster-manager-76c67496f9-8ln5d                2/2     Running   0               3h54m
pod/acstor-cluster-manager-76c67496f9-b4c8q                2/2     Running   0               3h54m
pod/acstor-geneva-588bcbcc67-4tr5d                         3/3     Running   0               3h54m
pod/acstor-geneva-588bcbcc67-k7j7k                         3/3     Running   0               3h54m
pod/acstor-node-agent-46v47                                1/1     Running   0               142m
pod/acstor-node-agent-6c99m                                1/1     Running   0               142m
pod/acstor-otel-collector-4lfgz                            1/1     Running   0               142m
pod/acstor-otel-collector-hw9nd                            1/1     Running   0               142m

Hata ayıklama

Hata ayıklama sürecinde, bileşenler devreye alınırken sistemi izleyin.

kubectl get events -n kube-system --watch
kubectl get pod -n kube-system --watch

Yükleyici tarafından kullanılan HelmRelease ve OCIRepository özel kaynaklarını inceleyin:

kubectl describe helmreleases.helm.installer.acstor.io -n kube-system
kubectl describe ocirepositories.source.installer.acstor.io -n kube-system

Sonraki Adımlar