在Kubernetes中,大多数操作都是异步进行的。
例如,当创建一个ReplicaSet对象(选择一个简单的对象)时,将发生以下顺序:
- 我们将请求发送到Kube api服务器。
- kube-api服务器具有复杂的验证
- 确保用户具有RBAC凭据以在给定名称空间中创建RS
- 该请求由所有配置的准入控制器验证
- 最后,将对象写入ETCD-仅此而已
现在,各种Kubernetes控制器有责任观察ETCD的更改并实际执行必要的操作。在这种情况下,ReplicaSet控制器将监视ETCD中的更改(例如ReplicataSets的CRUD),并根据副本数等创建Pod。
现在,向运营商介绍,它们在概念上与Kubernetes控制器非常相似。但是它们与第三方实体一起使用。在Kubernetes中,存在CRD的概念,供应商可以定义自己的CRD,而CRD只是自定义(例如,特定于供应商的)kubernetes对象类型。这些运算符非常类似于Kubernetes控制器读取Kubernetes对象的CRUD的方式,对相应CRD上的操作做出响应。例如,当在Kubernetes集群中创建新的API CRD对象时,Kong操作员可以在Kong API服务器中创建新的API条目。