首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定是什么创建了Kubernetes资源?

如何确定是什么创建了Kubernetes资源?
EN

Server Fault用户
提问于 2021-01-27 03:04:13
回答 1查看 1.1K关注 0票数 0

我正在调试创建以下资源的内容:

代码语言:javascript
复制
$ kubectl get deploy -o=name | grep datadog
deployment.apps/datadog-cluster-agent
deployment.apps/datadog-kube-state-metrics

每次我删除它们时,都会在几秒钟内再次创建它们。

通过查看标签,我就可以看出它是由Helm管理的:

代码语言:javascript
复制
$ kubectl describe deploy/datadog-cluster-agent
Name:                   datadog-cluster-agent
Namespace:              default
CreationTimestamp:      Tue, 26 Jan 2021 18:56:51 -0800
Labels:                 app.kubernetes.io/instance=datadog
                        app.kubernetes.io/managed-by=Helm
                        app.kubernetes.io/name=datadog
                        app.kubernetes.io/version=7
                        contra.com/app-name=datadog
                        helm.sh/chart=datadog-2.7.0

但是,我很有信心,Helm甚至没有安装在集群上:

代码语言:javascript
复制
$ kubectl get all -A | grep helm
$ kubectl get all -A | grep tiller

How --我是否确定是什么创建了这个数据-- deployment --我删除它的时间?

进一步调试信息:

试图列出所有相关资源将提供:

代码语言:javascript
复制
$ kubectl get all -l app.kubernetes.io/instance=datadog
NAME                                              READY   STATUS    RESTARTS   AGE
pod/datadog-kube-state-metrics-55d9f8659f-5tqsl   1/1     Running   0          4m43s

NAME                                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
service/datadog-cluster-agent        ClusterIP   10.0.14.155           5005/TCP   6h16m
service/datadog-kube-state-metrics   ClusterIP   10.0.2.87             8080/TCP   20d

NAME                     DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
daemonset.apps/datadog   5         5         4       1            4           kubernetes.io/os=linux   3m45s

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/datadog-cluster-agent        1/1     1            1           4m37s
deployment.apps/datadog-kube-state-metrics   1/1     1            1           4m43s

NAME                                                    DESIRED   CURRENT   READY   AGE
replicaset.apps/datadog-kube-state-metrics-55d9f8659f   1         1         1       4m43s

如果我使用kubectl delete all -l app.kubernetes.io/instance=datadog删除所有资源,它们将在几秒钟内再次重新创建。

EN

回答 1

Server Fault用户

发布于 2021-01-28 23:58:49

您应该检查部署JSON或YAML定义。在元数据中,应该有一个ownerReference,例如:

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2021-01-12T08:34:06Z"
  generation: 1
  name: eventlistener
  namespace: ci
  ownerReferences:
  - apiVersion: triggers.tekton.dev/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: EventListener
    name: github-listener
    uid: 54a7115e-565d-4239-b8fc-66e94c6c221b
spec:
...

当一个对象由另一个对象创建时,您应该找到那个ownerReference,告诉您该归咎于谁。

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

https://serverfault.com/questions/1051339

复制
相关文章

相似问题

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