如何配置手动配置的Azure托管磁盘以用作kubernetes持久卷



我正在尝试运行Jenkins Helm图表。作为此设置的一部分,我想通过提前提供的持久卷(或在迁移过程中从另一个集群导出(。

我正在尝试以一种方式来获得我的持久卷(PV(和持久卷声明(PVC(的设置,以至于当Jenkins启动时,它会使用我的预定义PV和PVC。

我认为该问题源自Azure磁盘的持久存储定义,指向我的存储帐户中的VHD。有什么方法可以将其指向现有的托管磁盘 - 而不是斑点?

这是我使用Azure托管磁盘设置持久存储的方式

apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-home
spec:
  capacity:
    storage: 10Gi
  storageClassName: default
  azureDisk:
    diskName: jenkins-home
    diskURI: https://<storageaccount>.blob.core.windows.net/jenkins-data/jenkins-home.vhd
    fsType: ext4
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  claimRef:
    name: jenkins-home-pvc
    namespace: default
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: jenkins-home-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: default

我开始这样掌舵...

helm install --name jenkins stable/jenkins --values=values.yaml

我的values.yaml文件看起来像

Persistence:
  ExistingClaim: jenkins-home-pvc

这是詹金斯(Jenkins(启动时收到的错误。

Attachvolume.attach因" Jenkins-Home"的音量失败:附加音量" Jenkins-Home"到实例" AKS-AGENTPOOL-40897452-0" compute.virtualMachinesClient#creationorUpdate失败了 - 原始错误:Autorest/Azure:服务返回错误。状态= 409代码=" aperationNotAllowed"消息="在使用托管磁盘的VM中添加基于斑点的磁盘的添加。"

我在这里向Azure团队提出了这个问题。

通过他们的帮助,我到达了以下解决方案...

我曾经尝试使用托管磁盘资源ID,但它对我大喊大叫,说它期望一个.vhd文件。但是,在添加了"善良:管理"之后,很高兴获得托管磁盘资源ID。

创建一个空的和格式的托管磁盘当然是可行的先决条件。还需要将托管磁盘复制到同一资源组中。

所以现在我的PV和PVC看起来像这样,它正在工作...

apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-home
spec:
  capacity:
    storage: 10Gi
  storageClassName: default
  azureDisk:
    kind: Managed
    diskName: jenkins-home
    diskURI: /subscriptions/{subscription-id}/resourceGroups/{aks-controlled-resource-group-name}/providers/Microsoft.Compute/disks/jenkins-home
    fsType: ext4
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  claimRef:
    name: jenkins-home-pvc
    namespace: default
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: jenkins-home-pvc
  annotations:
    volume.beta.kubernetes.io/storage-class: default
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: default

相关内容

  • 没有找到相关文章

最新更新