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

你們對(duì)Kubernetes基礎(chǔ)架構(gòu)進(jìn)行自動(dòng)化測(cè)試了嗎?

開(kāi)發(fā) 架構(gòu) 自動(dòng)化
為什么要利用自動(dòng)化集群測(cè)試的原因有很多。Kubernetes是一個(gè)非常復(fù)雜的系統(tǒng),由多個(gè)獨(dú)立的組件組成。他們?cè)谝环N配置中能夠正常運(yùn)行并不意味著他們將在每種配置中都能完美的運(yùn)行。

[[335265]]
軟件測(cè)試

軟件開(kāi)發(fā)中的自動(dòng)化測(cè)試是保障軟件質(zhì)量不可或缺一部分。隨著容器化技術(shù)的不斷發(fā)展,Kubernetes已經(jīng)是事實(shí)上的標(biāo)準(zhǔn)。那么,通過(guò)自動(dòng)化的方式驗(yàn)證像Kubernetes這樣的基礎(chǔ)架構(gòu)的有效性,也越來(lái)越重要。這篇文章就介紹如何利用和擴(kuò)展現(xiàn)有工具來(lái)測(cè)試Kubernetes的集群。

為什么要測(cè)試?

為什么要利用自動(dòng)化集群測(cè)試的原因有很多。Kubernetes是一個(gè)非常復(fù)雜的系統(tǒng),由多個(gè)獨(dú)立的組件組成。他們?cè)谝环N配置中能夠正常運(yùn)行并不意味著他們將在每種配置中都能完美的運(yùn)行。

通過(guò)使用諸如kubeadm或kops之類(lèi)的安裝程序,或設(shè)置集群的其他方法,有多種啟動(dòng)Kubernetes集群的方法。對(duì)于每種方式,都有許多配置選項(xiàng),使兩個(gè)配置看起來(lái)不一樣。在用戶(hù)使用集群之前對(duì)其進(jìn)行測(cè)試,以確保我們的設(shè)置能夠按預(yù)期執(zhí)行,從而為用戶(hù)提供了一個(gè)可用的、有價(jià)值的平臺(tái)。但是,集群設(shè)置只是第一步,這是因?yàn)镵ubernetes的更新頻繁的發(fā)布。這個(gè)時(shí)候,測(cè)試就有其作用了,可用驗(yàn)證更新之后基本的集群功能仍然可用。

不過(guò),Kubernetes不僅僅是一個(gè)平臺(tái),它還是一個(gè)通過(guò)插件和附加組件進(jìn)行擴(kuò)展的框架。因此,沒(méi)有一個(gè)Kubernetes集群是以一種同樣的方式運(yùn)行。Kubernetes自己的測(cè)試不包括插件,因此測(cè)試范圍僅取決于插件開(kāi)發(fā)人員的測(cè)試。為了確保我們的插件不會(huì)相互干擾或影響到Kubernetes,我們還應(yīng)該在設(shè)置中對(duì)其進(jìn)行測(cè)試。對(duì)于您自己編寫(xiě)的插件來(lái)說(shuō)尤其如此。

一致性測(cè)試

Kubernetes一致性測(cè)試是測(cè)試Kubernetes核心功能的端到端測(cè)試用例的子集。用開(kāi)發(fā)人員小組的話(huà)就是,“目前的測(cè)試僅是測(cè)試可用,API的必須的功能”,通過(guò)這些測(cè)試的集群就是合格的,并且可以通過(guò)CNCF k8s合格工作組的認(rèn)證。

目前,能夠測(cè)試的功能包括創(chuàng)建API對(duì)象,在節(jié)點(diǎn)上啟動(dòng)容器和掛載基本卷以及對(duì)kubectl進(jìn)行測(cè)試。不包括可選功能,例如基于角色的訪問(wèn)控制,NetworkPolicy和PodSecurityPolicy。插件和附加組件也大多不受一致性測(cè)試的限制,例如,對(duì)DNS進(jìn)行測(cè)試,但某些測(cè)試僅隱含地要求使用Weave或Calico等插件進(jìn)行聯(lián)網(wǎng)。將來(lái),也可能會(huì)通過(guò)一致性測(cè)試配置文件對(duì)插件進(jìn)行測(cè)試,但目前需要分別對(duì)其進(jìn)行測(cè)試。

