Kubernetes 在K8S上安装RabbitMQ时无法绑定到卷

Kubernetes 在K8S上安装RabbitMQ时无法绑定到卷,kubernetes,rabbitmq,Kubernetes,Rabbitmq,我正在尝试使用helm安装rabbit mq,但由于卷问题,安装失败 这是我的存储类: apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-storage provisioner: kubernetes.io/no-provisioner volumeBindingMode: Immediate 这是我的永久卷: apiVersion: v1 kind: PersistentVolume metada

我正在尝试使用helm安装rabbit mq,但由于卷问题,安装失败

这是我的存储类:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: Immediate
这是我的永久卷:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: main-pv
spec:
  capacity:
    storage: 100Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /media/2TB-DATA/k8s-pv
  nodeAffinity:
    required:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
                - node-dev
这是列出我的存储和pv的输出:

# kubectl get storageclass
NAME                      PROVISIONER                    RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
local-storage (default)   kubernetes.io/no-provisioner   Delete          Immediate           false                  14m
# kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS    REASON   AGE
main-pv   100Gi      RWX            Delete           Available           local-storage            40m
安装rabbit mq后:

helm install rabbitmq bitnami/rabbitmq
pod处于挂起状态,我看到此错误:

# kubectl describe pvc
Name:          data-rabbitmq-0
Namespace:     default
StorageClass:
Status:        Pending
Volume:
Labels:        app.kubernetes.io/instance=rabbitmq
               app.kubernetes.io/name=rabbitmq
Annotations:   <none>
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode:    Filesystem
Mounted By:    rabbitmq-0
Events:
  Type    Reason         Age                     From                         Message
  ----    ------         ----                    ----                         -------
  Normal  FailedBinding  3m20s (x4363 over 18h)  persistentvolume-controller  no persistent volumes available for this claim and no storage class is set
#kubectl描述pvc
名称:data-rabbitmq-0
名称空间:默认值
StorageClass:
状态:待定
卷:
标签:app.kubernetes.io/instance=rabbitmq
app.kubernetes.io/name=rabbitmq
注释:
终结器:[kubernetes.io/pvc保护]
容量:
访问模式:
VolumeMode:文件系统
挂载者:rabbitmq-0
活动:
从消息中键入原因年龄
----    ------         ----                    ----                         -------
正常失败绑定3m20s(x4363超过18小时)persistentvolume controller没有可用于此声明的持久卷,并且未设置存储类

我做错了什么?

可能与平台相关。你在哪里试着这么做的?我在问,因为它不能在GKE上复制-它工作得很好

群集版本、标签、节点

kubectl get nodes --show-labels
NAME                                       STATUS   ROLES    AGE   VERSION           LABELS
gke-cluster-1-default-pool-82008fd9-8x81   Ready    <none>   96d   v1.14.10-gke.36   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/fluentd-ds-ready=true,beta.kubernetes.io/instance-type=n1-standard-1,beta.kubernetes.io/os=linux,cloud.google.com/gke-nodepool=default-pool,cloud.google.com/gke-os-distribution=cos,failure-domain.beta.kubernetes.io/region=europe-west4,failure-domain.beta.kubernetes.io/zone=europe-west4-b,kubernetes.io/arch=amd64,kubernetes.io/hostname=gke-cluster-1-default-pool-82008fd9-8x81,kubernetes.io/os=linux,test=node
gke-cluster-1-default-pool-82008fd9-qkp7   Ready    <none>   96d   v1.14.10-gke.36   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/fluentd-ds-ready=true,beta.kubernetes.io/instance-type=n1-standard-1,beta.kubernetes.io/os=linux,cloud.google.com/gke-nodepool=default-pool,cloud.google.com/gke-os-distribution=cos,failure-domain.beta.kubernetes.io/region=europe-west4,failure-domain.beta.kubernetes.io/zone=europe-west4-b,kubernetes.io/arch=amd64,kubernetes.io/hostname=gke-cluster-1-default-pool-82008fd9-qkp7,kubernetes.io/os=linux,test=node
gke-cluster-1-default-pool-82008fd9-tlc7   Ready    <none>   96d   v1.14.10-gke.36   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/fluentd-ds-ready=true,beta.kubernetes.io/instance-type=n1-standard-1,beta.kubernetes.io/os=linux,cloud.google.com/gke-nodepool=default-pool,cloud.google.com/gke-os-distribution=cos,failure-domain.beta.kubernetes.io/region=europe-west4,failure-domain.beta.kubernetes.io/zone=europe-west4-b,kubernetes.io/arch=amd64,kubernetes.io/hostname=gke-cluster-1-default-pool-82008fd9-tlc7,kubernetes.io/os=linux,test=node
安装图表:

