本節帶領你們快速體驗 k8s 的核心功能:應用部署、訪問、Scale Up/Down 以及滾動更新。html
執行命令:docker
kubectl run kubernetes-bootcamp \
--image=docker.io/jocatalin/kubernetes-bootcamp:v1 \
--port=8080
這裏咱們經過 kubectl run
部署了一個應用,命名爲 kubernetes-bootcamp
。網絡
Docker 鏡像經過 --image
指定。架構
--port
設置應用對外服務的端口。負載均衡
這裏 deployment
是 Kubernetes 的術語,能夠理解爲應用。curl
Kubernetes 還有一個重要術語 Pod
。ui
Pod 是容器的集合,一般會將緊密相關的一組容器放到一個 Pod 中,同一個 Pod 中的全部容器共享 IP 地址和 Port 空間,也就是說它們在一個 network namespace 中。url
Pod 是 Kubernetes 調度的最小單位,同一 Pod 中的容器始終被一塊兒調度。spa
運行 kubectl get pods
查看當前的 Pod。code
kubernetes-bootcamp-390780338-q9p1t
就是應用的 Pod。
默認狀況下,全部 Pod 只能在集羣內部訪問。對於上面這個例子,要訪問應用只能直接訪問容器的 8080 端口。爲了可以從外部訪問應用,咱們須要將容器的 8080 端口映射到節點的端口。
執行以下命令:
kubectl expose deployment/kubernetes-bootcamp \
--type="NodePort" \
--port 8080
執行命令 kubectl get services
能夠查看應用被映射到節點的哪一個端口。
這裏有兩個 service,能夠將 service 暫時理解爲端口映射,後面咱們會詳細討論。
kubernetes
是默認的 service,暫時不用考慮。kubernetes-bootcamp
是咱們應用的 service,8080 端口已經映射到 host01 的 32320 端口,端口號是隨機分配的,能夠執行以下命令訪問應用:
curl host01:32320
默認狀況下應用只會運行一個副本,能夠經過 kubectl get deployments
查看副本數。
執行以下命令將副本數增長到 3 個:
kubectl scale deployments/kubernetes-bootcamp --replicas=3
經過 kubectl get pods
也能夠看到當前 Pod 也增長到 3 個。
經過 curl
訪問應用,能夠看到每次請求發送到不一樣的 Pod,三個副本輪詢處理,這樣就實現了負載均衡。
要 scale down 也很方便,執行命令:
kubectl scale deployments/kubernetes-bootcamp --replicas=2
其中一個副本被刪除了。
當前應用使用的 image 版本爲 v1,執行以下命令將其升級到 v2:
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
經過 kubectl get pods
能夠觀察滾動更新的過程:v1 的 Pod 被逐個刪除,同時啓動了新的 v2 Pod。更新完成後訪問新版本應用。
若是要回退到 v1 版本也很容易,執行 kubectl rollout undo
命令:
kubectl rollout undo deployments/kubernetes-bootcamp
驗證版本已經回退到 v1。
至此,咱們已經經過官網的交互式教程快速體驗了 Kubernetes 的功能和使用方法。教程其他章節將詳細討論 Kubernetes 的架構、典型的部署方法、容器編排能力、網絡方案、監控方案,幫助你們全面掌握 Kubernetes 的核心技能。
書籍:
1.《天天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html
2.《天天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html