日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
如何不編寫(xiě)YAML管理Kubernetes應(yīng)用?

如何不編寫(xiě) YAML 管理 Kubernetes 應(yīng)用?

作者:郭遜 2022-09-02 15:38:06
云計(jì)算
云原生 當(dāng)你的團(tuán)隊(duì)已經(jīng)使用原生的 Kubernetes 一段時(shí)間,你多半會(huì)發(fā)現(xiàn),并非每個(gè) IT 技術(shù)人員都擅長(zhǎng)編寫(xiě)復(fù)雜的 Kubernetes 聲明式配置文件(YAML)。

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供嶧城企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為嶧城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)的建站公司優(yōu)惠進(jìn)行中。

Kubernetes 將自身邊界內(nèi)的事物都抽象為資源。其中的主要部分,是以 Deployment、StatefulSet 為代表的 workload 工作負(fù)載控制器,其他各類(lèi)資源都圍繞這些主要的資源工作。這些資源合并起來(lái),可以為 IT 技術(shù)工作者展現(xiàn)出一個(gè)以 workload 為中心的模型。Kubernetes 中所有的資源,都通過(guò)聲明式配置文件來(lái)編輯描述,一條條的 Yaml 字段定義,給了 IT 技術(shù)人員最大的自由度的同時(shí),也對(duì)技術(shù)人員的能力提出了極高的要求。

通過(guò)應(yīng)用模型簡(jiǎn)化Kubernetes管理

當(dāng)你的團(tuán)隊(duì)已經(jīng)使用原生的 Kubernetes 一段時(shí)間,你多半會(huì)發(fā)現(xiàn),并非每個(gè) IT 技術(shù)人員都擅長(zhǎng)編寫(xiě)復(fù)雜的 Kubernetes 聲明式配置文件(YAML)。特別是對(duì)于開(kāi)發(fā)人員他們的主要職責(zé)是業(yè)務(wù)開(kāi)發(fā),學(xué)習(xí)和編寫(xiě)YAML會(huì)增加他們的負(fù)擔(dān),甚至?xí)钟|使用。

開(kāi)源項(xiàng)目Rainbond 是一個(gè) 云原生應(yīng)用管理平臺(tái),它使用 以應(yīng)用為中心 的設(shè)計(jì)模式。基于這一設(shè)計(jì)模式重新抽象出了比 workload 更高層次的應(yīng)用模型。從使用的體驗(yàn)上不需要學(xué)習(xí)和編寫(xiě)YAML,實(shí)現(xiàn)業(yè)務(wù)應(yīng)用的全生命周期管理。應(yīng)用對(duì)應(yīng)一個(gè)完整的業(yè)務(wù)系統(tǒng),由若干個(gè)可以單獨(dú)管理的服務(wù)組件組成,部署業(yè)務(wù)組件可以從源代碼和容器鏡像,通過(guò)“拖拉拽”的方式編輯服務(wù)調(diào)用關(guān)系。每一個(gè)服務(wù)組件,可以基于圖形化界面定義使用常見(jiàn)的一些運(yùn)維特征。在此基礎(chǔ)之上,用戶還可以利用應(yīng)用模型這一核心概念,做出更多高級(jí)操作,如將整個(gè)業(yè)務(wù)系統(tǒng)以應(yīng)用模板的形式發(fā)布出來(lái),業(yè)務(wù)系統(tǒng)可以基于該模板一鍵安裝/升級(jí)。在軟件交付這個(gè)領(lǐng)域,這種能力十分有用,無(wú)論最終交付環(huán)境在線或離線,都可以基于應(yīng)用模板進(jìn)行快速交付,甚至個(gè)性化交付。

Rainbond 使用的應(yīng)用模型,讓開(kāi)發(fā)人員關(guān)注應(yīng)用和業(yè)務(wù)本身,更易于被人所接受。對(duì)裁剪后保留下來(lái)的運(yùn)維特征通過(guò)圖形界面展示和交互,極大的降低了使用的難度,通過(guò)應(yīng)用模版絕大多數(shù)開(kāi)發(fā)者不必編輯復(fù)雜聲明式配置文件就可以順暢使用 Kubernetes 了。