helm install rabbitmq bitnami/rabbitmq
...
kubectl get pods
NAME                   READY   STATUS    RESTARTS   AGE
...
pod/rabbitmq-0         1/1     Running   0          3m40s
...



kubectl describe pod rabbitmq-0
Name:           rabbitmq-0
Namespace:      default
Priority:       0
Node:           gke-cluster-1-default-pool-82008fd9-tlc7/10.164.0.29
Start Time:     Thu, 03 Sep 2020 07:34:10 +0000
Labels:         app.kubernetes.io/instance=rabbitmq
                app.kubernetes.io/managed-by=Helm
                app.kubernetes.io/name=rabbitmq
                controller-revision-hash=rabbitmq-8687f4cb9f
                helm.sh/chart=rabbitmq-7.6.4
                statefulset.kubernetes.io/pod-name=rabbitmq-0
Annotations:    checksum/secret: 433e8ea7590e8d9f1bb94ed2f55e6d9b95f8abef722a917b97a9e916921d7ac5
                kubernetes.io/limit-ranger: LimitRanger plugin set: cpu request for container rabbitmq
Status:         Running
IP:             10.16.2.13
IPs:            <none>
Controlled By:  StatefulSet/rabbitmq
Containers:
  rabbitmq:
    Container ID:   docker://b1a567522f50ac4c0663db2d9eca5fd8721d9a3d900ac38bb58f0cae038162f2
    Image:          docker.io/bitnami/rabbitmq:3.8.7-debian-10-r0
    Image ID:       docker-pullable://bitnami/rabbitmq@sha256:9abd53aeef6d222fec318c97a75dd50ce19c16b11cb83a3e4fb91c4047ea0d4d
    Ports:          5672/TCP, 25672/TCP, 15672/TCP, 4369/TCP
    Host Ports:     0/TCP, 0/TCP, 0/TCP, 0/TCP
    State:          Running
      Started:      Thu, 03 Sep 2020 07:34:34 +0000
    Ready:          True
    Restart Count:  0
    Requests:
      cpu:      100m
    Liveness:   exec [/bin/bash -ec rabbitmq-diagnostics -q check_running] delay=120s timeout=20s period=30s #success=1 #failure=6
    Readiness:  exec [/bin/bash -ec rabbitmq-diagnostics -q check_running] delay=10s timeout=20s period=30s #success=1 #failure=3
    Environment:
      BITNAMI_DEBUG:            false
      MY_POD_IP:                 (v1:status.podIP)
      MY_POD_NAME:              rabbitmq-0 (v1:metadata.name)
      MY_POD_NAMESPACE:         default (v1:metadata.namespace)
      K8S_SERVICE_NAME:         rabbitmq-headless
      K8S_ADDRESS_TYPE:         hostname
      RABBITMQ_FORCE_BOOT:      no
      RABBITMQ_NODE_NAME:       rabbit@$(MY_POD_NAME).$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.cluster.local
      K8S_HOSTNAME_SUFFIX:      .$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.cluster.local
      RABBITMQ_MNESIA_DIR:      /bitnami/rabbitmq/mnesia/$(RABBITMQ_NODE_NAME)
      RABBITMQ_LDAP_ENABLE:     no
      RABBITMQ_LOGS:            -
      RABBITMQ_ULIMIT_NOFILES:  65536
      RABBITMQ_USE_LONGNAME:    true
      RABBITMQ_ERL_COOKIE:      <set to the key 'rabbitmq-erlang-cookie' in secret 'rabbitmq'>  Optional: false
      RABBITMQ_USERNAME:        user
      RABBITMQ_PASSWORD:        <set to the key 'rabbitmq-password' in secret 'rabbitmq'>  Optional: false
      RABBITMQ_PLUGINS:         rabbitmq_management, rabbitmq_peer_discovery_k8s, rabbitmq_auth_backend_ldap
