kubernetes(簡(jiǎn)稱?K8s)是一個(gè)開(kāi)源的分俯,用于管理云平臺(tái)中多個(gè)主機(jī)上的容器化的應(yīng)用胜卤。 在之前的文章中疆导,我介紹如何通過(guò)?Docker?為我們提供的實(shí)驗(yàn)網(wǎng)站?Play with Kubernetes(PWK)來(lái)搭建?Kubernetes?集群(點(diǎn)擊查看)。
? ? 但如果每次學(xué)習(xí)時(shí)都需要重新搭建一個(gè)?K8s?集群還是很麻煩。好在?Kubernetes?官網(wǎng)已經(jīng)為我們準(zhǔn)備好了現(xiàn)成的最小可用系統(tǒng)澈段。我們通過(guò)?Web?瀏覽器就可以直接使用一個(gè)預(yù)先部署好的?Kubernetes?集群悠菜,快速體驗(yàn)?Kubernetes?的功能和應(yīng)用場(chǎng)景。
1败富,創(chuàng)建 Kubernetes 集群
(1)首先訪問(wèn)官網(wǎng)的在線教程:
在線教程地址:https://kubernetes.io/docs/tutorials/
(2)點(diǎn)擊左側(cè)菜單的“Learn Kubernetes Basics” -> “Create a Cluster” -> “Interactive Tutorial - Creating a Cluster”
(3)點(diǎn)擊打開(kāi)頁(yè)面中的“START SCENARIO”按鈕即可打開(kāi)?Terminal(命令終端窗口)
(4)在終端中執(zhí)行如下命令即可開(kāi)始初始化集群:
1
minikube start
(5)可以看到這樣就創(chuàng)建好了一個(gè)單節(jié)點(diǎn)的?kubernetes?集群悔醋。
2,部署應(yīng)用
(1)我們執(zhí)行如下命令部署一個(gè)名為?kubernetes-bootcamp?的容器:
1
kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080
(2)然后執(zhí)行如下命令可以查看當(dāng)前的?Pod:
Pod 概念介紹:
Pod?是容器的集合兽叮,它是?Kubernetes?調(diào)度的最小單位芬骄,同一個(gè)?Pod?中的容器始終被一起調(diào)度。
通常我們會(huì)將緊密相關(guān)的容器放到同一個(gè)?Pod?中鹦聪,同一個(gè)?Pod?中的所有容器共享?IP?地址和?Port?空間账阻,也就是說(shuō)它們?cè)谝粋€(gè)?network namespace?中。
1
kubectl get pods
3泽本,訪問(wèn)應(yīng)用
(1)默認(rèn)情況下淘太,所有?Pod?只能在集群內(nèi)部訪問(wèn)。為了能夠從外部訪問(wèn)應(yīng)用规丽,我們執(zhí)行如下代碼將容器的?8080?端口映射到節(jié)點(diǎn)的端口蒲牧。
1
kubectl expose deployment/kubernetes-bootcamp --type="NodePort"?--port 8080
(2)執(zhí)行?kubectl get services?命令可以看到?8080?端口已經(jīng)映射到?host01?的?31490?端口(端口號(hào)是隨機(jī)分配的)
(3)我們可以執(zhí)行如下命令訪問(wèn)應(yīng)用:
1
curl host01:31490
(4)當(dāng)然也可以通過(guò)瀏覽器訪問(wèn),點(diǎn)擊終端上方的加號(hào)赌莺,在彈出菜單中選擇“View HTTP port 30000 on Host 1”
(5)將彈出頁(yè)的?url?中端口部分改成?31490?回車冰抢,即可看到結(jié)果。
4艘狭,Scale 應(yīng)用
(1)默認(rèn)情況下應(yīng)用只會(huì)運(yùn)行一個(gè)副本挎扰,我們可以執(zhí)行如下命令查看副本數(shù)。
1
kubectl get deployments
(2)執(zhí)行如下命令將副本數(shù)增加到?3?個(gè):
1
kubectl scale deployments/kubernetes-bootcamp --replicas=3
(3)通過(guò)?kubectl get pods?可以看到當(dāng)前的?Pod?也增加到了?3?個(gè):
(4)通過(guò)?curl?訪問(wèn)應(yīng)用巢音,可以看到每次請(qǐng)求發(fā)送到不同的?Pod鼓鲁,3?個(gè)副本輪訓(xùn)處理,這樣就實(shí)現(xiàn)了負(fù)載均衡港谊。
(5)要?scale down?也很方便骇吭,下面將刪除一個(gè)副本(副本數(shù)變?yōu)?2)
1
kubectl scale deployments/kubernetes-bootcamp --replicas=2
5,滾動(dòng)更新
(1)當(dāng)前使用的?image?版本是?v1歧寺,執(zhí)行如下命令將其升級(jí)到?v2燥狰。
1
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
(2)通過(guò)?kubectl get pods?可以觀察滾動(dòng)更新的過(guò)程,可以看到?v1?的?Pod?被逐個(gè)刪除斜筐,同時(shí)啟動(dòng)了新的?v2?版本的?Pod龙致。?
(3)測(cè)試下現(xiàn)在確實(shí)變成了?v2?版了。
(4)如果想要回退到?v1?版本顷链,執(zhí)行下面命令進(jìn)行回滾即可目代。
1
kubectl rollout undo deployments/kubernetes-bootcamp
原文出自:www.hangge.com??轉(zhuǎn)載請(qǐng)保留原文鏈接:https://www.hangge.com/blog/cache/detail_2426.html
————————————————
版權(quán)聲明:本文為CSDN博主「zb313982521」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明榛了。
原文鏈接:https://blog.csdn.net/zb313982521/article/details/103672687