在AKS上挂载受管磁盘的副本

时间:2018-06-04 00:16:46

标签: azure kubernetes azure-aks

我正在尝试创建一个使用现有托管磁盘作为已安装磁盘源的窗格。我可以直接附加托管磁盘,但我无法通过PV和PVC工作。

这些是我使用

的文件

pvclaim.yml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mongo-pvc
  annotations:
    volume.beta.kubernetes.io/storage-class: default
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 256Gi
  storageClassName: default

pvdisk.yml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mongo-pv
spec:
  capacity:
    storage: 256Gi
  storageClassName: default
  azureDisk:
      kind: Managed
      diskName: Mongo-Data-Test01
      fsType: xfs
      diskURI: /subscriptions/<SubId>/resourceGroups/Static-Staging-Disks-Centralus/providers/Microsoft.Compute/disks/Mongo-Data-Test01
  accessModes:
  - ReadWriteOnce
  claimRef:
    name: mongo-pvc
    namespace: default

pvpod.yml

apiVersion: v1
kind: Pod
metadata:
name: adisk
spec:
containers:
  - image: nginx
    name: azure
    volumeMounts:
      - name: azuremount
        mountPath: /mnt/azure
volumes:
  - name: azuremount
    persistentVolumeClaim:
      claimName: mongo-pvc

最终目标是创建一个Statefulset,它将部署具有相同托管磁盘的Pod集群作为它们的源。

任何指针都将不胜感激!

已更新以添加

以上内容将为每个启动的实例(pod)创建一个新磁盘。我希望使用createOption: fromImage

创建一个新磁盘

因此,我正在寻找底层Azure基础架构来创建现有托管磁盘的副本,然后将其附加到已启动的窗格。

2 个答案:

答案 0 :(得分:0)

Kubernetes提供3种类型的访问模式,用于将持久卷安装到Pod:

  • ReadWriteOnce - 卷可以由单个节点以读写方式挂载
  • ReadOnlyMany - 卷可以由许多节点以只读方式挂载
  • ReadWriteMany - 可以通过许多节点以读写方式挂载卷

在您的情况下,如果要将一个卷安装到多个pod,则需要使用accessModes: ReadWriteMany。因此,您需要检查,可以将此模式用于Azure。

有关详细信息,您可以查看link

答案 1 :(得分:0)

在与AKS开发人员进行对话后,我被告知只能连接现有磁盘或为AKS创建新的空磁盘。目前还不清楚这是否会在未来发生变化。