如何从Google云平台上的部署中删除Kubernetes仪表板资源?

如何从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

我已经创建了一个Kubernetes部署。然而,似乎有额外的豆荚在运行——我希望能够删除不必要的豆荚

我认为没有必要运行仪表板容器。我想删除它以释放CPU资源

如何禁用此容器的启动?最好是从部署配置

基本上如下所示:

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