成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

容器/Kubernetes開發(fā)者工作內(nèi)容有哪些?

開發(fā) 云原生
不少人會覺得 Kubernetes 開發(fā)偏運維開發(fā),其實不是的,Kubernetes 開發(fā)也是一個純純的研發(fā)崗位。今天就來分享下 Kuberentes 開發(fā)中涉及到的工作內(nèi)容,供你未來選擇時參考。

近期我的知識星球,有一些學(xué)員在問容器/Kubernetes 開發(fā)一般有哪些工作內(nèi)容。不少人會覺得 Kubernetes 開發(fā)偏運維開發(fā)。其實不是的,Kubernetes 開發(fā)也是一個純純的研發(fā)崗位。今天就來分享下 Kuberentes 開發(fā)中涉及到的工作內(nèi)容,供你未來選擇時參考。

我會從以下幾個維度來跟你分享下 Kubernetes 開發(fā)的內(nèi)容:

  • 產(chǎn)品類型;
  • 工作內(nèi)容;

提示:因為 Kubernetes 開發(fā)涉及到的產(chǎn)品、內(nèi)容和細(xì)節(jié)太多,文章有不對的地方,還請多包容。

一、產(chǎn)品類型

圍繞著 Kubernetes 有很多產(chǎn)品線類型,例如:

  • 容器云平臺: Kubernetes 開發(fā)中最基礎(chǔ)的平臺,通常包括:集群生命周期管理、Kubernetes 資源生命周期管理、授權(quán)、網(wǎng)絡(luò)、存儲等能力。
  • 多集群管理(混合云、分布式云): 單個集群的 Kubenretes 能夠接納的 Node 數(shù)一定是有限的,當(dāng)單集群不能容納更多節(jié)點,但又需要更多節(jié)點的時候,只能拆分集群。拆分集群就會帶來很多問題,例如:應(yīng)用的分發(fā)、應(yīng)用更新、監(jiān)控、日志等的查看等。這時候,就需要一個具備統(tǒng)一管控能力的多集群管理平臺,能夠統(tǒng)一管控、調(diào)度多個集群。該平臺主要聚焦在多集群應(yīng)用分發(fā)能力的建設(shè);
  • Serverless Kubernetes: Serverless Kubernetes 是 Kubernetes 集群是 Serverless 理念的一個落地產(chǎn)品形態(tài)。Serverless Kubernetes 集群核心目的是將 Kubernetes 的 Master 節(jié)點 Serverless 化。也就是讓用戶,不用關(guān)注 Kubernetes 集群控制面組件的運維,這部分運維交給云廠商來負(fù)責(zé)。以此,簡化 Kubernetes 集群的運維復(fù)雜度;
  • Serverless Pod(彈性容器): 傳統(tǒng) Kubernetes 架構(gòu)一般以節(jié)點為中心,需要基于云服務(wù)器等資源節(jié)點搭建集群,并圍繞節(jié)點進行運維管理。隨著業(yè)務(wù)規(guī)模的擴大和節(jié)點數(shù)的增加,這種架構(gòu)在容器應(yīng)用的部署和運行等方面往往存在諸多局限性,例如節(jié)點運維復(fù)雜、資源利用率低、資源擴容速度慢等問題。Serverless Pod 底層基于 Virtual Kubelet 技術(shù),能夠讓用戶快速的庫容一個 Pod,而不用關(guān)注底層節(jié)點的購買、創(chuàng)建和初始化;
  • 邊緣容器: 邊緣計算容器解決方案使用戶能夠在邊緣設(shè)備上部署和管理容器化應(yīng)用,以減少延遲并提高響應(yīng)速度。
  • 鏡像倉庫: 鏡像倉庫用于存儲和管理 Docker 鏡像,并提供安全性、訪問控制和快速部署。
  • Serverless 云函數(shù): 以函數(shù)形態(tài)運行應(yīng)用。以此,為基礎(chǔ)提供整個無服務(wù)器運行環(huán)境;
  • 異步任務(wù)平臺: 基于 Kubernetes CronJob/Job 封裝的一個平臺,用來運行異步任務(wù),任務(wù)以 Pod 的形式運行。

