kubernetes - Kubernetes 仪表板部署存在,未创建 pod
问题描述
我们的团队正试图解决 Kubernetes 仪表板的一些问题,因为它无法获得秘密。我们使用的是 1.8.3 版仪表板,Kubernetes 服务器版本是 1.9 版。
为了检查这是否是可以通过重新安装仪表板来解决的问题,我运行了命令
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.8.3/src/deploy/recommended/kubernetes-dashboard.yaml
然后命令
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.8.3/src/deploy/recommended/kubernetes-dashboard.yaml
但是,我最终无法重新创建 Kubernetes pod。我不确定为什么部署拒绝生成值。这是来自的输出
kubectl describe deployment kubernetes-dashboard -n kube-system
表明需要一个副本但没有创建。
Name: kubernetes-dashboard
Namespace: kube-system
CreationTimestamp: <hidden>
Labels: addonmanager.kubernetes.io/mode=Reconcile
k8s-app=kubernetes-dashboard
kubernetes.io/cluster-service=true
Annotations: Selector: k8s-app=kubernetes-dashboard
Replicas: 1 desired | 0 updated | 0 total | 0 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: k8s-app=kubernetes-dashboard
Service Account: kubernetes-dashboard
Containers:
kubernetes-dashboard:
Image: k8s-gcrio.azureedge.net/kubernetes-dashboard-amd64:v1.8.3
Port: 8443/TCP
Host Port: 0/TCP
Args:
--auto-generate-certificates
--heapster-host=http://heapster.kube-system:80
Limits:
cpu: 500m
memory: 500Mi
Requests:
cpu: 300m
memory: 150Mi
Liveness: http-get https://:8443/ delay=30s timeout=30s period=10s #success=1 #failure=3
Environment: <none>
Mounts:
/certs from kubernetes-dashboard-certs (rw)
Volumes:
kubernetes-dashboard-certs:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
OldReplicaSets: <none>
NewReplicaSet: <none>
Events: <none>
如何创建 pod 并让仪表板再次工作?
更新:我发现我们在名为“kubernetes-dashboard”的命名空间中创建了仪表板,因此我删除了与 kubernetes-dashboard 命名空间相关的所有内容。但是,部署仍未创建仪表板。
我还发现问题似乎是任何应该创建 pod 的副本集或部署都没有在应该创建 pod 时创建 pod。我可以发送任何信息以获得有关此问题的帮助吗?
解决方案
我建议您宁愿指出最新版本。与 Kubernetes 版本相同 - 它确实已经过时了。
尝试手动删除 Kubernetes 仪表板,然后重新创建它。
执行以下命令:
$ kubectl delete deployment kubernetes-dashboard --namespace=kube-system
$ kubectl delete service kubernetes-dashboard --namespace=kube-system
$ kubectl delete role kubernetes-dashboard-minimal --namespace=kube-system
$ kubectl delete rolebinding kubernetes-dashboard-minimal --namespace=kube-system
$ kubectl delete sa kubernetes-dashboard --namespace=kube-system
$ kubectl delete secret kubernetes-dashboard-certs --namespace=kube-system
$ kubectl delete secret kubernetes-dashboard-key-holder --namespace=kube-system
然后重新创建仪表板。
推荐阅读
- javascript - D3 - 多个文本元素上的 v5 更新模式
- c# - HttpPost [FromBody] 参数设置为特定对象时为空,但设置为字符串时不为空,并且可以在方法中转换为该对象
- php - 满足所有 Laravel 6.2 建议
- vba - vba 使用消息框不允许调试
- javascript - 在JS中合并两个对象并根据单个输入选择多个值
- ios - 如何在 swift 5 中以编程方式关闭底页?
- r - Sweave,Shiny:无法在服务器上生成 PDF
- c++ - 不输出抛出位置(Boost.Exception)
- node.js - 如何列出 package.json 中所有可用的命令?
- angular - 我无法导航到另一个路由器插座