第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 Operator SDK 中混合使用實(shí)現(xiàn)語言 - Helm、Go、Ansible

在 Operator SDK 中混合使用實(shí)現(xiàn)語言 - Helm、Go、Ansible

Go
青春有我 2022-08-30 21:51:23
我需要將多個(gè)容器部署到 Kubernetes 集群。目標(biāo)是自動(dòng)化Kafka,Kafka Connect,PostgreSQL等的部署。其中一些已經(jīng)提供了我們可以使用的Helm運(yùn)算符。所以我的問題是,我們能以某種方式在操作員內(nèi)部使用這些頭盔操作員嗎?如果是這樣,最好的方法是什么?到目前為止,我能想到的唯一方法是從部署應(yīng)用中調(diào)用 helm setup 控制臺(tái)命令。另一種方法,如果不使用這些 helm 文件,就是在我自己的運(yùn)算符中實(shí)現(xiàn)每個(gè)運(yùn)算符的功能,這似乎沒有多大意義,因?yàn)槲倚枰臇|西已經(jīng)開發(fā)并且是公開的。我對(duì)操作員開發(fā)非常陌生,所以如果這是一個(gè)愚蠢的問題,請(qǐng)?jiān)徫?。編輯:運(yùn)算符的主要目的是部署 X 數(shù)據(jù)庫。除此之外,我們希望有一個(gè)可以立即部署整個(gè)系統(tǒng)的單個(gè)運(yùn)算符/捆綁包。即使我們對(duì)某些容器有其他任務(wù),使用運(yùn)算符進(jìn)行捆綁是否有意義?這樣,用戶將在 yaml 文件中指定:databases  - type: "postgres"    name: "users"  - type: "postgres"    name: "purchases"并將創(chuàng)建2個(gè)PostgreSQL數(shù)據(jù)庫。然后,可以在其他 yaml 文件中提及這些數(shù)據(jù)庫,也可以在同一 yaml 文件中進(jìn)一步提及這些數(shù)據(jù)庫。手頭案例:數(shù)據(jù)庫中的信息將由 Debezium(另一個(gè)容器)提取,因此 Debezium 需要知道他們的地址。因此,操作員應(yīng)創(chuàng)建一個(gè)服務(wù)并將服務(wù)地址與數(shù)據(jù)庫名稱相關(guān)聯(lián)。這是 ETL 系統(tǒng)的一部分。這個(gè)想法是,操作員可以通過處理大部分配置來輕松部署整個(gè)系統(tǒng)。考慮到這一點(diǎn),我們正在考慮是否不可能選擇現(xiàn)有的Helm運(yùn)算符(或其他類型的運(yùn)算符)并通過對(duì)配置進(jìn)行小的修改來部署它們,例如不同數(shù)據(jù)庫的不同端口。但在閱讀了F1ko的回復(fù)后,我獲得了新的視角。也許這不可能像最初預(yù)期的那樣與操作員一起實(shí)現(xiàn)?
查看完整描述

1 回答

?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

僅用于澄清目的:

  • Helm是一個(gè)包管理器,您可以使用它以捆綁的方式將應(yīng)用程序安裝到集群上:它基本上為您提供了所有必要的YAML,例如ConfigMaps,Services,Deployments以及以正確方式啟動(dòng)和運(yùn)行所需應(yīng)用程序所需的任何其他內(nèi)容。

  • 操作員本質(zhì)上是一個(gè)控制器。在 Kubernetes 中,每當(dāng)您執(zhí)行某些操作時(shí),都有許多不同的控制器定義“邏輯”(例如,如果您決定增加字段,則復(fù)制控制器會(huì)添加更多 Pod 的復(fù)制)。有太多的控制器無法將它們?nèi)苛谐霾为?dú)運(yùn)行,這就是為什么它們被編譯成一個(gè)稱為kube-controller-manager的二進(jìn)制文件。定制的控制器稱為運(yùn)算符,以便于區(qū)分。這些操作員只是監(jiān)視某些“事物”的狀態(tài),并在需要時(shí)執(zhí)行操作。大多數(shù)時(shí)候,這些“東西”將是CustomResources(CR),本質(zhì)上是通過應(yīng)用CustomResourceDefinitions(CRD)引入集群的新Kubernetes對(duì)象。replicas

