如何从Google云平台上的部署中删除Kubernetes仪表板资源?
我已经创建了一个Kubernetes部署。然而,似乎有额外的豆荚在运行——我希望能够删除不必要的豆荚 我认为没有必要运行仪表板容器。我想删除它以释放CPU资源 如何禁用此容器的启动?最好是从部署配置 基本上如下所示:如何从Google云平台上的部署中删除Kubernetes仪表板资源?,kubernetes,google-cloud-platform,Kubernetes,Google Cloud Platform,我已经创建了一个Kubernetes部署。然而,似乎有额外的豆荚在运行——我希望能够删除不必要的豆荚 我认为没有必要运行仪表板容器。我想删除它以释放CPU资源 如何禁用此容器的启动?最好是从部署配置 基本上如下所示: kubectl get pods --all-namespaces | grep "dashboard" kube-system kubernetes-dashboard-490794276-sb6qs
kubectl get pods --all-namespaces | grep "dashboard"
kube-system kubernetes-dashboard-490794276-sb6qs 1/1 Running 1 3d
其他信息:
kubectl——名称空间kube系统获取部署的输出
:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
heapster-v1.3.0 1 1 1 1 3d
kube-dns 2 2 2 2 3d
kube-dns-autoscaler 1 1 1 1 3d
kubernetes-dashboard 1 1 1 1 11m
l7-default-backend 1 1 1 1 3d
kubectl的输出——名称空间kube系统获取rs
:
NAME DESIRED CURRENT READY AGE
heapster-v1.3.0-191291410 1 1 1 3d
heapster-v1.3.0-3272732411 0 0 0 3d
heapster-v1.3.0-3742215525 0 0 0 3d
kube-dns-1829567597 2 2 2 3d
kube-dns-autoscaler-2501648610 1 1 1 3d
kubernetes-dashboard-490794276 1 1 1 12m
l7-default-backend-3574702981 1 1 1 3d
只需删除
部署
,所有相关的POD将自动终止。只需使用kubectl--namespace kube system delete Deployment kubernetes dashboard
,集群中就不会有更多的仪表板
kubectl delete ([-f FILENAME] | TYPE [(NAME | -l label | --all)])
更新2020-09
要进行干净的删除,必须删除大量对象。移除仪表板是一个常见问题,因此您现在可以执行以下操作:
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
如果你不想做一件盲目的事情,你想知道你正在删除什么,那么试着执行以下操作:
kubectl get secret,sa,role,rolebinding,services,deployments --namespace=kube-system | grep dashboard
如果输出为空,只需使用命令仔细检查仪表板名称空间
kubectl get namespaces
仪表板存储在一个单独的名称空间中,并且,根据您的上下文,仪表板不能始终位于同一名称空间中。如果您想更深入地了解,请尝试使用kubernetes dashboard
或kube system
并在调用kubectl
时始终指定名称空间
kubectl --namespace=kube-system edit deployment kubernetes-dashboard
并设置副本:0
这似乎适用于仪表板。使用标签选择器:
kubectl --namespace=kube-system delete deployment,service,role,rolebinding,sa,secret -l k8s-app=kubernetes-dashboard
2020年5月更新: 感谢您的评论;) 他们已经改变了回购协议中文件的组织以及上的命令,因此新的
kubectl delete
命令需要:
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
原创帖子: 如前所述,您也可以删除部署以移除吊舱,运行以下命令:
kubectl delete deployment kubernetes-dashboard --namespace=kube-system
但是,如果您想清理所有与仪表板相关的东西,您只需根据官方命令执行删除命令K8s cluster file即可:
这些答案中没有一个对我有效,因为每个答案都假设名称空间是
kube system
,这并不总是正确的。
因此,您需要首先看到名称空间:
$ kubectl get deployments -A
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default nginx-deployment 3/3 3 3 39m
kube-system coredns 2/2 2 2 93m
kubernetes-dashboard dashboard-metrics-scraper 1/1 1 1 12m
kubernetes-dashboard kubernetes-dashboard 1/1 1 1 12m
您可以从第一列(命名空间)中看到,然后:
对服务(如有)执行同样的操作:
最后是服务帐户和机密:
$ kubectl delete sa kubernetes-dashboard --namespace=kubernetes-dashboard
$ kubectl delete secret kubernetes-dashboard-certs --namespace=kubernetes-dashboard
$ kubectl delete secret kubernetes-dashboard-key-holder --namespace=kubernetes-dashboard
我使用“minikube start”创建。然后使用“minikube dashboard”创建仪表板。最后,我使用“minikube config set dashboard false”停止并删除仪表板资源(包括服务、部署等)。“minikube插件禁用仪表板”对我有效。使用v1.6.2.对我来说,最简单的方法是找到部署它的yaml。 简单地做: kubectl删除-f 替换为您的yaml。 这是最好的清理方法,因为您部署的将被删除。更新2020年12月:
kubectl删除-fhttps://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
您还可以查看此链接:并将部署命令中的“应用”替换为“删除”。使用选择名称空间下的仪表板时,只需单击“删除”
之后将要求您确认删除。这发生在屏幕的右侧
然后它会询问您是否真的要删除所有底层资源。
通过这种方式,您可以在不需要命令行的情况下看到自己正在做什么。我想让部署中的其他容器保持运行。您有一个为仪表板和其他东西提供服务器的部署吗?已更新问题-抱歉,混淆了,它实际上是一个pod而不是一个容器。好的,这是一个pod。你是手动启动这个吊舱的吗?还是使用部署?复制控制器?ReplicaSet?据我所知,它是由kubernetes启动/管理的默认pod。何时需要运行此命令?一次是否足以防止它在将来再次启动?它似乎在被删除后立即启动。您是否完全按照我提供的命令运行?如果是这样,请提供
kubectl--namespace-kube-system-get-deployment
和kubectl--namespace-kube-system-get-rs
的输出,您是如何配置集群的?旁注:仪表板一直在运行真的会困扰您吗?此特定组件的封装外形接近于零这是真正的答案,而且如果您遵循kubernetes文档(该文档要求您在kubernetes dashboard命名空间中安装仪表板,而不是kube Systems)的话,这是唯一有效的答案前两个答案是误导性的,因为我已将错误列表化以删除错误服务,谢谢你的回复,这将帮助我:D是404。也许这需要被替换为单独的文件,这些文件位于:您没有添加链接!谢谢@OctaveL链接已添加。
$ kubectl delete deployment kubernetes-dashboard --namespace=kubernetes-dashboard
$ kubectl delete deployment dashboard-metrics-scraper --namespace=kubernetes-dashboard
$kubectl get service -A
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 102m
default nginx-service NodePort 10.96.31.151 <none> 80:31634/TCP 49m
kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 102m
kubernetes-dashboard dashboard-metrics-scraper ClusterIP 10.102.22.35 <none> 8000/TCP 22m
$ kubectl delete service kubernetes-dashboard --namespace=kubernetes-dashboard
$ kubectl delete service dashboard-metrics-scraper --namespace=kubernetes-dashboard
$ kubectl delete sa kubernetes-dashboard --namespace=kubernetes-dashboard
$ kubectl delete secret kubernetes-dashboard-certs --namespace=kubernetes-dashboard
$ kubectl delete secret kubernetes-dashboard-key-holder --namespace=kubernetes-dashboard