Připojení svazků Azure Elastic SAN ke 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
- Použijte nejnovější Azure CLI nebo nainstalujte nejnovější modul Azure PowerShellu.
- Splnění požadavků na kompatibilitu pro ovladač iSCSI CSI
- Nasazení elastické sítě SAN
- Konfigurace koncového bodu virtuální sítě
- Konfigurace pravidel virtuální sítě
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
, yourTargetPortalPort
a 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
, image
a 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.