【问题标题】:AWS EBS Volume with kubernetes issue具有 kubernetes 问题的 AWS EBS 卷
【发布时间】:2021-11-06 00:10:10
【问题描述】:
Mounting command: systemd-run
Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/2e47e8b4-4755-46d6-9bc4-461ea02a6cb9/volumes/kubernetes.io~aws-ebs/pv --scope -- mount  -o bind /var/lib/kubelet/plugins/kubernetes.io/aws-ebs/mounts/aws/us-east-2a/vol-011d7bb42da888b82 /var/lib/kubelet/pods/2e47e8b4-4755-46d6-9bc4-461ea02a6cb9/volumes/kubernetes.io~aws-ebs/pv
Output: Running scope as unit run-20000.scope.
mount: /var/lib/kubelet/pods/2e47e8b4-4755-46d6-9bc4-461ea02a6cb9/volumes/kubernetes.io~aws-ebs/pv: special device /var/lib/kubelet/plugins/kubernetes.io/aws-ebs/mounts/aws/us-east-2a/vol-011d7bb42da888b82 does not exist.
  Warning  FailedAttachVolume  7s (x6 over 23s)  attachdetach-controller                              AttachVolume.NewAttacher failed for volume "pv" : Failed to get AWS Cloud Provider. GetCloudProvider returned <nil> instead
  Warning  FailedMount         7s                kubelet, ip-172-31-3-191.us-east-2.compute.internal  MountVolume.SetUp failed for volume "pv" : mount failed: exit status 32
Mounting command: systemd-run
Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/2e47e8b4-4755-46d6-9bc4-461ea02a6cb9/volumes/kubernetes.io~aws-ebs/pv --scope -- mount  -o bind /var/lib/kubelet/plugins/kubernetes.io/aws-ebs/mounts/aws/us-east-2a/vol-011d7bb42da888b82 /var/lib/kubelet/pods/2e47e8b4-4755-46d6-9bc4-461ea02a6cb9/volumes/kubernetes.io~aws-ebs/pv
Output: Running scope as unit run-20058.scope.
mount: /var/lib/kubelet/pods/2e47e8b4-4755-46d6-9bc4-461ea02a6cb9/volumes/kubernetes.io~aws-ebs/pv: special device /var/lib/kubelet/plugins/kubernetes.io/aws-ebs/mounts/aws/us-east-2a/vol-011d7bb42da888b82 does not exist.

我有 Kubernetes 集群在 EBS 卷可用的同一可用区中运行

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: gp2-retain
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
reclaimPolicy: Retain
mountOptions:
  - debug
volumeBindingMode: Immediate


apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  labels:
    app: asvignesh
  name: _PVC_
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: gp2-retain
  volumeMode: Filesystem
  volumeName: _PV_


---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: _PV_
spec:
  accessModes:
  - ReadWriteOnce
  awsElasticBlockStore:
    fsType: xfs
    volumeID: aws://us-east-1a/vol-xxxxxxxxx
  capacity:
    storage: 10Gi
  persistentVolumeReclaimPolicy: Retain
  storageClassName: gp2-retain
  volumeMode: Filesystem


---
apiVersion: v1
kind: Service
metadata:
  name: mysql
  labels:
    app: asvignesh
spec:
  ports:
    - port: 3306
      targetPort: 3306
  selector:
    app: asvignesh
    tier: mysql
  clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
  labels:
    app: asvignesh
spec:
  selector:
    matchLabels:
      app: asvignesh
      tier: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: asvignesh
        tier: mysql
    spec:
      containers:
      - image: mysql:5.6
        name: mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: password
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: mysql-persistent-storage
          mountPath: /var/lib/mysql
      volumes:
      - name: mysql-persistent-storage
        persistentVolumeClaim:
          claimName: _PVC_

【问题讨论】:

  • 您能否添加更多详细信息 - 您是如何设置 Kubernetes 集群(裸机或一些云解决方案)的,您使用的是哪个 Kubernetes 版本?
  • @MikolajS。我使用带有 aws ec2 实例的 kubeadm v1.18 设置了 Kubernetes 集群。

标签: amazon-web-services kubernetes amazon-ebs persistent-volumes


【解决方案1】:

您是在托管 K8 还是裸机上运行集群?

因为

在 Kubernetes 方面,您需要确保 为 API 服务器、控制器管理器和集群中的每个 Kubelet 提供 --cloud-provider=aws 命令行标志。

参考文档:https://blog.scottlowe.org/2018/09/28/setting-up-the-kubernetes-aws-cloud-provider/

YAML 示例

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: standard
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
reclaimPolicy: Retain
mountOptions:
  - debug

参考:https://faun.pub/mysql-pod-with-persistent-ebs-volume-in-eks-150af369ff94

【讨论】:

  • 谢谢,但它不起作用。 --cloud-provider=aws 标志不适用于 kubeadm init
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
  • 2018-12-12
  • 2017-04-14
相关资源
最近更新 更多