偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何使用Kubernetes C#客戶端庫?

譯文
云計(jì)算
使用Kubernetes并非總是易事。本文幫你充分利用官方的.NET Kubernetes客戶端和.NET或.NET Core來構(gòu)建自己的Kubernetes工具。

【51CTO.com快譯】使用Kubernetes并非總是易事。管理集群和pod耗費(fèi)精力,雖然云托管的Kubernetes實(shí)例(比如Azure的AKS)可以替你處理許多繁重的任務(wù),但如果你在本地或自己的虛擬基礎(chǔ)架構(gòu)上運(yùn)行Kubernetes,就沒法使用它們。

[[319140]]

這時(shí)Kubernetes API有了用武之地,因?yàn)樗荎ubernetes在組件與外部控制器之間進(jìn)行聯(lián)系的手段。你可以使用kubectl命令行工具與API進(jìn)行聯(lián)系,也可以通過熟悉的REST(代表性狀態(tài)傳輸)調(diào)用來使用它。該API可幫助你管理工作負(fù)載、配置集群并管理應(yīng)用程序和集群的行為。

像這種充分利用REST的API是有用的工具,但如果你構(gòu)建自己的控制器,它們需要大量的開發(fā)。你可以借助其中一個(gè)官方的Kubernetes API客戶端(現(xiàn)在包括.NET庫),避免相關(guān)的開發(fā)開銷。除了官方客戶端外,還有非官方客戶端:如果官方版與你想要使用的方式不太相符,非官方版含有兩種替代的.NET實(shí)現(xiàn)。

.NET Kubernetes API客戶端庫簡(jiǎn)介

官方.NET客戶端庫在GitHub上就有,由包括微軟人員在內(nèi)的一群開源開發(fā)人員管理。最新版本是1.6.21,正在開發(fā)中??梢詮腉itHub下載代碼并自行編譯,也可以通過NuGet將該庫作為一個(gè)名為KubernetesClient的軟件包添加到應(yīng)用程序。安裝完畢后,使用加載客戶端的語句將庫添加到代碼中。該庫同時(shí)支持.NET和.NET Core,因此你可以用它編寫跨平臺(tái)應(yīng)用程序以及純Windows代碼。

安裝后,你可以開始使用該庫為Kubernetes構(gòu)建自己的工具,比如分布式應(yīng)用程序中響應(yīng)事件的特定事件處理程序。可從監(jiān)聽Kubernetes命名空間上的事件入手。你可以使用C#現(xiàn)有的異步編程功能、設(shè)置等待以監(jiān)視事件并將處理程序連接到結(jié)果來執(zhí)行此操作。 Kubernetes提供了自定義資源,可用于監(jiān)視你自己的事件,并管理自定義Kubernetes基礎(chǔ)架構(gòu)。

在Kubernetes端,先為代碼將使用的控制器構(gòu)建適當(dāng)?shù)淖远x資源定義。這將需要一個(gè)API版本以及資源所需的許多適當(dāng)?shù)脑獢?shù)據(jù)。這些元素映射到C# Kubernetes API中的對(duì)象,可以從對(duì)象中讀取。最后,你可以在資源的spec字段和status字段中添加自己的數(shù)據(jù),自定義資源類進(jìn)行管理。

一旦你有了這些元素,可以使用我們想要查看的資源的自定義資源定義將它們包裝在Kubernetes API客戶端實(shí)例中,從而構(gòu)建一個(gè)控制器。一旦你有了事件處理程序的結(jié)果,就可以在Kubernetes管理應(yīng)用程序的其余部分中使用它們,比如說編寫日志或修改Kubernetes實(shí)例。如果你的Kubernetes代碼將消息寫入到自定義資源的狀態(tài)字段,這樣的處理程序就可以根據(jù)需要生成新的pod。

創(chuàng)建Kubernetes客戶端

創(chuàng)建客戶端意味著為實(shí)例加載Kubernetes配置數(shù)據(jù)。你可以從默認(rèn)的本地kubeconfig、某個(gè)特定文件或目前集群執(zhí)行此操作。一旦有了作為配置對(duì)象的配置數(shù)據(jù),你可以使用已加載的配置創(chuàng)建客戶端。

