gpt4 book ai didi

azure - 如何配置手动预配的 Azure 托管磁盘以用作 Kubernetes 持久卷?

转载 作者:行者123 更新时间:2023-12-04 23:37:38 25 4
gpt4 key购买 nike

我正在尝试运行 Jenkins Helm chart 。作为此设置的一部分,我想传递我提前配置的持久卷(或者可能在迁移期间从另一个集群导出)。

我正在尝试以这样的方式设置我的持久卷 (PV) 和持久卷声明 (PVC):当 Jenkins 启动时,它使用我预定义的 PV 和 PVC。

我认为问题源于 Azure 磁盘的持久存储定义指向我的存储帐户中的 VHD。有没有办法将其指向现有的托管磁盘 - 而不是 blob?

这就是我使用 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 ......

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

我的 values.yaml 文件看起来像

Persistence:
ExistingClaim: jenkins-home-pvc

这是 Jenkins 的 Pod 启动时收到的错误。

AttachVolume.Attach failed for volume "jenkins-home" : Attach volume "jenkins-home" to instance "aks-agentpool-40897452-0" failed with compute.VirtualMachinesClient#CreateOrUpdate: Failure responding to request: StatusCode=409 -- Original Error: autorest/azure: Service returned an error. Status=409 Code="OperationNotAllowed" Message="Addition of a blob based disk to VM with managed disks is not supported."

最佳答案

我向 Azure 团队提出了这个问题 here .

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

我之前曾尝试使用托管磁盘资源 ID,但它对我大喊大叫,说它需要一个 .vhd 文件。但在添加“kind: Managed”后,它非常乐意获取托管磁盘资源 ID。

创建一个空的且已格式化的托管磁盘当然是其工作的先决条件。还需要将托管磁盘复制到与 AKS 群集相同的资源组中。

现在我的 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

关于azure - 如何配置手动预配的 Azure 托管磁盘以用作 Kubernetes 持久卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48774021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com