Appliance penyimpanan Azure Operator Nexus
Azure Operator Nexus dibangun di atas konstruksi dasar seperti server komputasi, peralatan penyimpanan, dan perangkat fabric jaringan. Appliance penyimpanan Azure Operator Nexus mewakili appliance penyimpanan persisten di rak.
Setiap appliance penyimpanan berisi beberapa perangkat penyimpanan, yang diagregasi untuk menyediakan satu kumpulan penyimpanan. Kumpulan penyimpanan ini kemudian diukir ke dalam beberapa volume, yang disajikan ke server komputasi sebagai perangkat penyimpanan blok. Server komputasi dapat menggunakan perangkat penyimpanan blok ini sebagai penyimpanan persisten untuk beban kerja mereka. Setiap kluster Azure Operator Nexus disediakan dengan satu appliance penyimpanan yang dibagikan di semua beban kerja penyewa.
Appliance penyimpanan dalam instans Azure Operator Nexus diwakili sebagai sumber daya Azure. Operator mendapatkan akses untuk melihat atributnya seperti sumber daya Azure lainnya.
Kelas penyimpanan Kubernetes
Tumpukan Kubernetes perangkat lunak Azure Operator Nexus menawarkan dua jenis penyimpanan. Operator memilihnya melalui mekanisme Kubernetes StorageClass.
StorageClass: nexus-volume
Mekanisme penyimpanan default, nexus-volume, adalah pilihan yang disukai untuk sebagian besar pengguna. Ini memberikan tingkat performa dan ketersediaan tertinggi. Namun, volume tidak dapat dibagikan secara bersamaan di beberapa simpul pekerja. Operator dapat mengakses dan mengelola volume ini dengan menggunakan Azure API dan portal, melalui sumber daya volume.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: testPvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 107Mi
storageClassName: nexus-volume
volumeMode: Block
volumeName: testVolume
status:
accessModes:
- ReadWriteOnce
capacity:
storage: 107Mi
phase: Bound
StorageClass: berbagi nexus
Dalam situasi di mana sistem file bersama diperlukan, kelas penyimpanan bersama nexus tersedia. Kelas penyimpanan ini menyediakan solusi penyimpanan bersama dengan mengaktifkan beberapa pod dalam kluster Nexus Kubernetes yang sama untuk mengakses dan berbagi volume yang sama secara bersamaan. Kelas penyimpanan bersama nexus didukung oleh layanan penyimpanan NFS. Layanan penyimpanan NFS ini (kumpulan penyimpanan saat ini terbatas pada ukuran maksimum 1TiB) tersedia per Cloud Service Network (CSN). Setiap kluster Nexus Kubernetes yang terpasang pada CSN dapat menyediakan volume persisten dari kumpulan penyimpanan bersama ini. Berbagi Nexus mendukung mode akses Read Write Once (RWO) dan Read Write Many (RWX). Artinya, aplikasi beban kerja dapat menggunakan salah satu mode akses ini untuk mengakses penyimpanan bersama.
Meskipun performa dan ketersediaan nexus-shared cukup untuk sebagian besar aplikasi, kami menyarankan agar beban kerja dengan persyaratan I/O berat menggunakan opsi nexus-volume untuk performa optimal.
Baca Tulis Sekali (RWO)
Dalam mode Baca Tulis Sekali (RWO), volume yang dibagikan nexus hanya dapat dipasang oleh satu simpul atau pengguntut pada satu waktu. Mode akses ReadWriteOnce masih memungkinkan beberapa pod untuk mengakses volume ketika pod berjalan pada node yang sama.
apiVersion: v1
items:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: nexus-shared
volumeMode: Filesystem
volumeName: TestVolume
status:
accessModes:
- ReadWriteOnce
capacity:
storage: 5Gi
phase: Bound
Baca Tulis Banyak (RWX)
Dalam mode Read Write Many (RWX), volume yang dibagikan nexus dapat dipasang oleh beberapa simpul atau pengguntut secara bersamaan.
apiVersion: v1
items:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
namespace: default
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
storageClassName: nexus-shared
volumeMode: Filesystem
volumeName: TestVolume
status:
accessModes:
- ReadWriteMany
capacity:
storage: 5Gi
phase: Bound
Contoh
Baca Tulis Sekali (RWO) dengan kelas penyimpanan nexus-volume
Manifes di bawah ini membuat StatefulSet dengan PersistentVolumeClaimTemplate menggunakan kelas penyimpanan nexus-volume dalam mode ReadWriteOnce.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: test-sts-rwo
labels:
app: test-sts-rwo
spec:
serviceName: test-sts-rwo-svc
replicas: 3
selector:
matchLabels:
app: test-sts-rwo
template:
metadata:
labels:
app: test-sts-rwo
spec:
containers:
- name: busybox
command:
- "/bin/sh"
- "-c"
- while true; do echo "$(date) -- $(hostname)" >> /mnt/hostname.txt; sleep 1; done
image: busybox
volumeMounts:
- name: test-volume-rwo
mountPath: /mnt/
volumeClaimTemplates:
- metadata:
name: test-volume-rwo
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi
storageClassName: nexus-volume
Setiap pod StatefulSet akan memiliki satu PersistentVolumeClaim yang dibuat.
# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
test-volume-rwo-test-sts-rwo-0 Bound pvc-e41fec47-cc43-4cd5-8547-5a4457cbdced 10Gi RWO nexus-volume 8m17s
test-volume-rwo-test-sts-rwo-1 Bound pvc-1589dc79-59d2-4a1d-8043-b6a883b7881d 10Gi RWO nexus-volume 7m58s
test-volume-rwo-test-sts-rwo-2 Bound pvc-82e3beac-fe67-4676-9c61-e982022d443f 10Gi RWO nexus-volume 12s
# kubectl get pods -o wide -w
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
test-sts-rwo-0 1/1 Running 0 8m31s 10.245.231.74 nexus-cluster-6a8c4018-agentpool2-md-vhhv6 <none> <none>
test-sts-rwo-1 1/1 Running 0 8m12s 10.245.126.73 nexus-cluster-6a8c4018-agentpool1-md-27nw4 <none> <none>
test-sts-rwo-2 1/1 Running 0 26s 10.245.183.9 nexus-cluster-6a8c4018-agentpool1-md-4jprt <none> <none>
# kubectl exec test-sts-rwo-0 -- cat /mnt/hostname.txt
Thu Nov 9 21:57:25 UTC 2023 -- test-sts-rwo-0
Thu Nov 9 21:57:26 UTC 2023 -- test-sts-rwo-0
Thu Nov 9 21:57:27 UTC 2023 -- test-sts-rwo-0
# kubectl exec test-sts-rwo-1 -- cat /mnt/hostname.txt
Thu Nov 9 21:57:19 UTC 2023 -- test-sts-rwo-1
Thu Nov 9 21:57:20 UTC 2023 -- test-sts-rwo-1
Thu Nov 9 21:57:21 UTC 2023 -- test-sts-rwo-1
# kubectl exec test-sts-rwo-s -- cat /mnt/hostname.txt
Thu Nov 9 21:58:32 UTC 2023 -- test-sts-rwo-2
Thu Nov 9 21:58:33 UTC 2023 -- test-sts-rwo-2
Thu Nov 9 21:58:34 UTC 2023 -- test-sts-rwo-2
Baca Tulis Banyak (RWX) dengan kelas penyimpanan bersama nexus
Manifes di bawah ini membuat Penyebaran dengan PersistentVolumeClaim (PVC) menggunakan kelas penyimpanan bersama nexus dalam mode ReadWriteMany. PVC yang dibuat dibagikan oleh semua pod penyebaran dan dapat digunakan untuk membaca dan menulis oleh semuanya secara bersamaan.
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-volume-rwx
spec:
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 3Gi
storageClassName: nexus-shared
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: test-deploy-rwx
name: test-deploy-rwx
spec:
replicas: 3
selector:
matchLabels:
app: test-deploy-rwx
template:
metadata:
labels:
app: test-deploy-rwx
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: kubernetes.azure.com/agentpool
operator: Exists
values: []
topologyKey: "kubernetes.io/hostname"
containers:
- name: busybox
command:
- "/bin/sh"
- "-c"
- while true; do echo "$(date) -- $(hostname)" >> /mnt/hostname.txt; sleep 1; done
image: busybox
volumeMounts:
- name: test-volume-rwx
mountPath: /mnt/
volumes:
- name: test-volume-rwx
persistentVolumeClaim:
claimName: test-volume-rwx
...
Setelah diterapkan, akan ada tiga replika penyebaran yang berbagi PVC yang sama.
# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
test-volume-rwx Bound pvc-32f0717e-6b63-4d64-a458-5be4ffe21d37 3Gi RWX nexus-shared 6s
# kubectl get pods -o wide -w
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
test-deploy-rwx-fdb8f49c-86pv4 1/1 Running 0 18s 10.245.224.140 nexus-cluster-6a8c4018-agentpool1-md-s2dh7 <none> <none>
test-deploy-rwx-fdb8f49c-9zsjf 1/1 Running 0 18s 10.245.126.74 nexus-cluster-6a8c4018-agentpool1-md-27nw4 <none> <none>
test-deploy-rwx-fdb8f49c-wdgw7 1/1 Running 0 18s 10.245.231.75 nexus-cluster-6a8c4018-agentpool2-md-vhhv6 <none> <none>
Ini dapat diamati dari output di bawah ini bahwa semua pod menulis ke dalam PVC yang sama.
# kubectl exec test-deploy-rwx-fdb8f49c-86pv4 -- cat /mnt/hostname.txt
Thu Nov 9 21:51:41 UTC 2023 -- test-deploy-rwx-fdb8f49c-86pv4
Thu Nov 9 21:51:41 UTC 2023 -- test-deploy-rwx-fdb8f49c-9zsjf
Thu Nov 9 21:51:41 UTC 2023 -- test-deploy-rwx-fdb8f49c-wdgw7
Thu Nov 9 21:51:42 UTC 2023 -- test-deploy-rwx-fdb8f49c-86pv4
# kubectl exec test-deploy-rwx-fdb8f49c-9zsjf -- cat /mnt/hostname.txt
Thu Nov 9 21:51:41 UTC 2023 -- test-deploy-rwx-fdb8f49c-86pv4
Thu Nov 9 21:51:41 UTC 2023 -- test-deploy-rwx-fdb8f49c-9zsjf
Thu Nov 9 21:51:41 UTC 2023 -- test-deploy-rwx-fdb8f49c-wdgw7
Thu Nov 9 21:51:42 UTC 2023 -- test-deploy-rwx-fdb8f49c-86pv4
# kubectl exec test-deploy-rwx-fdb8f49c-wdgw7 -- cat /mnt/hostname.txt
Thu Nov 9 21:51:41 UTC 2023 -- test-deploy-rwx-fdb8f49c-86pv4
Thu Nov 9 21:51:41 UTC 2023 -- test-deploy-rwx-fdb8f49c-9zsjf
Thu Nov 9 21:51:41 UTC 2023 -- test-deploy-rwx-fdb8f49c-wdgw7
Thu Nov 9 21:51:42 UTC 2023 -- test-deploy-rwx-fdb8f49c-86pv4
Status appliance penyimpanan
Properti berikut mencerminkan status operasional appliance penyimpanan:
Status
menunjukkan status sebagaimana berasal dari appliance penyimpanan. Statusnya bisaAvailable
, ,Error
atauProvisioning
.Provisioning State
menyediakan status provisi appliance penyimpanan saat ini. Status provisi dapat berupaSucceeded
,Failed
, atauInProgress
.Capacity
menyediakan total dan kapasitas yang digunakan dari appliance penyimpanan.Remote Vendor Management
menunjukkan apakah manajemen vendor jarak jauh diaktifkan atau dinonaktifkan untuk appliance penyimpanan.
Operasi appliance penyimpanan
- Mencantumkan Peralatan Penyimpanan: Mencantumkan appliance penyimpanan di grup sumber daya atau langganan yang disediakan.
- Tampilkan Storage Appliance: Mendapatkan properti appliance penyimpanan yang disediakan.
- Memperbarui Storage Appliance: Memperbarui properti atau tag appliance penyimpanan yang disediakan.
- Aktifkan/Nonaktifkan Manajemen Vendor Jarak Jauh untuk Storage Appliance: Mengaktifkan atau menonaktifkan manajemen vendor jarak jauh untuk appliance penyimpanan yang disediakan.
Catatan
Pelanggan tidak dapat membuat atau menghapus appliance penyimpanan secara langsung. Sumber daya ini dibuat hanya sebagai realisasi siklus hidup kluster. Implementasi memblokir permintaan pembuatan atau penghapusan dari pengguna mana pun, dan hanya memungkinkan operasi pembuatan atau penghapusan berbasis aplikasi/internal.