Kubernetes 无法连接aws ebs卷,错误“;“未找到实例”;

Kubernetes 无法连接aws ebs卷,错误“;“未找到实例”;,kubernetes,amazon-ec2,kubernetes-pod,amazon-ebs,Kubernetes,Amazon Ec2,Kubernetes Pod,Amazon Ebs,信息: Kubernetes服务器版本:1.14 AWS云提供商 EBS卷,存储类 详情: 我已经在我们的kubernetes集群中安装了statefulset,但它仍然保持“ContainerCreating”状态。检查日志后,错误为“AttachVolume.Attach对于卷pvc-xxxxxx失败:错误查找实例ip-xxxxx:“未找到实例” 它在大约17天前成功安装,但重新安装更新导致pod卡在ContainerCreating中 手动将卷附加到实例是可行的。但通过存储类执行此操作

信息:

  • Kubernetes服务器版本:1.14
  • AWS云提供商
  • EBS卷,存储类
详情: 我已经在我们的kubernetes集群中安装了statefulset,但它仍然保持“ContainerCreating”状态。检查日志后,错误为“AttachVolume.Attach对于卷pvc-xxxxxx失败:错误查找实例ip-xxxxx:“未找到实例”

它在大约17天前成功安装,但重新安装更新导致pod卡在ContainerCreating中

手动将卷附加到实例是可行的。但通过存储类执行此操作不起作用,并且卡在ContainerCreating状态

storageclass:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  name: ssd-default
allowVolumeExpansion: true
parameters:
  encrypted: "true"
  type: gp2
provisioner: kubernetes.io/aws-ebs
reclaimPolicy: Delete
volumeBindingMode: Immediate
pvc yaml:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/aws-ebs
  finalizers:
  - kubernetes.io/pvc-protection
  labels:
    app.kubernetes.io/instance: thanos-store
    app.kubernetes.io/name: thanos-store
  name: data-thanos-store-0
  namespace: thanos
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi
  storageClassName: ssd-default
  volumeMode: Filesystem
  volumeName: pvc-xxxxxx
status:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 3Gi
  phase: Bound
pv yaml:

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    kubernetes.io/createdby: aws-ebs-dynamic-provisioner
    pv.kubernetes.io/bound-by-controller: "yes"
    pv.kubernetes.io/provisioned-by: kubernetes.io/aws-ebs
  finalizers:
  - kubernetes.io/pv-protection
  labels:
    failure-domain.beta.kubernetes.io/region: ap-xxx
    failure-domain.beta.kubernetes.io/zone: ap-xxx
  name: pvc-xxxx
spec:
  accessModes:
  - ReadWriteOnce
  awsElasticBlockStore:
    fsType: ext4
    volumeID: aws://xxxxx
  capacity:
    storage: 3Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: data-athena-thanos-store-0
    namespace: thanos
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: failure-domain.beta.kubernetes.io/region
          operator: In
          values:
          - ap-xxx
        - key: failure-domain.beta.kubernetes.io/zone
          operator: In
          values:
          - ap-xxx
  persistentVolumeReclaimPolicy: Delete
  storageClassName: ssd-default
  volumeMode: Filesystem
status:
  phase: Bound
描述pvc:

Name:          data-athena-thanos-store-0
Namespace:     athena-thanos
StorageClass:  ssd-encrypted
Status:        Bound
Volume:        pvc-xxxx
Labels:        app.kubernetes.io/instance=athena-thanos-store
               app.kubernetes.io/name=athena-thanos-store
Annotations:   pv.kubernetes.io/bind-completed: yes
               pv.kubernetes.io/bound-by-controller: yes
               volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/aws-ebs
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      3Gi
Access Modes:  RWO
VolumeMode:    Filesystem
Mounted By:    athena-thanos-store-0

当一个EBS卷无法从一个实例分离,因此无法连接到另一个实例时,会发生
FailedAttachVolume
错误。EBS卷必须处于可用状态才能连接。
FailedAttachVolume
通常是卸载和分离卷的基础故障的症状

请注意,在描述PVC时,
StorageClass
名称为
ssd encrypted
,这与前面显示的配置不匹配,
kind:StorageClass
名称为
ssd default
。这就是为什么您可以手动装入卷,但不能通过
StorageClass
。您可以删除并重新创建卷
StorageClass
包含正确的数据


另外,我建议使用
volumeBindingMode:WaitForFirstConsumer
而不是
volumeBindingMode:Immediate
。此设置指示卷供应器不要立即创建卷,而是等待使用关联PVC的pod运行调度。

两个问题:1.您可以共享吗e您当前的配置(PV和PVC YAML)?2.使用Kubernetes版本1.14有什么特别的原因吗?Hello@WytrzymałyWiktor,回答:1.我更新了我的问题,包括存储类的yaml和使用pvc的应用程序yaml。我们使用的是存储类。2.集群非常旧,正在升级,这是一个最不重要的问题。您是否也可以用
kubectl描述pvc描述pvc data-thanos-store-0
并用结果编辑您的问题?Hello@WytrzymałyWiktor,我更新了我的帖子,我在描述pvc时添加了详细信息,状态为绑定,但pod容器仍然卡在“容器创建”中“身份,非常感谢。找到了罪犯。我按照您的建议更改了sc,新问题仍然存在。问题似乎出在可以连接的卷的节点数限制上。当我删除容差时,它创建了卷并成功地连接了它。非常感谢你。