Hello Kubernetes快速交互实验手册
“?K8S在線實(shí)驗(yàn)室提供了一個(gè)交互實(shí)驗(yàn)環(huán)境,現(xiàn)將這部分文章精簡(jiǎn)并翻譯為中文,希望對(duì)那些不了解K8S的童鞋有幫助,能夠快速玩起來(lái)有個(gè)感性認(rèn)識(shí)...”
原文:https://kubernetes.io/docs/tutorials
翻譯:Edison Zhou
Hello Kubernetes快速交互實(shí)驗(yàn)手冊(cè)
基本介紹
此交互實(shí)驗(yàn)可以讓你不用搭建K8S環(huán)境就可以輕松地嘗試管理一個(gè)簡(jiǎn)單的容器化應(yīng)用集群,可以學(xué)習(xí)到以下內(nèi)容:
部署一個(gè)容器化應(yīng)用到一個(gè)集群中
對(duì)部署進(jìn)行伸縮(Scale)
滾動(dòng)更新應(yīng)用至一個(gè)新版本
此交互實(shí)驗(yàn)主要基于虛擬終端(Virutal Terminal),可以直接在你的Web瀏覽器中運(yùn)行Minikube,這是一個(gè)可以隨處運(yùn)行K8S的最小化的本地K8S環(huán)境,不需要你安裝任何軟件和做任何配置。
實(shí)驗(yàn)內(nèi)容
創(chuàng)建一個(gè)集群
部署一個(gè)應(yīng)用
訪問(wèn)當(dāng)前應(yīng)用
伸縮當(dāng)前應(yīng)用
滾動(dòng)更新應(yīng)用
創(chuàng)建一個(gè)集群
進(jìn)入實(shí)驗(yàn)地址:
https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/
選中“Create a Cluster"=>"Interactive Tutorial - Creating a Cluster"
從這里開(kāi)始然后會(huì)看到提示和終端的界面,這是一個(gè)基于Minikube的K8S終端:
通過(guò)在終端中執(zhí)行 minikube start 來(lái)創(chuàng)建一個(gè)單節(jié)點(diǎn)的K8S集群:
通過(guò)執(zhí)行 kubectl cluster-info 可以查看集群信息:
部署一個(gè)應(yīng)用
這里部署一個(gè)示例應(yīng)用,執(zhí)行以下命令:
這里kubectl run是老版本的命令,即將被廢除,建議使用kubectl create替代。通過(guò)執(zhí)行kubectl get pods可以看到,當(dāng)前的kubernetes-bootcamp-7dc9765bf6-dgmz8就是當(dāng)前應(yīng)用的Pod。
訪問(wèn)當(dāng)前應(yīng)用
默認(rèn)情況下,所有Pod只能在集群內(nèi)部訪問(wèn),想要從外部訪問(wèn),就必須映射端口。
可以看到,映射成功:
執(zhí)行命令 kubectl get services,可以看到應(yīng)用被映射到了節(jié)點(diǎn)的哪個(gè)端口:
可以看出,當(dāng)前應(yīng)用所處的服務(wù)被映射到了32752端口上,這個(gè)端口是隨機(jī)分配的。因?yàn)椴捎肗odePort方式的話,是會(huì)在30000-32767區(qū)間隨機(jī)取一個(gè)端口號(hào)。
怎么驗(yàn)證部署的應(yīng)用是否可以訪問(wèn)?
效果如下圖所示:
伸縮(Scale)當(dāng)前應(yīng)用
默認(rèn)情況下,應(yīng)用只會(huì)運(yùn)行一個(gè)副本,可以通過(guò)kubectl get deployments來(lái)查看:
那么,如果需要增加副本數(shù),可以通過(guò)命令kubectl scale來(lái)增加,如下圖所示,可以看到現(xiàn)在已經(jīng)由1個(gè)副本增長(zhǎng)為了3個(gè)副本了:
由于Pod是K8S資源調(diào)度的最小單位,因此執(zhí)行kubectl get pods也可以驗(yàn)證Pod的數(shù)量:
這時(shí)可以通過(guò)curl再次訪問(wèn)應(yīng)用,便可以看到這些請(qǐng)求都會(huì)發(fā)往不同的Pod(也不一定完全是每次都會(huì)轉(zhuǎn)發(fā)給不同的Pod),因?yàn)槲覀冇?個(gè)副本會(huì)負(fù)載均衡:
如果不需要很多的副本來(lái)負(fù)載均衡,也可以收縮副本數(shù)量,比如收縮到2個(gè)副本:
滾動(dòng)更新應(yīng)用
當(dāng)前應(yīng)用kubernetes-bootcamp所用的image的版本為v1,假設(shè)現(xiàn)在有了新版本,可以通過(guò)以下命令來(lái)將其升級(jí)到v2。
從下圖可以看到,更新版本之后原先v1的兩個(gè)Pod便已經(jīng)在被停止,進(jìn)而創(chuàng)建了兩個(gè)新的Pod:
過(guò)了幾秒之后,再次查看,原先的兩個(gè)v1的Pod已經(jīng)被刪除:
這時(shí)可以通過(guò)curl進(jìn)行驗(yàn)證,可以發(fā)現(xiàn)版本號(hào)已經(jīng)升級(jí)為了v2:
這時(shí)如果發(fā)現(xiàn)v2存在某個(gè)百年一遇的大Bug(不容易發(fā)現(xiàn)那種),想要快速回退到上個(gè)版本v1,可以通過(guò)以下命令來(lái)快速回退:
可以看到回退之后,v2的兩個(gè)Pod就被停止了,進(jìn)而新創(chuàng)建了兩個(gè)v1的Pod:
這時(shí)如果再進(jìn)行curl驗(yàn)證,可以發(fā)現(xiàn)版本變?yōu)榱藇1了:
小結(jié)
這里通過(guò)官網(wǎng)的交互實(shí)驗(yàn)教程快速的體驗(yàn)了一把K8S的基本功能使用,全程通過(guò)kubectl來(lái)調(diào)用的K8S API,相信會(huì)對(duì)完全沒(méi)接觸K8S的童鞋有幫助。
參考資料
(1)K8S指導(dǎo)手冊(cè):
https://kubernetes.io/docs/tutorials
(2)每天5分鐘玩轉(zhuǎn)K8S:
https://item.jd.com/12329528.html
總結(jié)
以上是生活随笔為你收集整理的Hello Kubernetes快速交互实验手册的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LogoSharp:Logo语言的C#实
- 下一篇: 从MVP到微软产品经理的几点心得