將Kubernetes的YAML轉(zhuǎn)換成應(yīng)用模型

整個(gè)轉(zhuǎn)化的過(guò)程,可以概括為三個(gè)步驟:

  1. 對(duì)于開(kāi)發(fā)人員最常用Workload,可以從源碼和容器鏡像向?qū)降淖詣?dòng)生成,或?qū)胍延衁AML和運(yùn)行應(yīng)用,導(dǎo)入過(guò)程自動(dòng)識(shí)別所有可轉(zhuǎn)化的 Workload 類(lèi)型資源,包括 Deployment、StatefulSet, Job、CronJob 類(lèi)型。這些資源會(huì)被轉(zhuǎn)化成應(yīng)用模型,轉(zhuǎn)化后會(huì)以服務(wù)組件的形式運(yùn)行。
  2. 導(dǎo)入生成的服務(wù)組件后,基本的Workload屬性通過(guò)界面就可以查看和編輯,如環(huán)境變量、鏡像地址等。轉(zhuǎn)化過(guò)程中會(huì)將識(shí)別到的高級(jí)Workload 屬性添加給服務(wù)組件,以Key/Value 或 Yaml 形式查看和管理。
  3. 非 Workload 的資源類(lèi)型,如 Secret、ServiceAccount、Role 等資源,會(huì)被分類(lèi)識(shí)別和加載到應(yīng)用界面的k8s資源 頁(yè)面中,供操作人員以交互體驗(yàn)方式進(jìn)行編輯。

可被納管和轉(zhuǎn)化的 高級(jí)Workload 屬性包括:

屬性名稱(chēng)

作用

nodeSelector

節(jié)點(diǎn)選擇器:指定某種類(lèi)型節(jié)點(diǎn)調(diào)度時(shí)使用。

labels

標(biāo)簽:用于為服務(wù)組件自定義標(biāo)簽以被選擇器使用。

volumes

存儲(chǔ)卷:用于定義不被 Rainbond 管理的卷類(lèi)型的掛載。

volumeMounts

掛載卷:與 volumes 搭配使用,將卷掛載給容器。

affinity

親和性:更高級(jí)的調(diào)度方式,包括節(jié)點(diǎn)親和性和Pod親和性。

tolerations

容忍度:與節(jié)點(diǎn)污點(diǎn)搭配使用,具備指定容忍度的Pod才可以調(diào)度到指定節(jié)點(diǎn)上。

serviceAccountName

服務(wù)賬戶名:為服務(wù)組件指定某個(gè)已存在的SA,使對(duì)應(yīng)的Pod具備某些權(quán)限。

privileged

特權(quán)模式:名副其實(shí)的配置,非必要不開(kāi)啟。

env

環(huán)境變量:用于定義不被 Rainbond 管理的環(huán)境變量,支持引用操作。

值得注意的是,擴(kuò)展后的 RAM 模型,依然能夠發(fā)布為應(yīng)用模板,供后續(xù)一鍵安裝/升級(jí)/交付整套業(yè)務(wù)系統(tǒng)之用。

導(dǎo)入已有Kubernetes應(yīng)用的測(cè)試和實(shí)踐

以下測(cè)試是基于Rainbond v5.8進(jìn)行的,為了測(cè)試 Kubernetes 已有應(yīng)用導(dǎo)入,我計(jì)劃使用已經(jīng)在 wp 命名空間中部署完成的 Wordpress 建站系統(tǒng)來(lái)進(jìn)行一次導(dǎo)入測(cè)試。這套系統(tǒng)由以下資源組成:

