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

容器/Kubernetes開發者工作內容有哪些?

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

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

我會從以下幾個維度來跟你分享下 Kubernetes 開發的內容:

  • 產品類型;
  • 工作內容;

提示:因為 Kubernetes 開發涉及到的產品、內容和細節太多,文章有不對的地方,還請多包容。

一、產品類型

圍繞著 Kubernetes 有很多產品線類型,例如:

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

二、工作內容

1. 集群生命周期管理

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

(1) 集群生命周期管理

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

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

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

(2) 節點生命周期管理

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

節點生命周期管理底層還會涉及到非常多的工作,例如:節點初始化架構設計、節點初始化相關組件開發、虛擬機的 CURD 等。

2. Workload 生命周期管理

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

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

底層是通過調用 client-go 來訪問 Kubernetes 集群中的對應資源的,所以會涉及到管控面組件開發和 client-go 相關接口的調用。

3. 網絡相關能力開發

企業通常都有自己的內外網路環境。在 Kubernetes 集群中,也需要將 Kubernetes 的整個網絡環境跟企業自己的內外網絡環境進行適配和打通。所以,容器/Kubernetes 開發中,還需要開發網絡相關組件,并對網絡進行適配。

網絡開發一般包括以下內容:

  • 網絡適配:跟網絡團隊合作,一起打通整個 Kubernetes 的網絡環境;
  • CNI 組件的開發和適配:例如:Cillium 組件的魔改和適配;

上面介紹了網絡基礎組件的開發和適配。此外,Kubernetes 集群中的網絡能力開發還涉及到 Service、Ingress、Egress 等能力的開發。例如:負載均衡組件的開發,通常會開發一個 service-controller,通過 List-Watch Kubernetes 集群中的 Service 資源,調用負載均衡相關的 API 接口,創建內外網負載均衡器。并將 Service、Pod 等信息上報給負載均衡中心;

4. 彈性伸縮伸縮

設計對 Kubernetes 內資資源 HPA、VPA、EHPA 組件的 CURD 操作。底層是通過調用 client-go 來訪問 Kubernetes 集群中的對應資源的。

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

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

5. 配置管理

主要是對 Kubernetes 內置資源 ConfigMap、Secret 資源的 CURD 操作。底層是通過調用 client-go 來訪問 Kubernetes 集群中的對應資源的。

6. Kubernetes 授權管理

主要設計對 Role、ClusterRole、RoleBinding、ClusterRoleBinding、ServiceAccount 等 Kubernetes 內置資源的 CURD。

Role、ClusterRole、ServiceAccount 中的授權主體通常需要跟企業內部的授權主體進行適配和打通。

底層是通過調用 client-go 來訪問 Kubernetes 集群中的對應資源的,所以會涉及到管控面組件開發和 client-go 相關接口的調用。

7. AddOn 管理

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

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

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

8. 存儲能力開發

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

StorageClass 的創建,可以選擇企業內部支持的存儲類型。

底層是通過調用 client-go 來訪問 Kubernetes 集群中的對應資源的,所以會涉及到管控面組件開發和 client-go 相關接口的調用。

另外,企業通常都會有自己的存儲產品。Kubernetes 集群中還需要支持企業自己的存儲產品。因此需要開發 CSI 插件。

9. 事件/日志

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

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

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

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

10. 集群審計

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

11. Helm 能力開發

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

12. 容器運行時組件的開發

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

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

13. 調度器適配

Kubernetes 調度器隨著 Kubernetes 能力的迭代目前已經很強大了。例如從架構上支持 scheduler framework 機制,Kubernetes 官方 Repo 或者 Kubernetes 社區也提供了各種各樣的調度器插件。

但在企業中,對調度器的訴求還遠遠未被滿足。例如:企業以為自身需要,會有各種各樣的調度場景需求;企業的調度插件需要適配企業內部的基架環境,例如:metrics 系統、地域/可用區環境等。

