1

我正在尝试创建一个使用现有托管磁盘作为已挂载磁盘源的 pod。我可以直接附加托管磁盘,但不能通过 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 基础架构来创建现有托管磁盘的副本,然后将其附加到启动的 pod。

4

2 回答 2

0

Kubernetes 提供了 3 种访问模式,用于将 Persistent Volumes 挂载到 Pod:

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

在您的情况下,如果您想将一个卷挂载到多个 pod,则需要使用accessModes: ReadWriteMany. 因此,您需要检查一下,是否可以将这种模式用于 Azure。

有关更多信息,您可以通过该链接

于 2018-06-04T11:38:35.600 回答
0

在与一位 AKS 开发人员交谈后,我被告知只能将现有磁盘附加到 AKS 或创建一个新的空磁盘。目前尚不清楚这是否会在未来发生变化。

于 2018-06-14T08:30:11.953 回答