這為你提供了可以與Kubernetes API調(diào)用一起使用的客戶端對(duì)象。庫的GitHub存儲(chǔ)庫中有一組實(shí)用的示例代碼。值得復(fù)制和運(yùn)行示例,因?yàn)樗鼈兛梢詭椭懔私馊绾问褂?NET Kubernetes客戶端、如何理解語法以及如何使用API​​以處理創(chuàng)建、讀取、更新和刪除等操作。

一個(gè)有用的示例是一個(gè)25行的小程序,該程序列出了pod中的命名空間。如果你構(gòu)建用于控制Kubernetes實(shí)例的應(yīng)用程序,列出所有目前的命名空間很重要,因?yàn)檫@些命名空間讓你可以將API定位于Kubernetes基礎(chǔ)架構(gòu)的特定部分。

處理Kubernetes API文檔

為了充分利用.NET API庫,最好花點(diǎn)時(shí)間閱讀Kubernetes API的文檔。雖然庫中有足夠的資源讓你入門,但是你需要深入研究官方文檔以獲得構(gòu)建自己的控制器所需的詳細(xì)信息。查看其他一些API庫實(shí)現(xiàn)的文檔有所幫助。將Java或Go調(diào)用轉(zhuǎn)換成C#并不難,你可以看看別人如何使用這些API。

另一個(gè)選擇是使用kubectl文檔來查看如何在代碼中使用關(guān)鍵的kubectl動(dòng)詞。在處理更復(fù)雜的任務(wù)之前,最好先使用API​​之類的工具來構(gòu)建可自動(dòng)執(zhí)行常見操作的應(yīng)用程序。在編寫任何新代碼之前,你應(yīng)該檢查現(xiàn)有的Kubernetes擴(kuò)展是否已經(jīng)實(shí)現(xiàn)了你所考慮的功能,比如KEDA(基于Kubernetes的事件驅(qū)動(dòng)型自動(dòng)擴(kuò)展)。

用你自己的代碼自動(dòng)執(zhí)行Kubernetes操作

管理Kubernetes可能很復(fù)雜,因此很高興看到一組官方庫可以幫助你構(gòu)建自己的工具以使用Kubernetes API。由于活躍的社區(qū)和非官方客戶端的相互交流,.NET API團(tuán)隊(duì)很顯然在竭力提供一種實(shí)用的框架用于構(gòu)建可與Kubernetes協(xié)同運(yùn)行的代碼,無論在.NET Framework上還是在.NET Core上。

如果我們要構(gòu)建在云原生平臺(tái)上運(yùn)行的分布式應(yīng)用程序所需要的新一代操作工具,這類工具必不可少。通過使用熟悉的語言,尤其是可訪問其他平臺(tái)庫的語言,我們就能構(gòu)建連接Azure Pipelines、GitHub和Kubernetes等平臺(tái)的工具,使我們目前手動(dòng)完成的大量工作實(shí)現(xiàn)自動(dòng)化。

原文標(biāo)題:How to use the Kubernetes C# client library,作者:Simon Bisson

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:未麗燕 來源: 51CTO.com
相關(guān)推薦

2009-08-07 13:55:35

Java客戶端類調(diào)用C# WebServi

2009-08-06 17:12:13

C# WebServi

2009-08-21 15:59:22

服務(wù)端與客戶端通信

2009-08-21 16:14:52

服務(wù)端與客戶端通信

2009-08-21 15:36:41

服務(wù)端與客戶端

2009-08-21 15:54:40

服務(wù)端與客戶端

2023-10-30 11:28:33

Kubernetes負(fù)載均衡

2023-11-03 08:15:27

PythonC#

2024-10-09 07:35:49

2024-09-14 08:16:24

Redis客戶端性能

2009-08-21 17:48:43

C#網(wǎng)絡(luò)編程

2009-08-21 17:53:25

C#網(wǎng)絡(luò)編程客戶端程序

2011-08-17 10:10:59

2010-12-17 10:16:33

OpenVAS

2011-08-25 10:37:15

leveldb的訪問封C#客戶端源碼

2024-12-23 06:00:00

TCPC#網(wǎng)絡(luò)

2011-04-07 09:33:01

Activex

2009-08-21 14:33:15

C#異步傳輸字符串

2024-05-06 08:00:00

C#IP地址

2012-10-11 17:02:02

IBMdw
點(diǎn)贊
收藏

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