OpenKruise A controller-》 statefulset -> pod。 A controller,如果想监听statefulset 创建的pod,只能通过owner ref来吧?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
是的,如果一个控制器(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 创建的。
单纯重启,发信号量kill就行了,搞一个sidecar,识别状态发kill,观察重启,重启完毕回置状态,就可以了,此回答整理自钉群“OpenKruise 社区交流群”