暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

0172.K pod日志提示pod has unbound immediate PersistentVolumeClaims解决

rundba 2022-05-29
15539

 

在kuboard监控套件安装时,prometheus-k8两个pod状态一直为Pending,文中提供分析及解决方法。


 

 



0. ENV




 kubernetes V1.23.5;

Kuboard V3.5.0.1;

资源层监控套件system-monitor.addons.kuboard.cn v3.1.7;


 



1. 问题现象



 

安装kuboard套件时,prometheus-k8s两个pod不能启动,状态为Pending

    [root@rh-master01 ~]# kubectl get pod -n kuboard
    NAME READY STATUS RESTARTS AGE
    ...
    prometheus-k8s-0 0/2 Pending 0 61s
    prometheus-k8s-1 0/2 Pending 0 61s
    prometheus-operator-5d7cc5dc4d-wv2ws 2/2 Running 0 103s
    system-monitor-config-864f784987-fhbzg 1/1 Running 0 62s


     



    2. 问题分析



     

    查看其中一个pod(prometheus-k8s-0)描述

      [root@rh-master01 ~]# kubectl describe pod prometheus-k8s-0 -n kuboard
      ...
      Warning FailedScheduling 114s default-scheduler 0/6 nodes are available: 6 pod has unbound immediate PersistentVolumeClaims.
      Warning FailedScheduling 35s (x1 over 112s) default-scheduler 0/6 nodes are available: 6 pod has unbound immediate PersistentVolumeClaims.

      上述提示告警,当前6个节点上的6个pod的未绑定(unbound)。


      查看pvc状态,两个PVC确实正常挂载,状态为Pending:

        [root@rh-master01 ~]# kubectl get pvc -n kuboard | grep kuboard
        kuboard-kube-prometheus0 Pending 5s
        kuboard-kube-prometheus1 Pending 5s

         



        3. 问题原因



         

        pod依赖的PVC(存储)未挂载,需要确保PVC挂载,待问题进一步分析。


         



        4. 解决方法



         

        删除并重建kuboard依赖的PVC。


        1) 删除原有StorageClass、PV、PVC

          [root@rh-master01 kuboard]# kubectl delete -f kuboard-kube-prometheusV1.yaml


          2) 修改配置

          确保SotrageClass、PV、PVC名称统一,并正常挂载。

            vim kuboard-kube-prometheusV2.yaml        #新建V2进行修改,调整PVC相关的配置,确保StorageClass、PV、PVC的storageClassName名称保持相同
            1 apiVersion: storage.k8s.io/v1
            2 kind: StorageClass
            3 metadata:
            4 name: kuboard-kube-prometheus #StorageClass名称为kuboard-kube-prometheus
            5 provisioner: kubernetes.io/no-provisioner
            6 reclaimPolicy: Retain
            7 volumeBindingMode: Immediate
            8
            9 ---
            10 apiVersion: v1
            11 kind: PersistentVolume
            12 metadata:
            13 name: kuboard-kube-prometheus0
            14 spec:
            15 accessModes:
            16 - ReadWriteMany
            17 capacity:
            18 storage: 40Gi
            19 nfs:
            20 path: vm/dev-nfs/kuboard_pv/prometheus-k8s-db-prometheus-k8s-0
            21 server: 192.18.80.159
            22 persistentVolumeReclaimPolicy: Retain
            23 storageClassName: kuboard-kube-prometheus #PV的storageClassName保持和StorageClass名称相同,均为kuboard-kube-prometheus
            24 volumeMode: Filesystem
            ...
            43 ---
            44 apiVersion: v1
            45 kind: PersistentVolumeClaim
            46 metadata:
            47 labels:
            48 name: prometheus-k8s-db-prometheus-k8s-0
            49 name: prometheus-k8s-db-prometheus-k8s-0
            50 namespace: kuboard
            51 spec:
            52 accessModes:
            53 - ReadWriteMany
            54 resources:
            55 requests:
            56 storage: 40Gi
            57 storageClassName: kuboard-kube-prometheus #PVC的storageClassName一行,确保和StorageClass、PV的storageClassName名称相同
            ...


            3) 再次创建StorageClass、PV、PVC

              [root@rh-master01 kuboard]# kubectl apply -f kuboard-kube-prometheusV2.yaml 
              storageclass.storage.k8s.io/kuboard-kube-prometheus created
              persistentvolume/kuboard-kube-prometheus0 created
              persistentvolume/kuboard-kube-prometheus1 created
              persistentvolumeclaim/prometheus-k8s-db-prometheus-k8s-0 created
              persistentvolumeclaim/prometheus-k8s-db-prometheus-k8s-1 created


              4) prometheus-k8s两个pod运行正常

              稍等片刻后,pod运行正常,问题解决。

                [root@rh-master01 ~]# k get pod -n kuboard
                NAME READY STATUS RESTARTS AGE
                ...
                prometheus-k8s-0 2/2 Running 0 37m
                prometheus-k8s-1 2/2 Running 0 37m
                prometheus-operator-5d7cc5dc4d-wv2ws 2/2 Running 0 38m


                 



                5. 小结




                 

                在kuboard监控套件安装时,prometheus-k8两个pod运行异常,通过分析,PVC未正常挂载,统一SotrageClass、PV、PVC名称,并重建后,pod运行正常。


                -- 完 --


                更多精彩,敬请期待



                不足之处,还望抛转。

                作者:王坤,微信公众号:rundba,欢迎转载,转载请注明出处。

                如需公众号转发,请联系wx:landnow。


                   




                                             长按二维码                                   


                欢迎加入>>西安K8S小组


                       

                   请注明:来自rundba,加入XAK8S小组                

                             



                往期推荐

                0171.K pod日志提示open prometheus queries.active permission denied解决

                0170.K K8S增加node节点

                0169.K K8S集群删除与添加节点

                0168.K k8s增加node资源后,显示资源没有更新解决方法

                0165.K docker login报错x509: certificate relies on legacy...处理记录

                0164.K starting Harbor non-overlapping IPv4 address pool among..

                0163.K 在CentOS上使用Harbor搭建K8S/docker私有镜像仓库

                0158.K 升级kubernetes集群_多主多从

                0157.K 升级 kubeadm 集群_一主两从

                0156.K  kubeadm安装高可用K8S集群(2/2)

                0155.K kubeadm安装高可用K8S集群(1/2)

                0154.K master初始化后_kube-proxy状态一直为CrashLoopBackOff处理记录

                0152.KK8S中安装/升级/卸载 Kuboard v3

                0151.K 升级kuboard(内建用户库方式)

                0150.K 安装kuboard(内建用户库方式)

                0147.k kubernetes 3节点实验环境安装




                文章转载自rundba,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论