Menyambungkan volume Azure Elastic SAN ke kluster Azure Kubernetes Service
Artikel ini menjelaskan cara menyambungkan volume jaringan area penyimpanan (SAN) Azure Elastic dari kluster Azure Kubernetes Service (AKS). Untuk membuat koneksi ini, aktifkan driver Kubernetes iSCSI CSI pada kluster Anda. Dengan driver ini, Anda dapat mengakses volume pada Elastic SAN Anda dengan membuat volume persisten pada kluster AKS Anda, lalu melampirkan volume Elastic SAN ke volume persisten.
Tentang driver
Driver csi iSCSI adalah proyek sumber terbuka yang memungkinkan Anda untuk terhubung ke kluster Kubernetes melalui iSCSI. Karena driver adalah proyek sumber terbuka, Microsoft tidak akan memberikan dukungan dari masalah apa pun yang berasal dari driver, itu sendiri.
Driver CSI Kubernetes iSCSI tersedia di GitHub:
Pelisensian
Driver csi iSCSI untuk Kubernetes dilisensikan berdasarkan lisensi Apache 2.0.
Prasyarat
- Gunakan Azure CLI terbaru atau instal modul Azure PowerShell terbaru
- Memenuhi persyaratan kompatibilitas untuk driver CSI iSCSI
- Menyebarkan San Elastis
- Mengonfigurasi titik akhir jaringan virtual
- Mengonfigurasi aturan jaringan virtual
Batasan
- Provisi dinamis saat ini tidak didukung
- Hanya
ReadWriteOnce
mode akses yang saat ini didukung
Memulai
Penginstalan driver
curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-iscsi/master/deploy/install-driver.sh | bash -s master --
Setelah penyebaran, periksa status pod untuk memverifikasi bahwa driver diinstal.
kubectl -n kube-system get pod -o wide -l app=csi-iscsi-node
Mendapatkan informasi volume
Anda memerlukan StorageTargetIQN, StorageTargetPortalHostName, dan StorageTargetPortalPort volume.
Anda bisa mendapatkannya dengan perintah Azure PowerShell berikut ini:
Get-AzElasticSanVolume -ResourceGroupName $resourceGroupName -ElasticSanName $sanName -VolumeGroupName $searchedVolumeGroup -Name $searchedVolume
Anda juga bisa mendapatkannya dengan perintah Azure CLI berikut:
az elastic-san volume show --elastic-san-name --name --resource-group --volume-group-name
Mengonfigurasi kluster
Setelah mengambil informasi volume, Anda perlu membuat beberapa file yaml untuk sumber daya baru Anda di kluster AKS Anda.
Storageclass
Gunakan contoh berikut untuk membuat file storageclass.yml. File ini mendefinisikan kelas penyimpanan volume persisten Anda.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: san-volume
provisioner: manual
Volume persisten
Setelah Anda membuat kelas penyimpanan, buat file pv.yml . File ini mendefinisikan volume persisten Anda. Dalam contoh berikut, ganti yourTargetPortal
, , dan yourIQN
dengan nilai yang Anda kumpulkan sebelumnya, lalu gunakan contoh untuk membuat file pv.ymlyourTargetPortalPort
. Jika Anda membutuhkan lebih dari 1 gibibyte penyimpanan dan memilikinya tersedia, ganti 1Gi
dengan jumlah penyimpanan yang Anda butuhkan.
---
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"
Setelah membuat file pv.yml , buat volume persisten dengan perintah berikut:
kubectl apply -f pathtoyourfile/pv.yaml
Klaim volume persisten
Selanjutnya, buat klaim volume persisten. Gunakan kelas penyimpanan yang kami tentukan sebelumnya dengan volume persisten yang kami tentukan. Berikut ini adalah contoh tampilan file pvc.yml Anda:
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"]
Setelah membuat file pvc.yml , buat klaim volume persisten.
kubectl apply -f pathtoyourfile/pvc.yaml
Verifikasikan bahwa PersistentVolumeClaim Anda dibuat dan terikat ke PersistentVolume, jalankan perintah berikut:
kubectl get pvc pathtoyourfile
Terakhir, buat manifes pod. Berikut ini adalah contoh tampilan file pod.yml Anda. Anda dapat menggunakannya untuk membuat manifes pod Anda sendiri, mengganti nilai untuk name
, image
, dan mountPath
dengan milik Anda sendiri:
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
Setelah membuat file pod.yml , buat pod.
kubectl apply -f pathtoyourfile/pod.yaml
Untuk memverifikasi pod Anda dibuat, jalankan perintah berikut:
kubectl get pods
Anda sekarang telah berhasil menyambungkan volume Elastic SAN ke kluster AKS Anda.