二、工作內(nèi)容

1. 集群生命周期管理

集群 CURD、節(jié)點 CURD、Workerload(Deployment、StatefulSet、DaemonSet、Job、CronJob) CURD 等。

(1) 集群生命周期管理

集群生命周期管理包括:集群創(chuàng)建、集群升級、集群刪除、集群查詢等。

集群創(chuàng)建中,需要去申請很多資源,例如:Etcd、VPC、云盤、虛擬機、負(fù)載均衡等。公有云環(huán)境下,是通過調(diào)用云 API 接口來申請創(chuàng)建的。但如果是私有云,可能沒有相關(guān)的 API 接口供調(diào)用。這時候,還會涉及到集群部署平臺的開發(fā)。

目前集群初始化有很多種方法,例如:可以從 0 到 1 適配一套汲取初始化流程,但目前用的比較多的是使用 cluster-api 來創(chuàng)建一套集群。

(2) 節(jié)點生命周期管理

節(jié)點生命周期管理包括對節(jié)點的:增加、刪除、添加已有節(jié)點、查詢、升級等操作。在公有云廠商中,例如:阿里云、騰訊云,為了提高對節(jié)點的管理和運維效率,通常會基于節(jié)點抽象出一個節(jié)點池的概念。所以,節(jié)點管理中也會涉及到節(jié)點池的管理。

節(jié)點生命周期管理底層還會涉及到非常多的工作,例如:節(jié)點初始化架構(gòu)設(shè)計、節(jié)點初始化相關(guān)組件開發(fā)、虛擬機的 CURD 等。

2. Workload 生命周期管理

Workload 管理主要包括:Deployment、StatefulSet、DaemonSet、Job、CronJob 等資源的 CURD。在公有云前端控制臺,通常會將這些資源中的核心參數(shù)暴露給控制臺界面,方便用戶直接通過界面進行操作,降低負(fù)載創(chuàng)建難度,提高負(fù)載創(chuàng)建效率。

在很多 Kubernetes 集群中,還會有一個專門的 Pod 管理頁面,專門用來管理 Pod,例如:Pod 的日志、事件、登錄等操作。因此也會涉及到相關(guān)功能的開發(fā),例如:登錄 Pod 功能的組件開發(fā)。

底層是通過調(diào)用 client-go 來訪問 Kubernetes 集群中的對應(yīng)資源的,所以會涉及到管控面組件開發(fā)和 client-go 相關(guān)接口的調(diào)用。

3. 網(wǎng)絡(luò)相關(guān)能力開發(fā)

企業(yè)通常都有自己的內(nèi)外網(wǎng)路環(huán)境。在 Kubernetes 集群中,也需要將 Kubernetes 的整個網(wǎng)絡(luò)環(huán)境跟企業(yè)自己的內(nèi)外網(wǎng)絡(luò)環(huán)境進行適配和打通。所以,容器/Kubernetes 開發(fā)中,還需要開發(fā)網(wǎng)絡(luò)相關(guān)組件,并對網(wǎng)絡(luò)進行適配。

網(wǎng)絡(luò)開發(fā)一般包括以下內(nèi)容:

  • 網(wǎng)絡(luò)適配:跟網(wǎng)絡(luò)團隊合作,一起打通整個 Kubernetes 的網(wǎng)絡(luò)環(huán)境;
  • CNI 組件的開發(fā)和適配:例如:Cillium 組件的魔改和適配;

上面介紹了網(wǎng)絡(luò)基礎(chǔ)組件的開發(fā)和適配。此外,Kubernetes 集群中的網(wǎng)絡(luò)能力開發(fā)還涉及到 Service、Ingress、Egress 等能力的開發(fā)。例如:負(fù)載均衡組件的開發(fā),通常會開發(fā)一個 service-controller,通過 List-Watch Kubernetes 集群中的 Service 資源,調(diào)用負(fù)載均衡相關(guān)的 API 接口,創(chuàng)建內(nèi)外網(wǎng)負(fù)載均衡器。并將 Service、Pod 等信息上報給負(fù)載均衡中心;

