我已经使用这个链接在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
问题所在
应用程序没有出现的原因是仪表板容器本身没有运行。如果您查看您提供的输出,您可以看到以下内容:
POD/Kubernetes-Dashboard-64686C4BF9-5JKWQ 0/1 CrashLoopBackOff 14
您可能会在Kubernetes中利用的下一个故障排除步骤是使用日志体系结构。您可能知道,当生成Docker容器时,通常的做法是将应用程序生成的日志重定向到进程的stdout
或stderr
。Kubernetes他们为您捕获这个日志数据,并提供一个API抽象层,您可以与它进行交互。有时Description事件不会有任何关于进程为什么不运行的指示。但是,您可以继续从进程中获取日志,以确定出了什么问题。示例语法可能如下所示:
Kubectl日志-F-N Kubernetes-Dashboard Kubernetes-Dashboard-64686C4BF9-5JKWQ
执行
既然我说了这些话。我们如何回答你的问题?嗯,我们不能直接回答。但我在上面的总结中做了一些。因为您要寻找的真正答案是如何正确地排除运行在Kubernetes中的linux容器的故障。这些问题将是您使用Kubernetes的经验中反复出现的主题,因此尽快开发生态系统中的调试技能是非常重要的。
如果description
、logs
和exec
命令无法帮助您找出仪表板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 键,工作区窗口将返回其先前状态。