但是,他們對(duì)基本集群功能的驗(yàn)證使一致性測(cè)試成為測(cè)試集群的理想起點(diǎn)。要執(zhí)行這些測(cè)試,我們可以使用諸如kubetest或sonobuoy之類(lèi)的工具。

 

[[335266]]

kubetest

kubetest是Kubernetes管道中使用的CLI工具,用于運(yùn)行端到端的測(cè)試。由于一致性測(cè)試是端到端測(cè)試的子集,因此可以使用kubetest通過(guò)過(guò)濾要運(yùn)行的測(cè)試來(lái)在集群上運(yùn)行它們。

  1. # 安裝最新版本的kubetest 
  2. go get -u k8s.io/test-infra/kubetest 
  3. #測(cè)試需要匹配集群版本 
  4. K8S_VERSION=$(kubectl version -o json | jq -r '.serverVersion.gitVersion'
  5. # 設(shè)置該變量為y 
  6. export KUBERNETES_CONFORMANCE_TEST=y 
  7. # 顯示設(shè)置配置 
  8. export KUBECONFIG=”$HOME/.kube/config” 
  9. # 運(yùn)行該測(cè)試,skeleton是目前的集群 
  10. kubetest --provider=skeleton --test --test_args=”--ginkgo.focus=\[Conformance\]” --extract ${K8S_VERSION} 

當(dāng)下載并提取了我們集群版本所需的Kubernetes二進(jìn)制文件之后,將會(huì)執(zhí)行所有標(biāo)記為[Conformance]的測(cè)試。還可以使用并行測(cè)試來(lái)縮短測(cè)試運(yùn)行的時(shí)間。

  1. kubetest --provider=skeleton --test --ginkgo.parallel  
  2. --test_args=”--ginkgo.focus=\[Conformance\] --ginkgo.skip=\ 
  3. [Serial\]” --extract ${K8S_VERSION} 
  4. kubetest --provider=skeleton --test --test_args=”--ginkgo.focus=\ 
  5. [Serial\].*\[Conformance\]” --extract ${K8S_VERSION} 

您還可以只運(yùn)行一次kubetest extract,然后從Kubernetes目錄中執(zhí)行測(cè)試以加快后續(xù)執(zhí)行速度。為了進(jìn)行調(diào)試,您還可以告訴kubetest不要?jiǎng)h除測(cè)試失敗的名稱(chēng)空間:

  1. kubetest --provider=skeleton --test --test_args=”--ginkgo.focus=\ 
  2. [Conformance\] --delete-namespace-on-failure=false” --extract  
  3. ${K8S_VERSION} 

盡管kubetest具有高度可定制性,但它不一定是面向最終用戶(hù)的,其標(biāo)志很少被記錄且經(jīng)常引起混淆。為了簡(jiǎn)單地運(yùn)行一致性測(cè)試,Heptio發(fā)布了Sonobuoy,從而簡(jiǎn)化了此過(guò)程。

Sonobuoy

Sonobuoy是一種診斷工具,可以運(yùn)行Kubernetes一致性測(cè)試。它由一個(gè)CLI組成,該CLI啟動(dòng)一個(gè)pod來(lái)管理集群中的測(cè)試運(yùn)行,并讓您隨后檢索結(jié)果。它是一個(gè)簡(jiǎn)單的即用型解決方案,是用于運(yùn)行一致性測(cè)試的標(biāo)準(zhǔn)工具。