4. 彈性伸縮伸縮

設(shè)計對 Kubernetes 內(nèi)資資源 HPA、VPA、EHPA 組件的 CURD 操作。底層是通過調(diào)用 client-go 來訪問 Kubernetes 集群中的對應(yīng)資源的。

HPA/VPA/EHPA 用來對 Pod 進行彈性伸縮。在 Kuberntes 集群中,還會涉及到對 Node 的彈性伸縮。目前對 Node 的彈性伸縮基本都是基于 Cluster Autoscaler 來進行開發(fā)的。Cluster Autoscaler 會調(diào)用節(jié)點的伸縮組。

所以彈性伸縮能力還需要 Kubernetes 去適配 Cluster Autoscaler 組件以及跟節(jié)點的伸縮組進行交互(接口調(diào)用)。

5. 配置管理

主要是對 Kubernetes 內(nèi)置資源 ConfigMap、Secret 資源的 CURD 操作。底層是通過調(diào)用 client-go 來訪問 Kubernetes 集群中的對應(yīng)資源的。

6. Kubernetes 授權(quán)管理

主要設(shè)計對 Role、ClusterRole、RoleBinding、ClusterRoleBinding、ServiceAccount 等 Kubernetes 內(nèi)置資源的 CURD。

Role、ClusterRole、ServiceAccount 中的授權(quán)主體通常需要跟企業(yè)內(nèi)部的授權(quán)主體進行適配和打通。

底層是通過調(diào)用 client-go 來訪問 Kubernetes 集群中的對應(yīng)資源的,所以會涉及到管控面組件開發(fā)和 client-go 相關(guān)接口的調(diào)用。

7. AddOn 管理

Kubernetes 提供了很強大的擴展能力,其中一個很重要的擴展點便是支持 AddOn。所謂的 AddOn,其實就是 Kubernetes 集群的一個插件,該插件通常是一個 Operator,通過 Helm 或者類似 kubectl apply -f addon.yaml 這種方式直接部署在 Kubernetes 集群中。

AddOn 可以實現(xiàn)各種各樣的功能,依次增強 Kubernetes 的能力,例如:HPC(定時HPA組件)、存儲類的 AddOn(安裝后,能讓集群支持某個存儲類型的掛載、解綁等)、NPD 等。

作為一個 Kubernetes 開發(fā)人員,可能需要根據(jù)需要開發(fā)一個實用的 AddOn(Operator)。另外,AddOn 的 CURD 也是其中一個開發(fā)類型。

8. 存儲能力開發(fā)

通常會涉及到對 Kubernetes 內(nèi)置資源 StorageClass、PersistentVolumeClaim、PersistentVolume 資源的適配。

StorageClass 的創(chuàng)建,可以選擇企業(yè)內(nèi)部支持的存儲類型。

底層是通過調(diào)用 client-go 來訪問 Kubernetes 集群中的對應(yīng)資源的,所以會涉及到管控面組件開發(fā)和 client-go 相關(guān)接口的調(diào)用。

另外,企業(yè)通常都會有自己的存儲產(chǎn)品。Kubernetes 集群中還需要支持企業(yè)自己的存儲產(chǎn)品。因此需要開發(fā) CSI 插件。

9. 事件/日志

Kubernetes 中運行的各類資源都會產(chǎn)生日志,這些日志根據(jù)功能類別可以分為不同的日志類型:

  • Kubernetes 集群控制面組件日志:kube-apiserver、kube-controller-manager、kube-scheduler 日志等;
  • Kubernetes Pod 日志:容器業(yè)務(wù)進程產(chǎn)生的日志;
  • Event:Kubernetes 集群中各類資源產(chǎn)生的事件。

