自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

僅需60秒,使用k3s創(chuàng)建一個(gè)多節(jié)點(diǎn)K8S集群!

云計(jì)算
最近,我一直在Kubernetes上進(jìn)行各種測(cè)試和部署。因此,我不得不一次又一次創(chuàng)建和銷毀Kubernetes集群,有的時(shí)候甚至在一個(gè)小時(shí)內(nèi)執(zhí)行好幾次。但由于我需要測(cè)試的某個(gè)事項(xiàng)需要一個(gè)全新的集群,所以簡(jiǎn)單地刪除所有的pod、service、deployment等,來(lái)讓集群變得“像新的一樣”并沒(méi)有任何作用。

最近,我一直在Kubernetes上進(jìn)行各種測(cè)試和部署。因此,我不得不一次又一次創(chuàng)建和銷毀Kubernetes集群,有的時(shí)候甚至在一個(gè)小時(shí)內(nèi)執(zhí)行好幾次。但由于我需要測(cè)試的某個(gè)事項(xiàng)需要一個(gè)全新的集群,所以簡(jiǎn)單地刪除所有的pod、service、deployment等,來(lái)讓集群變得“像新的一樣”并沒(méi)有任何作用。

同時(shí),我還需要一個(gè)盡可能與生產(chǎn)環(huán)境相似的集群,所以所有的本地解決方案(如Minikube、Vagrant等)都沒(méi)有任何作用。

一開始,我使用了一個(gè)云提供商的托管Kubernetes,因?yàn)樗子诓渴?,并且一旦集群?jiǎn)?dòng),我只需要單擊一下按鈕就可以下載kubectl配置。但是它存在三個(gè)問(wèn)題:

它會(huì)花費(fèi)很多時(shí)間——每個(gè)集群大約需要10分鐘進(jìn)行部署。如果我每天都要部署并銷毀它,那么這些時(shí)間加起來(lái)就十分可觀了。

需要手動(dòng)下載與加載kubectl配置文件(這個(gè)操作盡管很簡(jiǎn)單,但手動(dòng)還是略微麻煩)

這是一項(xiàng)托管服務(wù),因此我沒(méi)有對(duì)集群的完全訪問(wèn)權(quán)限。

所以我決定創(chuàng)建一個(gè)解決方案,可以讓我在云上快速又簡(jiǎn)單地部署和銷毀Kubernetes集群:

https://github.com/DavidZisky/60sk3s

最終,我得到了一個(gè)簡(jiǎn)單的Bash腳本,該腳本可以在Google Cloud上創(chuàng)建虛擬機(jī),部署一個(gè)4節(jié)點(diǎn)的Kubernetes集群(1個(gè)主節(jié)點(diǎn)和3個(gè)worker節(jié)點(diǎn)),下載kubectl配置,并將其加載到我的系統(tǒng)中,而完成這一切僅需60秒!從零開始(甚至沒(méi)有虛擬機(jī))到能夠執(zhí)行kubectl apply -f any_deployment.yaml,僅需不到1分鐘!那么具體要怎么操作呢?

具體需求

于我而言,這一解決方案需要考慮的一個(gè)重要因素是盡可能可移植。因此我盡量讓自己不使用太多工具(因此不需要Terraform、Ansible,也不需要安裝和配置)。這是為什么我用Bash編寫它的原因,而我唯一的依賴項(xiàng)是安裝和配置了GCloud CLI(帶有默認(rèn)區(qū)域和項(xiàng)目集)。

30秒啟動(dòng)虛擬機(jī)

我們從虛擬機(jī)開始。一般情況下,在云上創(chuàng)建虛擬機(jī)大約需要45秒到60秒的時(shí)間。例如,在DigitalOcean上,啟動(dòng)虛擬機(jī)(意味著ping開始響應(yīng))需要40秒,但你需要額外的15秒來(lái)啟動(dòng)其他系統(tǒng)服務(wù)(最重要的是,SSH server能夠接收連接)。

所以,首先我們需要讓整個(gè)流程更快,至少快兩倍。

我們可以通過(guò)使用內(nèi)存更小的OS鏡像來(lái)實(shí)現(xiàn)。這就是我堅(jiān)持用Google Cloud的原因,因?yàn)樗鼈兲峁┳钚〉腢buntu鏡像(小于200MB)。同時(shí),我嘗試了許多輕量級(jí)發(fā)行版,但它們要不就是沒(méi)有核心模塊,要不就是需要花很長(zhǎng)的時(shí)間啟動(dòng)。

在Google Cloud上創(chuàng)建和啟動(dòng)Ubuntu迷你虛擬機(jī)花費(fèi)大約30秒(從GCloud API調(diào)用到SSH Server準(zhǔn)備就緒)。那么,我們第一步就完成了,現(xiàn)在我們接下來(lái)看剩下的30秒。

30秒部署K8S集群