[root@localhost ~]# kubectl get secret,service,deployment,statefulset,pod -n wp
NAME TYPE DATA AGE
secret/default-token-nq5rs kubernetes.io/service-account-token 3 27m
secret/mysql-secret Opaque 2 27m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/wordpress NodePort 10.43.157.40 8080:30001/TCP 5m19s
service/wp-mysql ClusterIP 10.43.132.223 3306/TCP 27m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/wordpress 1/1 1 1 5m19s
NAME READY AGE
statefulset.apps/wp-mysql 1/1 27m
NAME READY STATUS RESTARTS AGE
pod/wordpress-66bc999449-qv97v 1/1 Running 0 5m19s
pod/wp-mysql-0 1/1 Running 0 27m

訪問(wèn) Rainbond ,在集群處選擇導(dǎo)入,在這個(gè)頁(yè)面中,可以選擇要導(dǎo)入資源的命名空間 ??wp??。平臺(tái)會(huì)根據(jù) label 來(lái)對(duì)資源進(jìn)行分組:

Rainbond 根據(jù)資源定義的 label 來(lái)劃分應(yīng)用,如符合 app.kubernetes.io/name:wp-mysql 或  app:wordpress 的資源,會(huì)分布到圖中兩個(gè)不同的應(yīng)用中去,而不具備上述 label 的資源,則會(huì)統(tǒng)一劃分到一個(gè)未分組的應(yīng)用中去。應(yīng)用的劃分非常關(guān)鍵,因?yàn)閼?yīng)用模型的高級(jí)應(yīng)用是針對(duì)一個(gè)應(yīng)用整體而言的,所以導(dǎo)入之前一定要仔細(xì)規(guī)劃,添加合理的 label。

導(dǎo)入過(guò)程中,Rainbond 將不同的屬性,交由擴(kuò)展后的模型管理,大部分運(yùn)維操作已經(jīng)變得很易用了,而另一部分,則交由 Kubernetes 屬性頁(yè)面進(jìn)行管理。

一旦完成導(dǎo)入,wordpress 和 wp-mysql 兩個(gè)應(yīng)用就可以使用 Rainbond 進(jìn)行管理了。

  • 端口管理

wordpress 在導(dǎo)入之前依靠 NodePort 類(lèi)型的 Service 對(duì)外暴露,但導(dǎo)入 Rainbond 管理之后,就可以借助網(wǎng)關(guān)對(duì)外暴露自己的 80 端口了。需要注意的是,你必須重啟一次 wordpress 服務(wù)組件,來(lái)讓訪問(wèn)策略生效。

對(duì)于某些業(yè)務(wù)而言,訪問(wèn)的入口不支持動(dòng)態(tài)指定,這就需要業(yè)務(wù)側(cè)也做出一些改動(dòng),來(lái)適應(yīng)新的訪問(wèn)入口。對(duì)于 Wordpress 而言,需要重新定義常規(guī)選項(xiàng)中的站點(diǎn)地址。

  • 存儲(chǔ)管理

我部署的這套 wordpress 系統(tǒng),所有組件的存儲(chǔ)都使用的 hostpath 模式,這種配置雖說(shuō)簡(jiǎn)單,但是并不適用于 Pod 可能發(fā)生漂移的大規(guī)模 Kubernetes 環(huán)境。Rainbond 部署后,會(huì)提供易用的共享存儲(chǔ),這種存儲(chǔ)支持多個(gè) Pod 間共享數(shù)據(jù),以及 Pod 跨主機(jī)的遷移。原有的 hostpath 存儲(chǔ),可以重新進(jìn)行定義。重新定義后的存儲(chǔ)路徑會(huì)變?yōu)榭?,所以記得找到新舊不同的路徑,進(jìn)行一次數(shù)據(jù)遷移。

實(shí)際意義

通過(guò)應(yīng)用模型,讓IT 技術(shù)人員可以更多的關(guān)心業(yè)務(wù)本身,而不是底層復(fù)雜工具的使用問(wèn)題。最終的效果是簡(jiǎn)化操作成本和理解難度,讓Kubernetes更加容易落地。


當(dāng)前標(biāo)題:如何不編寫(xiě)YAML管理Kubernetes應(yīng)用?
網(wǎng)頁(yè)路徑:http://www.dlmjj.cn/article/djhdegc.html