OpenKruise A controller-》如果想监听statefulset 创建的pod,?

OpenKruise A controller-》 statefulset -> pod。 A controller,如果想监听statefulset 创建的pod,只能通过owner ref来吧?

展开
收起
真的很搞笑 2023-08-01 20:04:06 101 分享 版权
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    是的,如果一个控制器(Controller)想要监听由 StatefulSet 创建的 Pod,常见的做法是使用 Owner Reference(所有者引用)来建立它们之间的关系。

    在 Kubernetes 中,Owner Reference 是一种机制,用于在 API 对象之间建立所有者和拥有者的关系。通过设置 Pod 的 Owner Reference 为 StatefulSet,控制器可以通过监听 Pod 的创建事件,并识别出由 StatefulSet 创建的 Pod。

    以下是一个示例,展示了如何使用 Owner Reference 来建立 StatefulSet 与 Pod 之间的关系:

    yaml
    Copy
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
    name: my-statefulset
    spec:
    selector:
    matchLabels:
    app: my-app
    template:
    metadata:
    labels:
    app: my-app
    spec:
    containers:

        - name: my-container
          image: my-image
    

    apiVersion: v1
    kind: Pod
    metadata:
    name: my-pod
    ownerReferences:

    - apiVersion: apps/v1
      kind: StatefulSet
      name: my-statefulset
      uid: <statefulset-uid>
    

    spec:
    containers:

    - name: my-container
      image: my-image
    

    在这个示例中,StatefulSet my-statefulset 的 Pod my-pod 设置了一个 Owner Reference,指向 StatefulSet。这样,控制器可以通过监听 Pod 的创建事件,并检查 Owner Reference,从而知道该 Pod 是由哪个 StatefulSet 创建的。

    2023-08-04 17:54:15
    赞同 展开评论
  • 单纯重启,发信号量kill就行了,搞一个sidecar,识别状态发kill,观察重启,重启完毕回置状态,就可以了,此回答整理自钉群“OpenKruise 社区交流群”

    2023-08-01 20:08:02
    赞同 展开评论
问答分类:

国内唯一 Forrester 公共云容器平台领导者象限。

还有其他疑问?
咨询AI助理