上述日志的量級很多時候是無法管控的,所以需要將上述日志轉(zhuǎn)存到專用的日志平臺中,防止大量日志對 Kubernetes 集群帶來穩(wěn)定性隱患。如果想轉(zhuǎn)存日志,就需要涉及到日志采集組件的開發(fā)、跟日志平臺的對接等開發(fā)工作。

因為 Etcd 不適合存儲大量的日志事件,所以 Kuberneters 的 Event 在集群中的存活時間默認(rèn)是 1 個小時。但是 Eevent 又作為集群故障排障的一個主要日志參考。為了能夠?qū)?Eevent 這類關(guān)鍵的日志信息持久化報錯,方便日后的排障。還需要進行 Eevent 持久化相關(guān)功能的開發(fā)。

10. 集群審計

為了提高整個 Kubernetes 集群的安全能力,需要對集群中的所有操作進行審計。Kubernetes 本身基本設(shè)計能力,在 Kubernetes 開發(fā)中,通常需要借助于 Kubernetes 自身的設(shè)計能力,將其中的審計日志上報到企業(yè)內(nèi)部的審計平臺,方便統(tǒng)一查看。所以,還會涉及到對企業(yè)審計接口的調(diào)用適配和 Kubernetes 審計能力的集成適配。

11. Helm 能力開發(fā)

Kubernetes 集群目前標(biāo)準(zhǔn)的服務(wù)編排機制是使用 Helm 進行服務(wù)編排、部署。所以,還需要適配整個 Helm 能力。例如開發(fā) Helm 倉庫,Kubernetes 集群適配并支持 Hem 部署方式等。

12. 容器運行時組件的開發(fā)

根據(jù)需要還需要開發(fā)、適配、修復(fù)底層的容器運行時 CRI 組件。當(dāng)社區(qū)支持多種 CRI,例如:CRI-O、Docker、Containerd 等。目前用的比較多的是 Containerd。

底層的容器運行常常會因為操作系統(tǒng)環(huán)境、Pod 業(yè)務(wù)進程等原因引入一些故障,這些故障的排查、修復(fù)、恢復(fù)等也是 Kubernetes 開發(fā)者的其中一個工作內(nèi)容。容器運行時的工作展開需要開發(fā)者具備較強的 cgroup、namespace 開發(fā)能力。

13. 調(diào)度器適配

Kubernetes 調(diào)度器隨著 Kubernetes 能力的迭代目前已經(jīng)很強大了。例如從架構(gòu)上支持 scheduler framework 機制,Kubernetes 官方 Repo 或者 Kubernetes 社區(qū)也提供了各種各樣的調(diào)度器插件。

但在企業(yè)中,對調(diào)度器的訴求還遠遠未被滿足。例如:企業(yè)以為自身需要,會有各種各樣的調(diào)度場景需求;企業(yè)的調(diào)度插件需要適配企業(yè)內(nèi)部的基架環(huán)境,例如:metrics 系統(tǒng)、地域/可用區(qū)環(huán)境等。

因此 Kubernetes 開發(fā)中,還有一個很大的工作內(nèi)容是調(diào)度器開發(fā)。調(diào)度器開發(fā)通常包括以下工作內(nèi)容:

  • 調(diào)度器開發(fā):借助于 scheduler framework 機制,開發(fā)企業(yè)自己的調(diào)度器,然后以默認(rèn)調(diào)度器或者多調(diào)度器的方式部署在 Kubernetes 集群中;
  • 調(diào)度插件開發(fā):開發(fā)各種企業(yè)需要的調(diào)度器插件。例如:針對 AI 場景的 Gang 調(diào)度器、GPU 調(diào)度器適配等;

14. 集群穩(wěn)定性保障

整個 Kubernetes 集群中運行著業(yè)務(wù)的重要 Pod 等核心資源。這些資源如果出現(xiàn)故障,就會影響到業(yè)務(wù)的正常運行。Kubernetes 集群的穩(wěn)定性保障也是 Kubernetes 開發(fā)者的重要工作之一。

