Sdílet prostřednictvím


Připojení svazků Azure Elastic SAN do clusteru Azure Kubernetes Service

Tento článek vysvětluje, jak připojit svazek azure Elastic Storage Area Network (SAN) z clusteru Azure Kubernetes Service (AKS). Pokud chcete toto připojení provést, povolte v clusteru ovladač CSI Kubernetes iSCSI. S tímto ovladačem můžete přistupovat ke svazkům v elastické síti SAN vytvořením trvalých svazků v clusteru AKS a následným připojením svazků Elastic SAN k trvalým svazkům.

Informace o ovladači

Ovladač csI iSCSI je opensourcový projekt, který umožňuje připojení ke clusteru Kubernetes přes iSCSI. Vzhledem k tomu, že ovladač je opensourcový projekt, Microsoft neposkytuje podporu z jakýchkoli problémů vyplývajících ze samotného ovladače.

Ovladač Kubernetes iSCSI CSI je k dispozici na GitHubu:

Licencování

Ovladač csI iSCSI pro Kubernetes je licencovaný v rámci licence Apache 2.0.

Požadavky

Omezení

  • Dynamické zřizování se v současné době nepodporuje.
  • V současné době se podporuje jenom ReadWriteOnce režim přístupu.

Začínáme

Instalace ovladače

curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-iscsi/master/deploy/install-driver.sh | bash -s master --

Po nasazení zkontrolujte stav podů a ověřte, že je ovladač nainstalovaný.

kubectl -n kube-system get pod -o wide -l app=csi-iscsi-node

Získání informací o svazku

Potřebujete svazek StorageTargetIQN, StorageTargetPortalHostName a StorageTargetPortalPort.

Můžete je získat pomocí následujícího příkazu Azure PowerShellu:

Get-AzElasticSanVolume -ResourceGroupName $resourceGroupName -ElasticSanName $sanName -VolumeGroupName $searchedVolumeGroup -Name $searchedVolume 

Můžete je získat také pomocí následujícího příkazu Azure CLI:

az elastic-san volume show --elastic-san-name --name --resource-group --volume-group-name

Konfigurace clusteru

Po načtení informací o svazku je potřeba vytvořit několik souborů yaml pro nové prostředky v clusteru AKS.

Storageclass

Pomocí následujícího příkladu vytvořte soubor storageclass.yml. Tento soubor definuje třídu úložiště trvalého svazku.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: san-volume
provisioner: manual

Trvalý svazek

Po vytvoření třídy úložiště vytvořte soubor pv.yml . Tento soubor definuje trvalý svazek. V následujícím příkladu nahraďte yourTargetPortal, yourTargetPortalPorta yourIQN hodnotami, které jste shromáždili dříve, a pak použijte příklad k vytvoření pv.yml souboru. Pokud potřebujete více než 1 gibibajtů úložiště a máte ho k dispozici, nahraďte 1Gi požadovanou velikostí úložiště.

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: iscsiplugin-pv
  labels:
    name: data-iscsiplugin
spec:
  storageClassName: san-volume
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 1Gi
  csi:
    driver: iscsi.csi.k8s.io
    volumeHandle: iscsi-data-id
    volumeAttributes:
      targetPortal: "yourTargetPortal:yourTargetPortalPort"
      portals: "[]"
      iqn: "yourIQN"
      lun: "0"
      iscsiInterface: "default"
      discoveryCHAPAuth: "true"
      sessionCHAPAuth: "false"

Po vytvoření souboru pv.yml vytvořte trvalý svazek pomocí následujícího příkazu:

kubectl apply -f pathtoyourfile/pv.yaml

Deklarace trvalého svazku

Dále vytvořte trvalou deklaraci identity svazku. Použijte třídu úložiště, která jsme definovali dříve s trvalým svazkem, který jsme definovali. Následuje příklad toho, jak váš soubor pvc.yml může vypadat:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: iscsiplugin-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: san-volume
  selector:
    matchExpressions:
      - key: name
        operator: In
        values: ["data-iscsiplugin"]

Po vytvoření souboru pvc.yml vytvořte trvalou deklaraci identity svazku.

kubectl apply -f pathtoyourfile/pvc.yaml

Pokud chcete ověřit, že je váš TrvalýVolumeClaim vytvořený a vázaný na PersistentVolume, spusťte následující příkaz:

kubectl get pvc pathtoyourfile 

Nakonec vytvořte manifest podu. Následuje příklad toho, jak váš soubor pod.yml může vypadat. Můžete ho použít k vytvoření vlastního manifestu podu, nahrazení hodnot pro name, imagea mountPath vlastními:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
    - image: maersk/nginx
      imagePullPolicy: Always
      name: nginx
      ports:
        - containerPort: 80
          protocol: TCP
      volumeMounts:
        - mountPath: /var/www
          name: iscsi-volume
  volumes:
    - name: iscsi-volume
      persistentVolumeClaim:
        claimName: iscsiplugin-pvc

Po vytvoření souboru pod.yml vytvořte pod.

kubectl apply -f pathtoyourfile/pod.yaml

Pokud chcete ověřit vytvoření podu, spusťte následující příkaz:

kubectl get pods  

Teď jste úspěšně připojili svazek Elastic SAN ke clusteru AKS.

Další kroky

Plánování nasazení elastické sítě SAN