首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >k8s操作符中的控制器模式?

k8s操作符中的控制器模式?
EN

Stack Overflow用户
提问于 2021-08-03 15:46:38
回答 2查看 71关注 0票数 0

“操作员使用控制器模式”

k8s运算符中的控制器模式是什么?

EN

回答 2

Stack Overflow用户

发布于 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以匹配所需的状态。

您可以在以下资源中找到有关这些内容的更多详细信息:

票数 1
EN

Stack Overflow用户

发布于 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来设置您的应用程序。您还可以使用基于这种方式的KustomizeHelm 等工具。

例如:

  1. 首先运行以下命令:

kubectl解释ZookeeperCluster

你会得到一个错误。

  1. 您可以安装舵图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

  1. ,但是,现在,如果你再运行一次:

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定义了观察到的状态

  1. 现在,你可以像这样使用它( ...的意思是省略号):

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

其他例如:

  1. 创建Zookeeper集群。

kubectl create --命名空间zookeeper -f - <

参考:https://banzaicloud.com/docs/supertubes/kafka-operator/install-kafka-operator/

顺便说一句,在你安装了一个操作符之后,你可以使用kubectl describe clusterrole zookeeper-operator来显示一些消息,然后运行kubectl api-resources来查找它,然后你就可以找到这种类型的名称了……

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

https://stackoverflow.com/questions/68639127

复制
相关文章

相似问题

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