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

0173.K pod日志提示persistentvolumeclaim not found解决方法

rundba 2022-05-31
6324

 



在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 94s default-scheduler 0/6 nodes are available: 6 persistentvolumeclaim "prometheus-k8s-db-prometheus-k8s-0" not found.
      Warning FailedScheduling 54s (x1 over 65s) default-scheduler 0/6 nodes are available: 6 persistentvolumeclaim "prometheus-k8s-db-prometheus-k8s-0" not found.


      上述提示告警,当前6个节点上的PVC(prometheus-k8s-db-prometheus-k8s-0)没有发现:

        0/6 nodes are available: 6 persistentvolumeclaim "prometheus-k8s-db-prometheus-k8s-0" not found


         



        3. 问题原因


         

        kuboard监控套件所需名称为prometheus-k8s-db-prometheus-k8s-0的的PVC未创建


        进一步确认当前已有PVC

          [root@rh-master01 ~]# kubectl get pvc -n kuboard | grep kuboard
          kuboard-kube-prometheus0 Bound kuboard-kube-prometheus1 40Gi RWX kuboard-kube-prometheus 7m34s
          kuboard-kube-prometheus1 Bound kuboard-kube-prometheus0 40Gi RWX kuboard-kube-prometheus 7m34s

          发现PVC名称为kuboard-kube-prometheus0、kuboard-kube-prometheus1,和kuboard所需的PVC名称有差异。


           



          4. 解决方法


           

          删除并重建kuboard依赖的PVC。


          1) 删除原有StorageClass、PV、PVC

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


            2) 修改配置

            需要创建两个PVC:prometheus-k8s-db-prometheus-k8s-0、prometheus-k8s-db-prometheus-k8s-1,将原有自定义的PVC名称kuboard-kube-prometheus[0-1]更改为kuboard所需的名称。

              vim kuboard-kube-prometheusV3.yaml        #新建V3进行修改,调整PVC相关的配置
              ... #StorageClass、PV部分不变,调整PVC部分lables和名称
              ---
              apiVersion: v1
              kind: PersistentVolumeClaim
              metadata:
              labels:
              name: prometheus-k8s-db-prometheus-k8s-0 #修改kuboard-kube-prometheus0为kuboard调用的PVC名称:prometheus-k8s-db-prometheus-k8s-0
              name: prometheus-k8s-db-prometheus-k8s-0 #修改kuboard-kube-prometheus0为kuboard调用的PVC名称:prometheus-k8s-db-prometheus-k8s-0
              namespace: kuboard
              spec:
              accessModes:
              - ReadWriteMany
              resources:
              requests:
              storage: 40Gi
              storageClassName: kuboard-kube-prometheus
              ---
              apiVersion: v1
              kind: PersistentVolumeClaim
              metadata:
              labels:
              name: prometheus-k8s-db-prometheus-k8s-1 #修改kuboard-kube-prometheus1为kuboard调用的PVC名称:prometheus-k8s-db-prometheus-k8s-1
              name: prometheus-k8s-db-prometheus-k8s-1 #修改kuboard-kube-prometheus1为kuboard调用的PVC名称:prometheus-k8s-db-prometheus-k8s-1
              namespace: kuboard
              spec:
              accessModes:
              - ReadWriteMany
              resources:
              requests:
              storage: 40Gi
                storageClassName: kuboard-kube-prometheus 


              3) 再次创建StorageClass、PV、PVC

                [root@rh-master01 kuboard]# kubectl apply -f kuboard-kube-prometheusV3.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名称,通过分析,按需创建所需的PVC后,pod运行正常。

                  网传密图参考:


                  -- 完 --


                  更多精彩,敬请期待



                  不足之处,还望抛转。

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

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


                     




                                               长按二维码                                   


                  欢迎加入>>西安K8S小组


                         

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

                               




                  往期推荐



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

                  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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论