kubernetes(簡稱?K8s)是一個(gè)開源的,用于管理云平臺(tái)中多個(gè)主機(jī)上的容器化的應(yīng)用。 在之前的文章中,我介紹如何通過?Docker?為我們提供的實(shí)驗(yàn)網(wǎng)站?Play with Kubernetes(PWK)來搭建?Kubernetes?集群(點(diǎn)擊查看)。
? ? 但如果每次學(xué)習(xí)時(shí)都需要重新搭建一個(gè)?K8s?集群還是很麻煩。好在?Kubernetes?官網(wǎng)已經(jīng)為我們準(zhǔn)備好了現(xiàn)成的最小可用系統(tǒng)。我們通過?Web?瀏覽器就可以直接使用一個(gè)預(yù)先部署好的?Kubernetes?集群,快速體驗(yàn)?Kubernetes?的功能和應(yīng)用場景。
1,創(chuàng)建 Kubernetes 集群
(1)首先訪問官網(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)擊打開頁面中的“START SCENARIO”按鈕即可打開?Terminal(命令終端窗口)
(4)在終端中執(zhí)行如下命令即可開始初始化集群:
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?空間,也就是說它們在一個(gè)?network namespace?中。
1
kubectl get pods
3,訪問應(yīng)用
(1)默認(rèn)情況下,所有?Pod?只能在集群內(nèi)部訪問。為了能夠從外部訪問應(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í)行如下命令訪問應(yīng)用:
1
curl host01:31490
(4)當(dāng)然也可以通過瀏覽器訪問,點(diǎn)擊終端上方的加號(hào),在彈出菜單中選擇“View HTTP port 30000 on Host 1”
(5)將彈出頁的?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)通過?kubectl get pods?可以看到當(dāng)前的?Pod?也增加到了?3?個(gè):
(4)通過?curl?訪問應(yī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)通過?kubectl get pods?可以觀察滾動(dòng)更新的過程,可以看到?v1?的?Pod?被逐個(gè)刪除,同時(shí)啟動(dòng)了新的?v2?版本的?Pod。?
(3)測試下現(xiàn)在確實(shí)變成了?v2?版了。
(4)如果想要回退到?v1?版本,執(zhí)行下面命令進(jìn)行回滾即可。
1
kubectl rollout undo deployments/kubernetes-bootcamp
原文出自:www.hangge.com??轉(zhuǎn)載請保留原文鏈接: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)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zb313982521/article/details/103672687