kubernetes基礎篇 ——Pod管理

官方網站:https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

Pod管理

  • Pod 是可以創建和管理 Kubernetes 計算的最小可部署單元,一個 Pod 代表着集羣中運行的一個進程,每個 pod 都有一個唯一的 IP
  • 一個 pod 類似一個豌豆莢,包含一個或多個容器(通常是docker),多個容器間共享 IPC、Network 和 UTC namespace
    在這裏插入圖片描述
    kubectl命令指南:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
    拉取nginx鏡像,上傳到私有harbor倉庫
docker pull hub.c.163.com/library/nginx:latest
docker tag hub.c.163.com/library/nginx  reg.harbor.com/library/nginx
docker push reg.harbor.com/library/nginx

在這裏插入圖片描述
刪除鏡像

docker rmi hub.c.163.com/library/nginx

在這裏插入圖片描述
創建Pod應用

kubectl run nginx --image=nginx --replicas=2 --record

在這裏插入圖片描述
本來這裏是k8s4也會創建pod應用的,但因爲replicas參數已經被棄用,所以不會生效,最終只是再k8s4創建pod應用後面我們可以通過資源清單的方式批量部署pod應用。
集羣內部任意節點可以訪問Pod,但集羣外部無法直接訪問
刪除Pod

kubectl delete pod nginx

在這裏插入圖片描述

  • service是一個抽象概念,定義了一個服務的多個pod邏輯合集和訪問pod的策略,一般把service稱爲微服務

創建service

kubectl expose pod nginx --port=80 --target-port=80

在這裏插入圖片描述
在這裏插入圖片描述

  • 此時pod客戶端可以通過service的名稱訪問後端Pod
  • ClusterIP: 默認類型,自動分配一個僅集羣內部可以訪問的虛擬IP

使用NodePort類型暴露端口,讓外部客戶端訪問Pod
NodePort: 在ClusterIP基礎上爲Service在每臺機器上綁定一個端口,這樣就可以通過 NodeIP:NodePort 來訪問該服務

kubectl edit svc nginx         //修改service的type爲NodePort

在這裏插入圖片描述
在這裏插入圖片描述
上述操作是將其分爲兩個命令進行設置,合併成一個命令的話爲:

kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort    //也可以在創建service時指定類型

更新pod鏡像

kubectl set image deployment nginx nginx=nginx:1.16.0 --record

回滾

kubectl rollout history deployment nginx       ##查看歷史版本
kubectl rollout undo deployment nginx --to-revision=1     ##回滾版本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章