我們應(yīng)該如何在30秒內(nèi)部署一個(gè)Kubernetes集群呢?答案是使用k3s!如果你還沒(méi)有聽說(shuō)過(guò)k3s,可以翻閱我們往期文章或報(bào)名參加今天晚上8點(diǎn)半的在線培訓(xùn)(http://z-mz.cn/Pmwv)進(jìn)行了解。

通過(guò)使用k3s,我們不需要為Kubernetes啟動(dòng)和運(yùn)行操心太多,因?yàn)閗3s安裝程序會(huì)為我們完成這些操作。所以,我的腳本僅需下載并執(zhí)行它即可。

將一切都連接起來(lái)

我們通過(guò)使用輕量的OS鏡像來(lái)在30秒之內(nèi)啟動(dòng)虛擬機(jī)。我們使用了k3s,可以讓我們?cè)?0秒之內(nèi)運(yùn)行Kubernetes?,F(xiàn)在,我們需要將所有的部件連接在一起。為了完成這一操作,我們準(zhǔn)備了一個(gè)Bash腳本:

  • GCloud命令以部署虛擬機(jī)
  • 在主節(jié)點(diǎn)下載并執(zhí)行k3s安裝程序
  • 獲取由k3s生成的token,它可用于給集群添加節(jié)點(diǎn)
  • 在worker節(jié)點(diǎn)上下載并執(zhí)行k3s安裝程序(將token作為參數(shù))

唯一的挑戰(zhàn)是獲取生成的kubectl配置——Google虛擬機(jī)上的公共IP地址在計(jì)算機(jī)上是不可見/無(wú)法訪問(wèn)的(當(dāng)你執(zhí)行“ip addr”或“ifconfig”時(shí),你也無(wú)法找到該IP地址)。所以,當(dāng)k3s生成證書以及kubeconfig時(shí),從外部訪問(wèn)集群是無(wú)效的。

但經(jīng)過(guò)多方面搜索,我發(fā)現(xiàn)了參數(shù)“--tls-san=”,它可以為證書生成提供額外的IP地址。因此,我們可以通過(guò)GCloud命令獲取IP地址,然后安裝k3s時(shí),將其作為參數(shù)的值傳遞。如果k3s部署在所有節(jié)點(diǎn)上,并且worker節(jié)點(diǎn)已在master節(jié)點(diǎn)上正確注冊(cè),那么集群就已經(jīng)準(zhǔn)備就緒。

剩下的最后一件事就是下載kubectl配置(使用scp以從master節(jié)點(diǎn)獲得文件)。完成所有步驟僅需55到58秒。正如你所見,這個(gè)解決方案沒(méi)有什么特別之處,只有幾個(gè)GCloud和curl命令粘貼在一個(gè)bash腳本中。但這可以很快完成工作。

僅需60秒,使用k3s創(chuàng)建一個(gè)多節(jié)點(diǎn)K8S集群!

下一步是?

首先,當(dāng)前整個(gè)解決方案都經(jīng)過(guò)硬編碼,以具有4個(gè)節(jié)點(diǎn)的集群(一個(gè)主節(jié)點(diǎn)和3個(gè)worker節(jié)點(diǎn))。使其易于配置,但我還從未測(cè)試過(guò)更大的集群。但我會(huì)盡快添加該選項(xiàng)。

其次,現(xiàn)在kubectl配置僅供下載(因此你可以將其作為參數(shù)傳遞給kubectl命令),或覆蓋現(xiàn)有的kubectl配置(已經(jīng)能夠滿足我的需求,因?yàn)槲覜](méi)有長(zhǎng)期運(yùn)行的集群)。但是,添加一個(gè)將配置附加到現(xiàn)有配置中的功能選項(xiàng),然后更改上下文,長(zhǎng)期來(lái)看是有益的。

作者: Dawid Ziolkowski丨Container Solution云原生工程師

責(zé)任編輯:未麗燕 來(lái)源: Dockone.io
相關(guān)推薦

2022-02-08 15:59:29

k3sk8sDevOps

2025-01-07 14:36:12

2020-03-31 12:50:34

樹莓派K3sKubernetes集

2023-10-27 08:01:23

SSH連接K3s

2022-04-22 13:32:01

K8s容器引擎架構(gòu)

2023-03-05 21:50:46

K8s集群容量

2023-09-03 23:58:23

k8s集群容量

2023-11-06 07:16:22

WasmK8s模塊

2021-04-22 09:46:35

K8SCluster Aut集群

2020-04-14 13:15:27

k3sSSL證書樹莓派

2020-02-29 15:23:15

Kubernetes集群程序

2025-03-19 08:01:10

Kubernetes集群源碼

2022-12-28 10:52:34

Etcd備份

2024-05-27 00:00:10

KubernetesK8s云原生

2023-09-06 08:12:04

k8s云原生

2021-09-14 13:49:32

開發(fā)技能工具

2020-09-11 19:41:06

KubernetesK8SK3S

2023-09-07 08:58:36

K8s多集群

2021-11-04 07:49:58

K8SStatefulSetMySQL

2019-05-17 15:16:24

Kubernetes容器集群
點(diǎn)贊
收藏

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