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