因此 Kubernetes 開發中,還有一個很大的工作內容是調度器開發。調度器開發通常包括以下工作內容:

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

14. 集群穩定性保障

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

Kubernetes 集群的穩定性保障氛圍很多類別,也有很多細節。這里不會一一列出,僅列出一些核心的開發內容:

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

15. 集群混部

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

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

(1) 多租戶與資源管理

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

功能特點:

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

關鍵工作:

  • 配置和管理各個命名空間的資源配額,避免某個租戶的應用占用過多資源。
  • 設計和實現細粒度的授權策略,確保敏感資源和應用受到適當的訪問控制。

16. FinOps

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

FinOps 的實現設計到多個關鍵組件、產品的開發例如:可觀測平臺、調度器適配、Request/Limit 推薦等。這就涉及到相關的開發工作。

17. 自定義異構資源

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

功能特點:

  • 資源擴展:支持用戶自定義資源的定義與管理,使得 Kubernetes 能夠調度和管理非標準資源。
  • 靈活性:可部署在需要特定硬件加速的應用,例如機器學習、圖像處理等場景。

關鍵工作:

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

當前自定義異構資源中,最重要的是 GPU。GPU 調度主要用來滿足 AI 訓練任務。伴隨而來的是對 AI 場景下的調度策略優化和開發、GPU 虛擬化、GPU 池化等一整套能力的開發。

18. 云原生產品

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

上面這些產品的開發,也依賴于 Kubernets 編程能力,也是 Kubernetes 開發者的從業方向之一。

責任編輯:趙寧寧 來源: 令飛編程
相關推薦

2024-02-01 09:37:42

Kubernetes服務網格? 命令

2021-09-04 19:54:40

開發者技術管理

2023-08-28 13:34:00

KuberneteIDP安全

2021-04-14 18:54:20

Kubernetes開發工具開發

2012-06-13 01:23:30

開發者程序員

2012-01-05 15:52:47

移動游戲開發者

2021-09-18 15:06:11

華為應用市場

2011-04-26 10:19:46

BlackBerry

2015-11-18 19:03:27

開發者Linux容器

2015-11-19 14:48:01

LinuxLinux容器虛擬機

2018-06-28 13:17:35

云平臺云環境容器

2014-05-04 10:58:19

開發者廣告

2022-06-15 09:01:57

開發Java

2013-03-11 11:20:05

2017-03-31 20:16:53

華為開發者聯盟

2011-08-10 15:40:53

2011-12-28 15:16:33

Sencha開發者負責人

2013-07-16 10:49:17

游戲開發手機游戲

2012-06-27 16:38:16

獨立開發者協調工作與生活

2013-10-30 12:51:34

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区日韩精品 | 久久激情视频 | 一级黄色片在线看 | 四虎在线视频 | 亚洲va欧美va天堂v国产综合 | 中文字幕一二三区 | 日韩一区二区在线观看视频 | 在线中文视频 | 欧美成人a∨高清免费观看 91伊人 | 天天干狠狠操 | 久久久日韩精品一区二区三区 | 夜夜骑首页 | 99久久精品免费看国产高清 | 欧美精品乱码久久久久久按摩 | 色综合视频| 国产精品2 | 国产一区二区三区四区三区四 | 一区二区精品 | 热久久性| 中文字幕在线免费观看 | 国产精品精品久久久 | 日韩有码一区 | 热久久性| 日韩影院一区 | 一区二区日本 | 欧美视频网 | 天天操天天天干 | 国产人成精品一区二区三 | 亚洲高清在线 | 亚洲精品久久久 | 7777奇米影视| av在线免费看网址 | 一区二区三区影院 | 欧美一区二区三区大片 | 久久大陆 | 福利视频亚洲 | 成人在线播放 | 一级毛片网 | 久久久久久av | 色在线免费视频 | 日韩免费网站 |