溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DevOps中Kubernetes的Operators有哪些

發(fā)布時(shí)間:2021-09-13 10:22:02 來(lái)源:億速云 閱讀:102 作者:柒染 欄目:web開發(fā)

本篇文章為大家展示了DevOps中Kubernetes的Operators有哪些,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

Kubernetes  Operators是為特定應(yīng)用程序而構(gòu)建的,目的是為了簡(jiǎn)化在Kubernetes上創(chuàng)建,配置,管理和操作這些應(yīng)用程序。在本文中,我們將深入研究了Kubernetes  Operators的機(jī)制,并概述了每個(gè)DevOps都需要了解的10個(gè)Operators。

DevOps中Kubernetes的Operators有哪些

Kubernetes和容器技術(shù)的出現(xiàn)使應(yīng)用程序更具可移植性,可擴(kuò)展性,同時(shí)也提高了資源利用率。對(duì)于DevOps而言,Kubernetes具有更廣泛的吸引力:能夠大規(guī)模配置,管理和操作容器化微服務(wù)。

同時(shí)Kubernetes也允許他們?cè)趹?yīng)用程序的創(chuàng)建,部署,擴(kuò)展和配置中實(shí)現(xiàn)一定程度的自動(dòng)化,從而大大降低了程序管理的開銷以及錯(cuò)誤。

但是,有一點(diǎn)需要注意:對(duì)于有狀態(tài)應(yīng)用程序,它可能并沒有我們所希望的那么完美。部署,擴(kuò)容,操作和配置有狀態(tài)的應(yīng)用程序以及在自動(dòng)化中進(jìn)行構(gòu)建需要DevOps大量的交互。

什么是Kubernetes Operators?

Kubernetes Operators是在Kubernetes集群上構(gòu)建和驅(qū)動(dòng)每個(gè)應(yīng)用程序的高級(jí)原生方法。通過(guò)與Kubernetes  API的密切合作,它提供了一種一致的方法來(lái)自動(dòng)處理所有應(yīng)用程序操作流程,而無(wú)需任何人工響應(yīng)。

換句話說(shuō),Operator是打包,運(yùn)行和管理Kubernetes應(yīng)用程序的一種方式。

Kubernetes Operators使在Kubernetes上創(chuàng)建,配置和管理這些應(yīng)用程序更加容易。

很多Operators還擴(kuò)展了整個(gè)應(yīng)用程序生命周期,從而使執(zhí)行操作任務(wù)(例如擴(kuò)展,升級(jí),備份和恢復(fù)復(fù)雜的有狀態(tài)應(yīng)用程序)更加容易。

由于它們使用和擴(kuò)展了Kubernetes API,因此它們緊密集成在Kubernetes框架中。

以下是Kubernetes Operators的一些最常見功能的列表:

  • 使用配置項(xiàng)和副本數(shù)安裝應(yīng)用程序。

  • 彈性伸縮應(yīng)用程序

  • 啟動(dòng)升級(jí),自動(dòng)備份和故障恢復(fù)

  • 以代碼的方式執(zhí)行管理任務(wù)

Kubernetes Operators如何工作?

Operators利用Kubernetes的可擴(kuò)展性和模塊化來(lái)自動(dòng)化創(chuàng)建,配置和管理Kubernetes應(yīng)用程序。

Operators基于自定義Kubernetes控制器(CRD)和自定義資源的概念,并被DevOps用于在Kubernetes上管理應(yīng)用程序。它們對(duì)CRD起作用,以確保群集的實(shí)際狀態(tài)與CRD中定義的狀態(tài)匹配。

來(lái)自CoreOs的prometheus Operator就是一個(gè)很好的例子。它被部署為自定義Kubernetes控制器,該控制器監(jiān)視Kubernetes  API的四個(gè)自定義資源定義:Prometheus,ServiceMonitor,PrometheusRule和AlertManager。

部署后,Prometheus Operator將安裝并配置完整的Prometheus  Stack,其中包括Prometheus服務(wù)器,Alertmanager,Grafana,主機(jī)node_exporter和kube-state-metrics。然后,DevOps可以輕松擴(kuò)展每個(gè)組件的單個(gè)副本的數(shù)量,進(jìn)行配置更改,更新警報(bào)規(guī)則或自動(dòng)監(jiān)視新服務(wù)。

現(xiàn)在我們已經(jīng)介紹了Kubernetes Operators的概念,讓我們介紹DevOps最常用的一些Operators。

您應(yīng)該了解哪些Kubernetes Operators

RBAC Manager Operator

