手机站:/m

免备案CDN_新网物联网时代-域名注册_哪个好

时间:2021-07-22 10:47编辑:淘客樊里来源:淘客樊里当前位置:主页 > 服务器 >

免备案CDN_新网域名注册_哪个好

最近,Kubernetes社区开始添加对运行大型有状态应用程序(如数据库、分析和机器学习)的支持。例如,您可以使用StatefulSet workload controller来维护每个pod的标识,并使用持久卷来持久化数据,使其能够在服务重新启动后生存。如果您的工作负载依赖于本地存储,您可以将PersistentVolumes与本地SSD一起使用,也可以将SSD persistent disk用作引导盘,以提高不同类型工作负载的性能。

但是,对于许多高级用例,如备份、还原和高可用性,这些核心Kubernetes原语可能还不够。这就是Kubernetes算子的用武之地。它们提供了一种通过使用自定义资源和自定义控制器的特定于应用程序的逻辑来扩展Kubernetes功能的方法。通过操作符模式,可以将特定应用程序的领域知识编码到kubernetesapi扩展中。使用它,您可以使用kubectl创建、访问和管理应用程序,就像您对Pods等内置资源所做的那样。

在Google Cloud,我们使用运营商更好地支持Kubernetes上的不同应用程序。例如,我们有用于以Kubernetes本地方式运行和管理Spark和Airflow应用程序的操作符。我们还在GCP市场上提供了这些运营商,以获得轻松的点击部署体验。Spark操作符代表用户自动运行Spark submit,为按计划运行Spark作业提供cron支持,支持自动应用程序重启和重试,数据和大数据,并支持从本地Hadoop配置以及Google云存储装载数据。Airflow操作符为Airflow部署创建和管理必要的Kubernetes资源,并支持创建具有不同执行器的Airflow调度程序。

作为开发人员,我们在构建这些操作符时学到了很多。如果您正在编写自己的操作符来管理Kubernetes应用程序,下面是我们推荐的一些最佳实践。每个应用程序开发一个操作员

一个操作员可以自动化应用程序的各种功能,但它应该特定于单个应用程序。例如,Airflow通常与MySQL和Redis一起使用。您应该为每个应用程序开发一个操作符(即三个操作符),而不是一个包含所有三个操作符的操作符。这样就可以更好地分离每个应用程序的领域专业知识方面的关注点。使用像Kubebuilder

Kubebuilder这样的SDK是一个综合开发工具包,用于使用CRD构建和发布Kubernetes API和控制器。使用Kubebuilder,您可以轻松地编写操作符,而不必了解Kubernetes库是如何实现的所有底层细节。要了解更多信息,请查看Kubebuilder手册。

3。使用声明性API

为操作员设计声明性API,而不是命令式API。这与本质上是声明性的kubernetesapi非常吻合。使用声明式api,用户只需表示所需的集群状态,同时让操作员执行所有必要的步骤即可实现。相反,使用命令式api时,用户必须清楚地按顺序指定实现所需状态的步骤。通过多个控制器划分功能

应用程序可能具有不同的功能,如缩放、备份、恢复和监视。一个操作符应该由多个控制器组成,这些控制器专门处理这些特性中的每一个。例如,操作员可以有一个主控制器来生成和管理应用程序实例,一个备份控制器来处理备份操作,一个还原控制器来处理还原操作。这通过更好的抽象和更简单的同步循环简化了开发过程。请注意,阿里大数据分析,每个控制器应对应于一个特定的CRD,以便每个控制器的职责范围是明确的。

5。使用异步同步循环

如果操作员在将当前集群状态调整到所需状态时检测到错误(例如,那云,pod创建失败),则应立即终止当前同步调用并返回错误。然后,工作队列应在稍后安排重新同步;在解决错误之前,sync调用不应通过继续轮询集群状态来阻止应用程序。类似地,启动和监视长时间运行操作的控制器不应同步等待操作。相反,控制器应该返回睡眠状态,稍后再次检查。

监视和记录应用程序

一旦您编写了自己的操作员,您将需要为应用程序启用日志记录和监视。这对新手来说可能很复杂。以下是一些你可以遵循的最佳实践。执行应用程序级、节点级和集群级日志聚合

Kubernetes集群可能会变大,尤其是那些有状态应用程序的集群。如果为每个容器都保留一个日志,那么最终可能会出现无法管理的日志量。要解决这个问题,可以聚合日志。可以通过聚合容器日志并过滤出满足特定严重性和详细日志记录级别的日志消息来执行应用程序级日志记录。应用程序级聚合要求能够判断日志属于哪个应用程序。为此,您可能需要将特定于应用程序的详细信息集成到日志消息中,例如为应用程序名称添加前缀。

同样,对于节点级和群集级日志,您可以聚合节点或群集内的所有应用程序级日志。Kubernetes本机不支持此功能,因此您可能需要使用外部日志工具(如Google Stackdriver、Elasticsearch、Fluentd或Kibana)来执行聚合。

2。正确标记度量,以便于查看、聚合和分析

上一篇免备案CDN_服务淘客单-器u盘启动_优惠券

下一篇游戏服务器_海南网物联网开发-站建设公司_哪个好

云市场知识本月排行

云市场知识精选