話雖如此,使用舵柄來部署操作員并不罕見,但是,盡量避免使用術(shù)語“舵機(jī)操作員”,因?yàn)樗鼘?shí)際上指的是非常具體的操作員,并且可能導(dǎo)致將來的混淆:https://github.com/fluxcd/helm-operator

所以我的問題是,我們能以某種方式在操作員內(nèi)部使用這些頭盔操作員嗎?

雖然您可以使用operator-sdk構(gòu)建自己的運(yùn)算符,然后允許您部署或觸發(fā)來自其他運(yùn)算符的某些事件(例如,通過編輯其CRD),但沒有理由這樣做。

到目前為止,我能想到的唯一方法是從部署應(yīng)用中調(diào)用 helm setup 控制臺(tái)命令。

您正在尋找的很可能是正確的 CI/CD 工作流。只需提交您在 Git 存儲(chǔ)庫中使用的 helm 圖表和 values.yaml 文件,并在每次進(jìn)行新提交時(shí)讓 CI/CD 工具(如 GitLab)將它們部署到您的集群中。helm install

更新:由于另一個(gè)人編輯了他的問題并留下了評(píng)論,我決定更新這篇文章:

該運(yùn)算符的主要目的是部署 X 數(shù)據(jù)庫。除此之外,我們希望有一個(gè)可以立即部署整個(gè)系統(tǒng)的單個(gè)運(yùn)算符/捆綁包。

您認(rèn)為將運(yùn)算符捆綁在另一個(gè)運(yùn)算符中是否有意義,就像使用 Helm 一樣?

不,它根本沒有意義。這正是掌舵的用途。使用helm,您可以捆綁東西,甚至可以將多個(gè)helm圖表捆綁在一起,這可能是您真正想要的。您可以有一個(gè)舵手圖,將所需的值向下傳遞到實(shí)際的操作員舵手圖,因此在多個(gè)位置使用類似于服務(wù)名稱的內(nèi)容。

對(duì)于操作員內(nèi)部的操作員,在配置操作員時(shí)是否仍需要單獨(dú)配置每個(gè)子操作員?

如上所述,這樣做沒有任何意義,它只是一種過度設(shè)計(jì)的方法。但是,如果您真的想采用操作員方法,基本上可以采用兩種方法:

  • 編寫一個(gè)運(yùn)算符,通過更改其他運(yùn)算符的 CR、ConfigMaps 等來配置其他運(yùn)算符;使用這種方法,您將擁有一個(gè)有點(diǎn)輕量級(jí)的操作員,但是您必須確保它始終與您希望它干擾的所有不同操作員兼容(當(dāng)他們更改為具有重大更改的新CR,引入新的CR或類似的東西時(shí),您將不得不再次適應(yīng))。apiVersion

  • 將整個(gè)邏輯從現(xiàn)有運(yùn)算符中提取到運(yùn)算符中(即重建已經(jīng)存在的東西);使用這種方法,您將擁有一個(gè)大型的整體式應(yīng)用程序,維護(hù)起來將非常痛苦,因?yàn)槊慨?dāng)上游運(yùn)算符中有更新時(shí),您都必須不斷更新代碼

希望現(xiàn)在已經(jīng)很清楚,為“操作”其他運(yùn)算符構(gòu)建自己的運(yùn)算符會(huì)帶來很多痛苦的依賴關(guān)系,不應(yīng)該是要走的路。

是否可以部署不同的映像配置?例如,數(shù)據(jù)庫配置了不同的端口?

好的運(yùn)算符和舵手圖可以讓您開箱即用地執(zhí)行此操作,無論是通過相應(yīng)的CR / ConfigMap還是文件,但是,現(xiàn)在這取決于您將要使用的解決方案。因此,一般來說,答案是:是的,如果支持,這是可能的。values.yaml


查看完整回答
反對(duì) 回復(fù) 2022-08-30
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)