首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出与helm部署或图表相关的所有kubernetes资源

列出与helm部署或图表相关的所有kubernetes资源
EN

Stack Overflow用户
提问于 2020-10-13 05:49:22
回答 5查看 7K关注 0票数 6

我使用helm install部署了一个舵图,在此之后,我想看看与此部署相关的pod/services/cms是否已启动或失败。有没有办法看到这一点?

使用kubectl get pods并对名称进行greping是可行的,但它不会显示在部署此helm图表时部署的服务和其他资源。

EN

回答 5

Stack Overflow用户

发布于 2021-01-18 20:09:52

如果您使用的是Helm3:

要列出helm管理的所有资源,请使用带有标签app.kubernetes.io/managed-by=Helm的标签选择器

代码语言:javascript
复制
$ kubectl get all --all-namespaces -l='app.kubernetes.io/managed-by=Helm'

要列出helm管理的所有资源和特定版本的一部分,请执行以下操作:(edit release-name)

代码语言:javascript
复制
kubectl get all --all-namespaces -l='app.kubernetes.io/managed-by=Helm,app.kubernetes.io/instance=release-name'

更新:

标签键可能会随着时间的推移而变化,请遵循最新标签的official documentation

票数 4
EN

Stack Overflow用户

发布于 2020-10-13 21:53:43

通过发出以下命令:

代码语言:javascript
复制
kubectl get all -n <namespace> | grep ...

您将仅查询以下资源:

  • pod
  • service
  • daemonset
  • deployment
  • replicaset
  • statefulset
  • job
  • cronjobs

我鼓励你阅读这篇文章来获得更多的解释:

使用上面链接中的示例,您可以通过执行以下命令来查询所有资源的API:

代码语言:javascript
复制
kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind -l LABEL=VALUE --ignore-not-found -o name

此命令将查询集群中所有资源类型的接口,然后按label分别查询每个资源。

您可以使用labels在Helm chart中创建资源,然后通过指定:-l LABEL=VALUE来查询接口。

示例

假设您按照Helm图表进行了配置

  • $ helm install awesome-nginx stable/nginx-ingress

此图表已弃用,但它仅用于示例目的。

您可以通过以下方式查询所有资源的API:

代码语言:javascript
复制
kubectl api-resources --verbs=list -o name | xargs -n 1 kubectl get --show-kind -l release=awesome-nginx --ignore-not-found -o name

其中:

  • LABEL <- release
  • VALUE <- awesome nginx(版本名)

在此之后,您应该能够看到:

代码语言:javascript
复制
endpoints/awesome-nginx-nginx-ingress-controller
endpoints/awesome-nginx-nginx-ingress-default-backend
pod/awesome-nginx-nginx-ingress-controller-86b9c7d9c7-wwr8f
pod/awesome-nginx-nginx-ingress-default-backend-6979c95c78-xn9h2
serviceaccount/awesome-nginx-nginx-ingress
serviceaccount/awesome-nginx-nginx-ingress-backend
service/awesome-nginx-nginx-ingress-controller
service/awesome-nginx-nginx-ingress-default-backend
deployment.apps/awesome-nginx-nginx-ingress-controller
deployment.apps/awesome-nginx-nginx-ingress-default-backend
replicaset.apps/awesome-nginx-nginx-ingress-controller-86b9c7d9c7
replicaset.apps/awesome-nginx-nginx-ingress-default-backend-6979c95c78
podmetrics.metrics.k8s.io/awesome-nginx-nginx-ingress-controller-86b9c7d9c7-wwr8f
podmetrics.metrics.k8s.io/awesome-nginx-nginx-ingress-default-backend-6979c95c78-xn9h2
rolebinding.rbac.authorization.k8s.io/awesome-nginx-nginx-ingress
role.rbac.authorization.k8s.io/awesome-nginx-nginx-ingress

您可以通过更改-o参数来修改输出。

其他资源:

  • $ helm get manifest RELEASE-NAME
票数 2
EN

Stack Overflow用户

发布于 2021-05-19 17:37:40

代码语言:javascript
复制
helm get manifest RELEASE_NAME
helm get all RELEASE_NAME

https://helm.sh/docs/helm/helm_get_manifest/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64325749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档