RBAC  Manager(https://github.com/FairwindsOps/rbac-manager)是一個(gè)來(lái)自費(fèi)爾溫茨的kubernetns  Operator,它旨在使RBAC上Kubernetes易于安裝,配置和管理。

Kubernetes授權(quán)通常是復(fù)雜,重復(fù),需要大量的手動(dòng)配置并且很難擴(kuò)展。RBAC  Manager大大減少了管理RBAC以及創(chuàng)建,刪除或更新角色綁定,群集角色綁定和服務(wù)帳戶所涉及的配置。

通過(guò)匯總單個(gè)RBAC定義文件中的多個(gè)命名空間之間的角色綁定,它可以作為了解RBAC狀態(tài)的唯一事實(shí)來(lái)源。

MongoDB Enterprise Kubernetes Operator

MongoDB  Operator(https://docs.mongodb.com/manual/reference/Operator/)幫助DevOps標(biāo)準(zhǔn)化創(chuàng)建大規(guī)模的MongoDB集群的過(guò)程。該Operator可以接管拆分和管理MongoDB集群所涉及的典型管理任務(wù),包括配置存儲(chǔ)和計(jì)算,配置網(wǎng)絡(luò)連接和設(shè)置用戶。

Kubernetes Operator還集成了其他MongoDB管理工具,例如MongoDB Ops Manager和MongoDB Cloud  Manager,以提供備份,監(jiān)視和性能優(yōu)化。

HPA Kubernetes Operator

Banzai的HPA  Operator(https://github.com/banzaicloud/hpa-Operator)是另一種有用的Operator,它將Pod自動(dòng)縮放功能添加到Helm  charts中。

它監(jiān)視Kubernetes deployment或StatefulSet,并根據(jù)配置中定義的注釋自動(dòng)創(chuàng)建,刪除或更新“Horizontal Pod  Autoscalers ”(HPA)。HPA的Github頁(yè)面以Kafka為例。

Kafka的Helm charts并沒有為集群定義任何的HPA規(guī)則,這意味著使用該helm chart  部署Kafka并不會(huì)在Kafka中實(shí)現(xiàn)HPA。

為了確保將HPA作為為Helm chart的一部分,DevOps可以為min和maxReplicas添加注釋。添加后,HPA  Operator將根據(jù)注釋增加所需數(shù)量的HPA副本。HPA Operator還采用了Kube Metrics  Adapter公開的基于Prometheus的自定義指標(biāo)。

Cert-manager Kubernetes Operator

Cert-manager  Operator(https://github.com/jetstack/cert-manager)是來(lái)自與Jetstack的Kubernetes  Operator。它旨在自動(dòng)化TLS證書的管理和頒發(fā)。

DevOps可以使用此Operator來(lái)自動(dòng)執(zhí)行重復(fù)性任務(wù),例如確保證書有效,最新以及正確更新。部署后,Cert-manager將作為Kubernetes  deployment運(yùn)行。

DevOps可以將證書和證書頒發(fā)者列表配置為Kubernetes CRD。一旦配置了證書,應(yīng)用程序就可以使用信任的證書進(jìn)行即時(shí)請(qǐng)求。

ArgoCD Operator

ArgoCD  Operator(https://github.com/jmckind/argocd-Operator)管理ArgoCD的整個(gè)生命周期以及其相關(guān)組件。ArgoCD是CNCF領(lǐng)域中評(píng)價(jià)最高的專門針對(duì)Kubernetes持續(xù)交付工具之一。

該Operator可以輕松配置和安裝ArgoCD,也可以輕松升級(jí),備份,還原和擴(kuò)展ArgoCD組件。該Operator通過(guò)監(jiān)測(cè)三個(gè)Kubernetes  CRD來(lái)做到這一點(diǎn),其中包括ArgoCD(定義ArgoCD集群的所需狀態(tài))和ArgoCDExport(定義用于ArgoCD組件導(dǎo)出和恢復(fù)的所需狀態(tài))。

Istio Operator

Istio(https://istio.io/)是服務(wù)網(wǎng)格工具,可以管理,協(xié)調(diào),保護(hù)和監(jiān)視Kubernetes上部署的微服務(wù)之間的通信。Istio  Operator(https://istio.io/blog/2019/introducing-istio-Operator/)可以更容易地安裝,升級(jí)以及對(duì)Istio的故障排除。

安裝僅需要istioctl作為前提條件,因?yàn)樗鼈儾恍枰腁PI,并且可以輕松實(shí)現(xiàn)特定于版本的升級(jí)hooks。使用該Operator安裝Istio還可以確保所有API字段都經(jīng)過(guò)驗(yàn)證。

該OperatorAPI支持所有6種內(nèi)置安裝配置文件,包括默認(rèn),演示,最小和遠(yuǎn)程。DevOps和SRE可以從其中任何一種開始,然后進(jìn)一步進(jìn)行配置更改,以根據(jù)其特定需求定制服務(wù)網(wǎng)格。

Etcd Operator

Etcd充當(dāng)Kubernetes上所有集群數(shù)據(jù)的存儲(chǔ)數(shù)據(jù)庫(kù),因此是每個(gè)集群的最關(guān)鍵組件的組件之一。在Kubernetes上管理和配置etcd集群是一項(xiàng)相對(duì)耗時(shí)的工作,需要一些手工配置的工作,從而為保證etcd  集群的高可用,可監(jiān)控和災(zāi)難恢復(fù)增加了復(fù)雜度。

ETCD  Operator(https://coreos.com/Operators/etcd/docs/latest/)幫助DevOps和SRE更容易創(chuàng)建,配置和管理Kubernetes集群中etcd實(shí)例。

團(tuán)隊(duì)可以輕松啟動(dòng)多個(gè)高度可用的etcd實(shí)例,而無(wú)需指定詳細(xì)的配置設(shè)置,修改群集規(guī)格以調(diào)整群集的大小,配置用于災(zāi)難恢復(fù)的自動(dòng)備份策略以及啟動(dòng)正常升級(jí)而無(wú)需停機(jī)。

Elastic Cloud on Kubernetes (Elastic Kubernetes Operator)

Kubernetes上的Elastic  cloud(ECK)(https://github.com/elastic/cloud-on-k8s)是elastic.co的Kubernetes官方Operator,旨在為在Kubernetes上部署,管理和操作整個(gè)Elastic  Stack提供無(wú)縫的體驗(yàn)。除了更輕松地在Kubernetes上部署elastic  search和Kibana之外,它還簡(jiǎn)化了關(guān)鍵操作任務(wù),包括管理和監(jiān)視多個(gè)集群,啟動(dòng)正常升級(jí),擴(kuò)展集群容量和本地存儲(chǔ),進(jìn)行配置更改以及備份。

默認(rèn)的ECK分發(fā)是免費(fèi)和開源的,有內(nèi)置功能,包括用于密集存儲(chǔ),Kibana空間,Canvas和Elastic Maps的frozen  indices,還支持監(jiān)控Kubernetes日志和基礎(chǔ)架構(gòu)。

Grafana Operator

RedHat提供的Grafana  Operator(https://github.com/integr8ly/grafana-Operator)簡(jiǎn)化了在Kubernetes上創(chuàng)建,配置和管理Grafana實(shí)例的過(guò)程。

除了幫助部署Grafana之外,它還支持通過(guò)ingress,自動(dòng)化的dashboard和數(shù)據(jù)源發(fā)現(xiàn)以及儀表板依賴項(xiàng)的安裝使Grafana變的高度可用??梢允褂肁nsible或通過(guò)kubectl命令手動(dòng)安裝Operator并創(chuàng)建自定義資源。

安裝后,Operator將根據(jù)部署期間傳遞的標(biāo)志在其自身的名稱空間或所有名稱空間中監(jiān)視儀表板定義,發(fā)現(xiàn)儀表板,在出現(xiàn)任何無(wú)效json的情況下將錯(cuò)誤消息添加到儀表板的狀態(tài)字段中,并自動(dòng)安裝指定的插件。

然后,DevOps和SRE可以在GrafanaDataSource中添加數(shù)據(jù)源以及其他配置文件。

Jaeger Kubernetes Operator

Jaeger Kubernetes  Operator(https://github.com/jaegertracing/jaeger-Operator)幫助部署,管理和配置Jaeger實(shí)例。安裝DevOps和SRE時(shí),可以為jaeger指定配置選項(xiàng),包括存儲(chǔ)選項(xiàng),派生依賴項(xiàng),注入Jaeger代理sidecar和UI配置等。

安裝完成后,可使用Operator來(lái)創(chuàng)建Jaeger實(shí)例并將其與部署策略相關(guān)聯(lián)。DevOps和SRE可以選擇以下支持的三種部署策略:allInOne,production和streaming。使用production策略時(shí),Operator將啟動(dòng)一個(gè)更具可擴(kuò)展性和高可用性的環(huán)境,并分別部署每個(gè)后端組件。

allInOne策略旨在用于測(cè)試和開發(fā)目的,而streaming策略則增強(qiáng)了production策略,并在收集器和后端存儲(chǔ)之間提供了流。

上述內(nèi)容就是DevOps中Kubernetes的Operators有哪些,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI