Kubernetes-先把kubernetes跑起來


Kubernetes是什麼?

Kubernetes是容器集羣管理系統,是一個開源的平臺,可以實現容器集羣的自動化部署、自動擴縮容、維護等功能。

通過Kubernetes你可以:

  • 快速部署應用

  • 快速擴展應用

  • 無縫對接新的應用功能

  • 節省資源,優化硬件資源的使用

Kubernetes 特點

  • 可移植: 支持公有云,私有云,混合雲,多重雲(multi-cloud)

  • 可擴展: 模塊化, 插件化, 可掛載, 可組合

  • 自動化: 自動部署,自動重啓,自動複製,自動伸縮/擴展

Kubernetes是Google 2014年創建管理的,是Google 10多年大規模容器管理技術Borg的開源版本。


通過web端體驗kubernetes的功能和場景:
    https://kubernetes.io/docs/tutorials/kubernetes-basics/
左邊部分是操作說明,右邊是命令終端


輸入:minikube start //開啓迷你kube系統

圖片.png




部署:

kubectl get nodes //創建一個單點kubenetes集羣

kubectl cluster-info  //查看集羣信息

圖片.png


kubectl run kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080

通過kubectl run 部署一個名爲kubernetes-bootcamp的容器 --image指定容器鏡像 --port指定對外暴露的端口

圖片.png

名詞解釋:
    Deployment可以理解爲應用
    Pod 理解爲一組容器的集合,一些息息相關的容器放在一個Pod中,同一個Pod中的容器共享IP和Port空間
也就是在同一個命名空間。
    Pod 在Kubernetes是最小的調度單位,同一Pod中的容器始終被一起調度

kubectl get pods //查看當前pod

圖片.png



訪問應用:
kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
//將容器的8080端口映射到節點端口,隨機分配的端口

kubectl get services //查看應用被映射到哪個端口

圖片.png

curl host01:32253 //通過端口號訪問應用

圖片.png


kubectl get pods --all-namespaces //獲取所有命名空間中的所有Pod。

圖片.png



Scale應用:


kubectl get deployments //查看副本數,默認情況下應用只會運行一個副本。

圖片.png


增加三個副本:kubectl scale deployments/kubernetes-bootcamp --replicas=3

圖片.png


kubectl get pods //查看應用副本

圖片.png

通過curl訪問應用會發現三個副本輪詢處理請求: curl 127.0.0.1:30781

圖片.png


刪除一個副本:kubectl scale deployments/kubernetes-bootcamp --replicas=2

圖片.png




滾動更新:

更新image
    kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
    將v1版本升級爲v2版本

圖片.png

kubectl get pods //查看應用副本,會自動替換舊版本,不停機更新,舊版本會被逐個刪除

圖片.png


訪問應用會發現版本已經升級了:curl 127.0.0.1:30781

圖片.png


回退image
    kubectl rollout undo deployments/kubernetes-bootcamp

圖片.png

    kuberctl get pods //查看應用副本,會自動替換新的版本,刪除新版本,舊版本image上線

圖片.png


訪問應用會發現版本已經降級了:curl 127.0.0.1:30781

圖片.png



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章