当前位置: 首页 > 知识库问答 >
问题:

仪表板未运行

范浩荡
2023-03-14

我已经使用这个链接在ubuntu服务器上设置了kubenertes。

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc6/aio/deploy/recommended.yaml
uday@dockermaster:~$ kubectl -n kubernetes-dashboard get all
NAME                                             READY   STATUS             RESTARTS   AGE
pod/dashboard-metrics-scraper-779f5454cb-pqfrj   1/1     Running            0          50m
pod/kubernetes-dashboard-64686c4bf9-5jkwq        0/1     CrashLoopBackOff   14         50m

NAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
service/dashboard-metrics-scraper   ClusterIP   10.103.22.252   <none>        8000/TCP        50m
service/kubernetes-dashboard        NodePort    10.102.48.80    <none>        443:32323/TCP   50m

NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/dashboard-metrics-scraper   1/1     1            1           50m
deployment.apps/kubernetes-dashboard        0/1     1            0           50m

NAME                                                   DESIRED   CURRENT   READY   AGE
replicaset.apps/dashboard-metrics-scraper-779f5454cb   1         1         1       50m
replicaset.apps/kubernetes-dashboard-64686c4bf9        1         1         0       50m

uday@dockermaster:~$ kubectl -n kubernetes-dashboard describe svc kubernetes-dashboard
Name:                     kubernetes-dashboard
Namespace:                kubernetes-dashboard
Labels:                   k8s-app=kubernetes-dashboard
Annotations:              Selector:  k8s-app=kubernetes-dashboard
Type:                     NodePort
IP:                       10.102.48.80
Port:                     <unset>  443/TCP
TargetPort:               8443/TCP
NodePort:                 <unset>  32323/TCP
Endpoints:
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

其他应用程序与NodePort配合得很好,不管是Tomcat/Nginx/Databases。

但在这里,它在创建容器方面失败了。

C:\Users\uday\Desktop>kubectl.exe get pods -n kubernetes-dashboard
NAME                                         READY   STATUS             RESTARTS   AGE
dashboard-metrics-scraper-779f5454cb-pqfrj   1/1     Running            1          20h
kubernetes-dashboard-64686c4bf9-g9z2k        0/1     CrashLoopBackOff   84         18h

C:\Users\uday\Desktop>kubectl.exe describe pod kubernetes-dashboard-64686c4bf9-g9z2k -n kubernetes-dashboard
Name:         kubernetes-dashboard-64686c4bf9-g9z2k
Namespace:    kubernetes-dashboard
Priority:     0
Node:         slave-node/10.0.0.6
Start Time:   Sat, 28 Mar 2020 14:16:54 +0000
Labels:       k8s-app=kubernetes-dashboard
              pod-template-hash=64686c4bf9
Annotations:  <none>
Status:       Running
IP:           182.244.1.12
IPs:
  IP:           182.244.1.12
