Dynamic Volume Provisioning - Azure Disks with AKS in Azure
讀書會來到第十三章 - Kubernetes 和整合儲存解決方案
有提到 動態磁碟區擴充 ( Dynamic Volume Provisioning )
書上只有短暫的範例, 沒有實做, 所以就來實做看看
參考官方文件
看到有關於動態的部份有兩種
- Azure 磁碟 - 動態
- 供單一 Pod 使用, ReadWriteOnce
- Azure 檔案 - 動態
- 供多個 Pod 使用, ReadWriteMany
書上提到的是 azure-disk, 那就先從 Azure 磁碟 - 動態開始吧
Storage Class 官方文件 https://kubernetes.io/docs/concepts/storage/storage-classes/#azure-disk
AKS 有內建兩個 storageclasses, 分別是 default ( HDD )與 managed-premium (SSD)
可以使用 kubectl get sc 觀察
> kubectl get sc
NAME PROVISIONER AGE
default (default) kubernetes.io/azure-disk 7d
managed-premium kubernetes.io/azure-disk 198d
那如何知道 sc 是那個名稱的縮寫呢?
可以使用 kubectl api-resources 來查詢
> kubectl api-resources
NAME SHORTNAMES APIGROUP NAMESPACED KIND
storageclasses sc storage.k8s.io false StorageClass
還沒建立之前, 先觀察資訊
> kubectl get pvc
No resources found.
參考範例, 建立一個 azure-premium.yaml 檔案
> vi azure-premium.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: azure-managed-disk20190207
spec:
accessModes:
- ReadWriteOnce
storageClassName: managed-premium
resources:
requests:
storage: 5Gi
使用 kubectl apply 建立
> kubectl apply -f azure-premium.yaml
persistentvolumeclaim/azure-managed-disk20190207 created
再次觀察資訊
> kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
azure-managed-disk20190207 Bound pvc-23cc8866-2aea-11e9-9cae-2e861ae6099d 5Gi RWO managed-premium 1m
這邊由於 Azure 已經有內建 StorageClass, 所以不需要像書上一樣, 先建立 StorageClass
直接建立 pvc 就可以
接下來參考官方文件, 建立一個 pod 並使用剛剛 pvc disk 的 yaml 檔案
> vi azure-pvc-disk.yaml
kind: Pod
apiVersion: v1
metadata:
name: mypod
spec:
containers:
- name: mypod
image: nginx:1.15.5
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
volumeMounts:
- mountPath: "/mnt/azure"
name: volume
volumes:
- name: volume
persistentVolumeClaim:
claimName: azure-managed-disk20190207
使用 kubectl apply 指令建立
> kubectl apply -f azure-pvc-disk.yaml
pod/mypod created
觀察相關資訊
> kubectl describe pod mypod
中間恕略
volume:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: azure-managed-disk20190207
ReadOnly: false
default-token-swswz:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-swswz
Optional: false
當然也可以從 vscode 上面觀察
看起來在 Azure 上面使用 azure-disk 來建立 pvc 相對便利
也是多實做一個東西
今天先這樣, 找時間來實做 pvc with Azure-files with AKS
~ enjoy it
Reference:
沒有留言:
張貼留言