如何解决列出与头盔部署或图表相关的所有kubernetes资源 示例
我使用helm install
部署了头盔图表,此后,我想查看与该部署相关的pod / services / cms是否出现或失败。有办法看到吗?
使用kubectl get pods
并在名称中使用greping可以,但是它不会显示在部署此头盔图表时已部署的服务和其他资源。
解决方法
helm get manifest RELEASE_NAME
helm get all RELEASE_NAME
https://helm.sh/docs/helm/helm_get_manifest/
,通过发行:
kubectl get all -n <namespace> | grep ...
您将仅查询以下资源:
- pod
- 服务
- daemonset
- 部署
- 复制包
- statefulset
- 工作
- cronjobs
我建议您阅读本文以获取更多说明:
使用上面链接中的示例,您可以通过发出以下命令来查询API的所有资源:
kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind -l LABEL=VALUE --ignore-not-found -o name
此命令将向API查询群集中的所有资源类型,然后按label
分别查询每个资源。
您可以使用labels
在Helm图表中创建资源,然后通过指定-l LABEL=VALUE
来查询API。
示例
假设您按照以下Helm图表进行配置
-
$ helm install awesome-nginx stable/nginx-ingress
此图表已弃用,但仅出于示例目的。
您可以使用以下方法查询API的所有资源:
kubectl api-resources --verbs=list -o name | xargs -n 1 kubectl get --show-kind -l release=awesome-nginx --ignore-not-found -o name
其中:
-
LABEL
-
VALUE
之后,您应该可以看到:
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
参数来修改输出。
其他资源:
- Github.com: Kubectl get all does not list all resources in a namespace #151
- Stackoverflow.com: Questions: Listing all resources in a namespace
-
$ helm get manifest RELEASE-NAME
如果您使用 Helm3:
要列出由 helm 管理的所有资源,请使用带有标签 app.kubernetes.io/managed-by=Helm
的标签选择器:
$ kubectl get all --all-namespaces -l='app.kubernetes.io/managed-by=Helm'
列出由 helm 管理的所有资源和特定版本的一部分:(edit release-name
)
kubectl get all --all-namespaces -l='app.kubernetes.io/managed-by=Helm,app.kubernetes.io/instance=release-name'
,
kubectl get all -n <namespace> | grep <helm chart keyword,ex: kibana,elasticsearch>
应列出在特定名称空间中由舵图创建的所有资源
, helm status RELEASE_NAME
此命令显示命名发行版的状态。状态包括 的:
- 最后部署时间
版本所在的- k8s名称空间
- 发布状态(可以是:未知,已部署,已卸载,已取代,失败,正在卸载,挂起安装,挂起升级或 未完成回滚)
- 此版本组成的资源列表,按种类排序
- 有关上次测试套件运行的详细信息(如果适用)
- 图表提供的其他注释
用法:掌舵状态RELEASE_NAME [标志]
还要注意,头盔在其管理的资源see here上放置了一些已知的标签/注释。您可以将其与kubectl get ... -l ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。