我們還可以選擇使用kubetest和Sonobuoy來(lái)運(yùn)行端到端測(cè)試套件的其他測(cè)試,以測(cè)試我們的某些插件。例如,如果我們要在集群中使用網(wǎng)絡(luò)策略,則可能應(yīng)該測(cè)試它們是否被強(qiáng)制執(zhí)行??梢允褂肧onobuoy進(jìn)行如下基本測(cè)試:

  1. # 執(zhí)行sonobuoy, 覆蓋掉默認(rèn)的skip和focus參數(shù) 
  2. sonobuoy run --e2e-focus="\[Feature:NetworkPolicy\]" --e2e-skip="" 

這些測(cè)試創(chuàng)建了受其限制的基本網(wǎng)絡(luò)策略和Pod,并驗(yàn)證了它們是否在集群中得到了強(qiáng)制執(zhí)行(請(qǐng)注意,它們并未驗(yàn)證集群中存在的策略是否按預(yù)期工作,因此可以使用netassert或illuminatio之類(lèi)的工具使用)。對(duì)于其他功能也存在類(lèi)似的測(cè)試。

編寫(xiě)自己的端到端測(cè)試

你也可以寫(xiě)自己的端到端測(cè)試用于集群的設(shè)置。這在運(yùn)行本地開(kāi)發(fā)的附件時(shí)特別有用,因?yàn)閱卧獪y(cè)試幾乎無(wú)法模仿正在運(yùn)行的Kubernetes集群的行為。要在Golang中開(kāi)發(fā)測(cè)試,可以使用Kubernetes本身的E2E框架。

如果您使用其他編程語(yǔ)言,則仍然可以使用kubernetes客戶(hù)端庫(kù),但是您必須自己編寫(xiě)一些樣板代碼,例如,用于設(shè)置和拆除測(cè)試名稱(chēng)空間。像pytest之類(lèi)的單元測(cè)試框架對(duì)于將測(cè)試用例以及運(yùn)行測(cè)試和收集結(jié)果分開(kāi)仍然很有用。

無(wú)論您是剛剛開(kāi)始Kubernetes之旅,還是已經(jīng)在生產(chǎn)環(huán)境中運(yùn)行集群好多年,都認(rèn)為您應(yīng)該立即開(kāi)始測(cè)試這些集群。運(yùn)行Sonobuoy在管道中進(jìn)行一致性測(cè)試,開(kāi)始對(duì)您使用的功能進(jìn)行一些E2E測(cè)試,并為導(dǎo)致集群故障太多次的組件開(kāi)發(fā)自己的測(cè)試。這將使操作更加輕松,并讓您高枕無(wú)憂(yōu)。

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2011-05-16 15:36:00

軟件測(cè)試

2017-10-09 17:52:57

MySQL自動(dòng)化測(cè)試GitHub

2022-05-31 06:14:01

Python自動(dòng)化測(cè)試

2009-08-19 09:00:48

單元測(cè)試框架自動(dòng)化測(cè)試

2024-11-21 15:24:49

2011-08-02 11:31:35

Cfengine系統(tǒng)管理

2020-10-10 06:30:07

PythonSEO自動(dòng)化測(cè)試

2022-01-14 11:51:00

測(cè)試工具自動(dòng)化

2024-05-06 08:08:31

2011-09-29 09:43:44

基礎(chǔ)架構(gòu)虛擬化IT

2023-01-09 15:20:16

2016-10-26 22:16:48

macaca自動(dòng)化測(cè)試javascript

2016-10-26 22:07:06

macaca自動(dòng)化測(cè)試javascript

2016-10-26 22:24:00

macaca自動(dòng)化測(cè)試javascript

2016-10-26 22:29:13

macaca自動(dòng)化測(cè)試javascript

2012-02-27 17:34:12

Facebook自動(dòng)化

2021-09-03 09:56:18

鴻蒙HarmonyOS應(yīng)用

2022-02-17 10:37:16

自動(dòng)化開(kāi)發(fā)團(tuán)隊(duì)預(yù)測(cè)

2013-05-16 10:58:44

Android開(kāi)發(fā)自動(dòng)化測(cè)試

2014-04-16 14:15:01

QCon2014
點(diǎn)贊
收藏

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