Kubernetes 集群的穩(wěn)定性保障氛圍很多類別,也有很多細(xì)節(jié)。這里不會一一列出,僅列出一些核心的開發(fā)內(nèi)容:

  • 底層核心組件穩(wěn)定性保障:通過開發(fā)、適配、監(jiān)控告警、日志等手段,保障底層 Etcd、kube-apiserver、kubelet 等核心管控面組件的穩(wěn)定性;
  • 穩(wěn)定性平臺構(gòu)建:開發(fā)類似云原生可觀測平臺,監(jiān)控 Kubernetes 集群中的 Node、Pod、Event、Metrics 等資源的日志、狀態(tài)、事件等,將這些監(jiān)控內(nèi)容進行統(tǒng)一收集和可視化,并基于這些內(nèi)容判斷集群的穩(wěn)定性,給出最終狀態(tài)、建議和修復(fù)方法。在這類穩(wěn)定性平臺中,也可以根據(jù)故障類型,添加自動修復(fù)機制,達到故障探測、自動修復(fù)一條龍服務(wù)。
  • 集群穩(wěn)定性:保障整個集群的資源利用率,規(guī)避高負(fù)載帶來的各種業(yè)務(wù)故障。這會涉及到 Kubernetes 調(diào)度器、descheduler 等組件的開發(fā)、適配。

15. 集群混部

企業(yè)為了降低成本,通常需要提高 Kubernetes 集群層面的資源利用率。提高資源利用率其中一個有效的手段是實現(xiàn)在離線業(yè)務(wù)混部署。例如:將 AI 訓(xùn)練的 Pod 部署到在線業(yè)務(wù)的節(jié)點上。

要實現(xiàn)在離線混布功能就需要 Kubernetes 開發(fā)者開發(fā)在離線調(diào)度插件、并通過優(yōu)化底層的 namespace、cgroup、container runtime、kernel 等運行時組件,來提高整個底層資源的隔離程度。集群混布設(shè)計到的點很多,例如還需要設(shè)計對租戶、作業(yè)資源的請求和限額等。

(1) 多租戶與資源管理

在 Kubernetes 中,多租戶支持允許多個用戶(租戶)在同一集群中獨立運行他們的應(yīng)用,確保隔離性和資源的公平使用。權(quán)限管理則通過身份驗證和授權(quán)來控制不同租戶對資源的訪問。

功能特點:

  • 命名空間:Kubernetes 使用命名空間(Namespaces)來實現(xiàn)多租戶環(huán)境中的資源隔離。
  • 資源配額和限額:可以為每個命名空間設(shè)置資源配額(Quota)和限制(Limit),確保不同租戶的資源使用不會互相干擾。

關(guān)鍵工作:

  • 配置和管理各個命名空間的資源配額,避免某個租戶的應(yīng)用占用過多資源。
  • 設(shè)計和實現(xiàn)細(xì)粒度的授權(quán)策略,確保敏感資源和應(yīng)用受到適當(dāng)?shù)脑L問控制。

16. FinOps

云原生的目的是降本增效。所以這幾年 FinOps 的理念也很火。相關(guān)的產(chǎn)品、功能、特性不斷的被企業(yè)的 Kubernetes 平臺集成。

FinOps 的實現(xiàn)設(shè)計到多個關(guān)鍵組件、產(chǎn)品的開發(fā)例如:可觀測平臺、調(diào)度器適配、Request/Limit 推薦等。這就涉及到相關(guān)的開發(fā)工作。

17. 自定義異構(gòu)資源

Kubernetes 可以適配多種類型的計算資源,其中包括 CPU、GPU、FPGA等異構(gòu)計算資源。自定義異構(gòu)資源使得 Kubernetes 可以靈活適配各種實際需求。

功能特點:

  • 資源擴展:支持用戶自定義資源的定義與管理,使得 Kubernetes 能夠調(diào)度和管理非標(biāo)準(zhǔn)資源。
  • 靈活性:可部署在需要特定硬件加速的應(yīng)用,例如機器學(xué)習(xí)、圖像處理等場景。