Mounts:
      /bitnami/rabbitmq/conf from configuration (rw)
      /bitnami/rabbitmq/mnesia from data (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from rabbitmq-token-mclhw (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  data:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  data-rabbitmq-0
    ReadOnly:   false
  configuration:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      rabbitmq-config
    Optional:  false
  rabbitmq-token-mclhw:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  rabbitmq-token-mclhw
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type    Reason                  Age    From                                               Message
  ----    ------                  ----   ----                                               -------
  Normal  Scheduled               6m42s  default-scheduler                                  Successfully assigned default/rabbitmq-0 to gke-cluster-1-default-pool-82008fd9-tlc7
  Normal  SuccessfulAttachVolume  6m36s  attachdetach-controller                            AttachVolume.Attach succeeded for volume "pvc-8145821b-ed09-11ea-b464-42010aa400e3"
  Normal  Pulling                 6m32s  kubelet, gke-cluster-1-default-pool-82008fd9-tlc7  Pulling image "docker.io/bitnami/rabbitmq:3.8.7-debian-10-r0"
  Normal  Pulled                  6m22s  kubelet, gke-cluster-1-default-pool-82008fd9-tlc7  Successfully pulled image "docker.io/bitnami/rabbitmq:3.8.7-debian-10-r0"
  Normal  Created                 6m18s  kubelet, gke-cluster-1-default-pool-82008fd9-tlc7  Created container rabbitmq
  Normal  Started                 6m18s  kubelet, gke-cluster-1-default-pool-82008fd9-tlc7  Started container rabbitmq
helm install rabbitmq bitnami/rabbitmq
...
kubectl得到豆荚
名称就绪状态重新启动
...
pod/rabbitmq-0 1/1运行0 3m40s
...
kubectl描述了rabbitmq-0吊舱
名称:rabbitmq-0
名称空间:默认值
优先级:0
节点:gke-cluster-1-default-pool-82008fd9-tlc7/10.164.0.29
开始时间:2020年9月3日星期四07:34:10+0000
标签:app.kubernetes.io/instance=rabbitmq
app.kubernetes.io/managed by=Helm
app.kubernetes.io/name=rabbitmq
控制器修订哈希=rabbitmq-8687f4cb9f
舵手sh/chart=rabbitmq-7.6.4
statefulset.kubernetes.io/pod name=rabbitmq-0
注释:校验和/机密:433e8ea7590e8d9f1bb94ed2f55e6d9b95f8abef722a917b97a9e916921d7ac5
kubernetes.io/limit-ranger:LimitRanger插件集:容器rabbitmq的cpu请求
状态:正在运行
IP:10.16.2.13
IPs:
控制者:StatefulSet/rabbitmq
容器:
rabbitmq:
容器ID:docker://b1a567522f50ac4c0663db2d9eca5fd8721d9a3d900ac38bb58f0cae038162f2
图片:docker.io/bitnami/rabbitmq:3.8.7-debian-10-r0
图像ID:docker-pullable://bitnami/rabbitmq@sha256:9abd53aeef6d22fec318c97a75dd50ce19c16b11cb83a3e4fb91c4047ea0d4d
端口:5672/TCP、25672/TCP、15672/TCP、4399/TCP
主机端口:0/TCP、0/TCP、0/TCP、0/TCP
状态:正在运行
开始时间:2020年9月3日星期四07:34:34+0000
准备好了吗
重新启动计数:0
请求:
中央处理器:100米
活跃度:exec[/bin/bash-ec rabbitmq diagnostics-q check_running]延迟=120s超时=20s时段=30s成功=1失败=6
准备就绪:exec[/bin/bash-ec rabbitmq diagnostics-q check_running]delay=10s timeout=20s period=30s成功=1失败=3
环境:
BITNAMI_调试:false
MY_POD_IP:(v1:status.podIP)
我的POD名称:rabbitmq-0(v1:metadata.NAME)
MY_POD_命名空间:默认(v1:metadata.NAMESPACE)
K8S_服务_名称:rabbitmq headless
K8S_地址_类型:主机名
RABBITMQ_FORCE_引导:否
RABBITMQ_节点_名称:rabbit@$(MY_POD_名称)。$(K8S_服务_名称)。$(MY_POD_名称空间)。svc.cluster.local
K8S_主机名_后缀:.$(K8S_服务_名称)。$(MY_POD_命名空间)。svc.cluster.local
RABBITMQ_MNESIA_DIR:/bitnami/RABBITMQ/MNESIA/$(RABBITMQ_节点名称)
RABBITMQ\u LDAP\u启用:否
RABBITMQ_日志:-
RABBITMQ_ULIMIT_NOFILES:65536
RABBITMQ_USE_LONGNAME:true
RABBITMQ_ERL_COOKIE:可选:false
RABBITMQ_用户名:用户
RABBITMQ_密码:可选:false
RABBITMQ_插件:RABBITMQ_管理、RABBITMQ_对等发现_k8s、RABBITMQ_身份验证_后端_ldap
挂载:
/来自配置(rw)的bitnami/rabbitmq/conf
/bitnami/rabbitmq/mnesia来自数据(rw)
/来自rabbitmq令牌mclhw(ro)的var/run/secrets/kubernetes.io/serviceCount
条件:
类型状态
初始化为True
准备好了吗
集装箱准备好了吗
播客预定为真
卷数:
数据:
类型:PersistentVolumeClaim(对同一命名空间中PersistentVolumeClaim的引用)
权利要求书名称:data-rabbitmq-0
只读:false
配置:
类型:ConfigMap(由ConfigMap填充的卷)
名称:rabbitmq配置
可选:false
rabbitmq令牌mclhw:
类型:Secret(由Secret填充的卷)
SecretName:rabbitmq令牌mclhw
可选:false
QoS等级:Burstable
节点选择器:
容差:node.kubernetes.io/未就绪:不执行300秒
node.kubernetes.io/不可访问:不执行300秒
活动:
从消息中键入原因年龄
----    ------                  ----   ----                                               -------
正常计划的6m42s默认计划程序已成功将默认/rabbitmq-0分配给gke-cluster-1-default-pool-82008fd9-tlc7
正常成功附加卷6m36s附加附加附加控制器附加卷。附加卷“pvc-8145821b-ed09-11ea-b464-42010aa400e3”成功
正常拉取6m32s kubelet,gke-cluster-1-default-pool-82008fd9-tlc7拉取映像“docker.io/bitnami/rabbitmq:3.8.7-debian-10-r0”
正常拉取6m22s kubelet,gke-cluster-1-default-pool-82008fd9-tlc7成功拉取图像“docker.io/bitnami/rabbitm”
helm install rabbitmq bitnami/rabbitmq
...
kubectl get pods
NAME                   READY   STATUS    RESTARTS   AGE
...
pod/rabbitmq-0         1/1     Running   0          3m40s
...



kubectl describe pod rabbitmq-0
Name:           rabbitmq-0
Namespace:      default
Priority:       0
Node:           gke-cluster-1-default-pool-82008fd9-tlc7/10.164.0.29
Start Time:     Thu, 03 Sep 2020 07:34:10 +0000
Labels:         app.kubernetes.io/instance=rabbitmq
                app.kubernetes.io/managed-by=Helm
                app.kubernetes.io/name=rabbitmq
                controller-revision-hash=rabbitmq-8687f4cb9f
                helm.sh/chart=rabbitmq-7.6.4
                statefulset.kubernetes.io/pod-name=rabbitmq-0
Annotations:    checksum/secret: 433e8ea7590e8d9f1bb94ed2f55e6d9b95f8abef722a917b97a9e916921d7ac5
                kubernetes.io/limit-ranger: LimitRanger plugin set: cpu request for container rabbitmq
Status:         Running
IP:             10.16.2.13
IPs:            <none>
Controlled By:  StatefulSet/rabbitmq
Containers:
  rabbitmq:
    Container ID:   docker://b1a567522f50ac4c0663db2d9eca5fd8721d9a3d900ac38bb58f0cae038162f2
    Image:          docker.io/bitnami/rabbitmq:3.8.7-debian-10-r0
    Image ID:       docker-pullable://bitnami/rabbitmq@sha256:9abd53aeef6d222fec318c97a75dd50ce19c16b11cb83a3e4fb91c4047ea0d4d
    Ports:          5672/TCP, 25672/TCP, 15672/TCP, 4369/TCP
    Host Ports:     0/TCP, 0/TCP, 0/TCP, 0/TCP
    State:          Running
      Started:      Thu, 03 Sep 2020 07:34:34 +0000
    Ready:          True
    Restart Count:  0
    Requests:
      cpu:      100m
    Liveness:   exec [/bin/bash -ec rabbitmq-diagnostics -q check_running] delay=120s timeout=20s period=30s #success=1 #failure=6
    Readiness:  exec [/bin/bash -ec rabbitmq-diagnostics -q check_running] delay=10s timeout=20s period=30s #success=1 #failure=3
    Environment:
      BITNAMI_DEBUG:            false
      MY_POD_IP:                 (v1:status.podIP)
      MY_POD_NAME:              rabbitmq-0 (v1:metadata.name)
      MY_POD_NAMESPACE:         default (v1:metadata.namespace)
      K8S_SERVICE_NAME:         rabbitmq-headless
      K8S_ADDRESS_TYPE:         hostname
      RABBITMQ_FORCE_BOOT:      no
      RABBITMQ_NODE_NAME:       rabbit@$(MY_POD_NAME).$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.cluster.local
      K8S_HOSTNAME_SUFFIX:      .$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.cluster.local
      RABBITMQ_MNESIA_DIR:      /bitnami/rabbitmq/mnesia/$(RABBITMQ_NODE_NAME)
      RABBITMQ_LDAP_ENABLE:     no
      RABBITMQ_LOGS:            -
      RABBITMQ_ULIMIT_NOFILES:  65536
      RABBITMQ_USE_LONGNAME:    true
      RABBITMQ_ERL_COOKIE:      <set to the key 'rabbitmq-erlang-cookie' in secret 'rabbitmq'>  Optional: false
      RABBITMQ_USERNAME:        user
      RABBITMQ_PASSWORD:        <set to the key 'rabbitmq-password' in secret 'rabbitmq'>  Optional: false
      RABBITMQ_PLUGINS:         rabbitmq_management, rabbitmq_peer_discovery_k8s, rabbitmq_auth_backend_ldap
Mounts:
      /bitnami/rabbitmq/conf from configuration (rw)
      /bitnami/rabbitmq/mnesia from data (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from rabbitmq-token-mclhw (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  data:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  data-rabbitmq-0
    ReadOnly:   false
  configuration:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      rabbitmq-config
    Optional:  false
  rabbitmq-token-mclhw:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  rabbitmq-token-mclhw
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type    Reason                  Age    From                                               Message
  ----    ------                  ----   ----                                               -------
  Normal  Scheduled               6m42s  default-scheduler                                  Successfully assigned default/rabbitmq-0 to gke-cluster-1-default-pool-82008fd9-tlc7
  Normal  SuccessfulAttachVolume  6m36s  attachdetach-controller                            AttachVolume.Attach succeeded for volume "pvc-8145821b-ed09-11ea-b464-42010aa400e3"
  Normal  Pulling                 6m32s  kubelet, gke-cluster-1-default-pool-82008fd9-tlc7  Pulling image "docker.io/bitnami/rabbitmq:3.8.7-debian-10-r0"
  Normal  Pulled                  6m22s  kubelet, gke-cluster-1-default-pool-82008fd9-tlc7  Successfully pulled image "docker.io/bitnami/rabbitmq:3.8.7-debian-10-r0"
  Normal  Created                 6m18s  kubelet, gke-cluster-1-default-pool-82008fd9-tlc7  Created container rabbitmq
  Normal  Started                 6m18s  kubelet, gke-cluster-1-default-pool-82008fd9-tlc7  Started container rabbitmq