“操作员使用控制器模式”
k8s运算符中的控制器模式是什么?
发布于 2021-08-03 17:11:51
控制器模式总结为以下三句话:
Kubernetes A控制器跟踪至少一种
资源类型。这些对象具有表示所需状态的等级库字段。该资源的控制器负责使当前状态更接近该期望状态。
参考:https://kubernetes.io/docs/concepts/architecture/controller/#controller-pattern
基本上,Kubernetes控制器在控制循环中监视各自的资源。一旦找到资源,它就会从规范中读取所需的状态,并执行一些工作以使集群状态与所需的状态相同。
例如,您已经创建了一个部署,其中您在spec中指定需要一个pod来运行您的应用程序。现在,部署控制器看到了这一点,并在集群中创建了1个pod,以匹配您所需的状态。现在,如果您更新了部署规范,并说您现在需要2个pod。部署控制器将看到此更改,因为它始终在监视部署,并在集群中创建另一个pod以匹配所需的状态。
您可以在以下资源中找到有关这些内容的更多详细信息:
发布于 2021-11-25 04:13:41
作业控制器
就是一个内置控制器的例子。内置控制器通过与群集API服务器交互来管理状态。
参考:https://kubernetes.io/docs/concepts/architecture/controller/#control-via-api-server
在我的理解中,你创建了一个xxx运算符,这意味着你为你的k8s添加了一个Kind,这个kubectl explain <kind-name>可以显示你给出的类型的消息。
因此,使用xx运算符,您可以使用simpler yaml来设置您的应用程序。您还可以使用基于这种方式的Kustomize或Helm 等工具。
例如:
kubectl解释ZookeeperCluster
你会得到一个错误。
pravega/zookeeper-operator:helm install --create-namespace -n op-pravega-zk -- zookeeper-operator pravega/zookeeper-operator
安装完msg后,您将退出msg,但它是无能为力的:
名称: zookeeper-operator上次部署时间:清华11月25 11:20:31 2021命名空间: op-pravega-zk状态:已部署版本:1测试套件: None
kubectl解释ZookeeperCluster
您将获得以下内容:
描述: ZookeeperCluster是zookeeperclusters ZookeeperCluster字段的模式: apiVersion APIVersion定义了该对象表示的版本化模式。服务器应将已识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources kind Kind是一个字符串值,表示该对象表示的REST资源。服务器可以从客户端向其提交请求的端点推断出这一点。无法更新。在CamelCase中。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds元数据标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata规范ZookeeperClusterSpec定义了ZookeeperCluster状态的期望状态ZookeeperClusterStatus定义了观察到的状态
...的意思是省略号):apiVersion:“zookeeper.presvega.io/v1beta1”kind:"ZookeeperCluster“元数据:名称: zookeeper命名空间:pravega-ZK...规格:复制品:3图像:仓库: pravega/zookeeper ...pod: serviceAccountName: zookeeper storageType:持久性持久性:pod: Delete spec: storageClassName:本地主机路径...
或者像这样(在这个舵图中是一种ZookeeperCluster类型):
helm安装--创建命名空间pravega/zookeeper --设置持久性。set=本地主机路径-- zookeeper -n
其他例如:
kubectl create --命名空间zookeeper -f - <
参考:https://banzaicloud.com/docs/supertubes/kafka-operator/install-kafka-operator/
顺便说一句,在你安装了一个操作符之后,你可以使用kubectl describe clusterrole zookeeper-operator来显示一些消息,然后运行kubectl api-resources来查找它,然后你就可以找到这种类型的名称了……
https://stackoverflow.com/questions/68639127
复制相似问题