關(guān)鍵工作:

  • 開發(fā)和實現(xiàn)自定義資源定義(CRD),使得 Kubernetes 能夠理解并處理這些資源。
  • 實現(xiàn)對新資源的監(jiān)控和管理功能,確保這些異構(gòu)資源能夠有效利用并集成到 Kubernetes 工作負(fù)載調(diào)度中。通常涉及到 Device Plugin 的開發(fā)和適配。

當(dāng)前自定義異構(gòu)資源中,最重要的是 GPU。GPU 調(diào)度主要用來滿足 AI 訓(xùn)練任務(wù)。伴隨而來的是對 AI 場景下的調(diào)度策略優(yōu)化和開發(fā)、GPU 虛擬化、GPU 池化等一整套能力的開發(fā)。

18. 云原生產(chǎn)品

除了上面這些跟 Kubernetes 平臺強耦合的功能開發(fā)之外。還有一些依賴于 Kubernetes 編程能力的其他平臺開發(fā)。例如:云原生 Etcd、云原生 Prometheus、DevOps 平臺等。

上面這些產(chǎn)品的開發(fā),也依賴于 Kubernets 編程能力,也是 Kubernetes 開發(fā)者的從業(yè)方向之一。

責(zé)任編輯:趙寧寧 來源: 令飛編程
相關(guān)推薦

2024-02-01 09:37:42

Kubernetes服務(wù)網(wǎng)格? 命令

2021-09-04 19:54:40

開發(fā)者技術(shù)管理

2023-08-28 13:34:00

KuberneteIDP安全

2021-04-14 18:54:20

Kubernetes開發(fā)工具開發(fā)

2012-01-05 15:52:47

移動游戲開發(fā)者

2011-04-26 10:19:46

BlackBerry

2012-06-13 01:23:30

開發(fā)者程序員

2015-11-19 14:48:01

LinuxLinux容器虛擬機

2021-09-18 15:06:11

華為應(yīng)用市場

2015-11-18 19:03:27

開發(fā)者Linux容器

2014-05-04 10:58:19

開發(fā)者廣告

2022-06-15 09:01:57

開發(fā)Java

2017-03-31 20:16:53

華為開發(fā)者聯(lián)盟

2018-06-28 13:17:35

云平臺云環(huán)境容器

2013-03-11 11:20:05

2012-06-27 16:38:16

獨立開發(fā)者協(xié)調(diào)工作與生活

2013-07-16 10:49:17

游戲開發(fā)手機游戲

2011-03-23 16:05:48

微軟

2022-05-31 17:36:25

技術(shù)面試編程

2011-08-10 15:40:53

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美中文一区 | 日本午夜网站 | 黄色大片网 | 日韩成人在线播放 | 综合九九 | 91在线视频免费观看 | 日韩有码一区 | www.色综合 | 中文字幕在线免费观看 | 欧美成人一区二区 | 精品国产乱码久久久久久闺蜜 | 亚洲激情综合 | 欧美一区二区三区在线 | 国产午夜精品一区二区三区四区 | www.色.com| 日韩欧美三级 | 中文精品视频 | 成人亚洲精品久久久久软件 | www.夜夜骑.com | 久久大香| 成年人在线观看视频 | 久久久久久综合 | 黄色香蕉视频在线观看 | 亚洲视频免费 | 中文字幕视频在线看5 | 综合视频在线 | 国产日韩欧美一区二区在线播放 | 亚洲成人在线免费 | 精品日韩一区二区三区av动图 | 99reav| 在线看h| 国产精品视频导航 | 国产一区在线看 | 久久蜜桃av一区二区天堂 | 香蕉久久网 | 成人激情视频免费在线观看 | 日韩午夜电影在线观看 | 日本人麻豆 | 91精品国产综合久久精品 | 69堂永久69tangcom | 谁有毛片|