Controlled By:  ReplicaSet/kubernetes-dashboard-64686c4bf9
Containers:
  kubernetes-dashboard:
    Container ID:  docker://470ee8c61998c3c3dda86c58ad17817468f55aa73cd4feecf3b018977ce13ca3
    Image:         kubernetesui/dashboard:v2.0.0-rc6
    Image ID:      docker-pullable://kubernetesui/dashboard@sha256:61f9c378c427a3f8a9643f83baa9f96db1ae1357c67a93b533ae7b36d71c69dc
    Port:          8443/TCP
    Host Port:     0/TCP
    Args:
      --auto-generate-certificates
      --namespace=kubernetes-dashboard
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    2
      Started:      Sun, 29 Mar 2020 09:01:31 +0000
      Finished:     Sun, 29 Mar 2020 09:02:01 +0000
    Ready:          False
    Restart Count:  84
    Liveness:       http-get https://:8443/ delay=30s timeout=30s period=10s #success=1 #failure=3
    Environment:    <none>
    Mounts:
      /certs from kubernetes-dashboard-certs (rw)
      /tmp from tmp-volume (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kubernetes-dashboard-token-pzfbl (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  kubernetes-dashboard-certs:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  kubernetes-dashboard-certs
    Optional:    false
  tmp-volume:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  kubernetes-dashboard-token-pzfbl:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  kubernetes-dashboard-token-pzfbl
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  beta.kubernetes.io/os=linux
Tolerations:     node-role.kubernetes.io/master:NoSchedule
                 node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason   Age                     From                 Message
  ----     ------   ----                    ----                 -------
  Warning  BackOff  4m49s (x501 over 123m)  kubelet, slave-node  Back-off restarting failed container

kubectl.exe logs kubernetes-dashboard-64686c4bf9-g9z2k -n kubernetes-dashboard
2020/03/29 09:01:31 Starting overwatch
2020/03/29 09:01:31 Using namespace: kubernetes-dashboard
2020/03/29 09:01:31 Using in-cluster config to connect to apiserver
2020/03/29 09:01:31 Using secret token for csrf signing
2020/03/29 09:01:31 Initializing csrf token from kubernetes-dashboard-csrf secret
panic: Get https://10.96.0.1:443/api/v1/namespaces/kubernetes-dashboard/secrets/kubernetes-dashboard-csrf: dial tcp 10.96.0.1:443: i/o timeout

goroutine 1 [running]:
github.com/kubernetes/dashboard/src/app/backend/client/csrf.(*csrfTokenManager).init(0xc0004e2dc0)
    /home/travis/build/kubernetes/dashboard/src/app/backend/client/csrf/manager.go:40 +0x3b0
github.com/kubernetes/dashboard/src/app/backend/client/csrf.NewCsrfTokenManager(...)
    /home/travis/build/kubernetes/dashboard/src/app/backend/client/csrf/manager.go:65
github.com/kubernetes/dashboard/src/app/backend/client.(*clientManager).initCSRFKey(0xc00043ae80)
    /home/travis/build/kubernetes/dashboard/src/app/backend/client/manager.go:499 +0xc6
github.com/kubernetes/dashboard/src/app/backend/client.(*clientManager).init(0xc00043ae80)
    /home/travis/build/kubernetes/dashboard/src/app/backend/client/manager.go:467 +0x47
github.com/kubernetes/dashboard/src/app/backend/client.NewClientManager(...)
    /home/travis/build/kubernetes/dashboard/src/app/backend/client/manager.go:548
main.main()
    /home/travis/build/kubernetes/dashboard/src/app/backend/dashboard.go:105 +0x20d

共有1个答案

谢海阳
2023-03-14

问题所在

应用程序没有出现的原因是仪表板容器本身没有运行。如果您查看您提供的输出,您可以看到以下内容:

POD/Kubernetes-Dashboard-64686C4BF9-5JKWQ 0/1 CrashLoopBackOff 14

您可能会在Kubernetes中利用的下一个故障排除步骤是使用日志体系结构。您可能知道,当生成Docker容器时,通常的做法是将应用程序生成的日志重定向到进程的stdoutstderr。Kubernetes他们为您捕获这个日志数据,并提供一个API抽象层,您可以与它进行交互。有时Description事件不会有任何关于进程为什么不运行的指示。但是,您可以继续从进程中获取日志,以确定出了什么问题。示例语法可能如下所示:

Kubectl日志-F-N Kubernetes-Dashboard Kubernetes-Dashboard-64686C4BF9-5JKWQ

执行

既然我说了这些话。我们如何回答你的问题?嗯,我们不能直接回答。但我在上面的总结中做了一些。因为您要寻找的真正答案是如何正确地排除运行在Kubernetes中的linux容器的故障。这些问题将是您使用Kubernetes的经验中反复出现的主题,因此尽快开发生态系统中的调试技能是非常重要的。

如果descriptionlogsexec命令无法帮助您找出仪表板pod出现故障的原因,请在此回答中添加注释,请求更多的支持,我将乐意尽我所能提供帮助!

 类似资料:
  • 今天第一次尝试和Laravel一起玩。我得到以下错误时,我试图访问: 无效参数异常 未定义路线[仪表板]。 路线/web.php 登录控制器。php

  • try1:直接使用以下命令尝试: 试图使用url http://172.20.22.101:8001/api/v1访问仪表板,但它表示未经授权。 try2:创建了包含以下内容的dashboard-admin.yaml文件:

  • 共享仪表板 您也可以向其他用户共享一个 Kibana 仪表板的链接,或者将仪表板嵌入到网页中。用户必须具有 Kibana 权限才能访问嵌入式仪表板。 如何分享一个仪表板: 点击侧边导航栏中的 Dashboard 。 打开您想共享的仪表板。 点击 Share 。 复制您想分享的链接或者您想嵌套的 iframe。您可以分享动态仪表板或者当前时间点的静态快照。 当共享仪表板快照链接的时候,请使用 Sho

  • 加载仪表板 如何打开一个保存的仪表板: 点击侧边导航栏中的 Dashboard 。 选中一个仪表板并点击 Open 。如果您有很多仪表板,您可以敲入 Filter 字符串来过滤仪表板列表。 要导入、导出和删除仪表板,请点击 Manage Dashboards 链接打开 Management/Kibana/Saved Objects/Dashboards 。

  • “概览”仪表板页面显示 Navicat Monitor 监控的所有实例。你可以获取高级摘要信息和实例的健康状态,识别需要重点关注的实例。 实例卡片 通过实例卡片你可以识别服务器状态和系统资源使用率。若要创建一个新实例来监控你的服务器,请点击“+ 新建实例”并选择服务器类型。然后,在新建实例窗口中输入适当的信息。请参阅创建实例的详细信息。 默认情况下,实例卡片显示所有可用的系统资源使用率。点击“卡片

  • 你可以在整个屏幕上显示仪表板。在此模式下,标题栏、工具栏、选项卡栏、页面窗格、控件列表和属性窗格将被隐藏。若要以显示视图打开仪表板,请点击 “显示”。 如果你在仪表板上添加了控件图表,则可以使用控件筛选所有图表的数据系列。 若要退出显示视图,请按 ESC 键,工作区窗口将返回其先前状态。