pod 是容器的集合,通常會將緊密相關的一組容器放到乙個 pod 中,同乙個 pod 中的所有容器共享 ip 位址和 port 空間,也就是說它們在乙個 network namespace 中。
pod 是 kubernetes 排程的最小單位,同一 pod 中的容器始終被一起排程。
部署應用
執行命令:
kubectl run kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080
kubectl run 部署了乙個應用,命名為 kubernetes-bootcamp。
docker 映象通過 --image 指定。
--port 設定應用對外服務的埠
檢視當前的 pod
kubectl get pods
訪問應用
預設情況下,所有 pod 只能在集群內部訪問。為了能夠從外部訪問應用,我們需要將容器的埠對映到節點的埠。
kubectl expose deployment/kubernetes-bootcamp --type="nodeport" --port 8080 (猜測這應該是隨機對映主機的3000以上的埠)
執行命令 kubectl get services 可以檢視應用(容器)被對映到節點的哪個埠,猜對了
scale 應用
預設情況下應用只會執行乙個副本,可以通過 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
k8s 命令 重啟 k8s基本命令
kubernetes 常用命令 通過yaml檔案建立 kubectl create f yaml 不建議使用,無法更新,必須先delete 通過yaml檔案刪除 kubectl delete f yaml 檢視kube system namespace下面的pod svc deployment 等等...
k8s常用命令常用k8s命令
獲取列出乙個或多個資源的資訊。列出所有執行的pod資訊。列出pod以及執行pod節點資訊。以json格式輸出乙個pod資訊。列出所有replication controllers和service資訊。列出所有不同的資源物件。獲取列出乙個或多個資源的資訊。列出所有執行的pod資訊。列出pod以及執行p...
K8s之kubectl命令列工具常用命令
kubectl管理 kubectl是管理k8s集群的命令列工具,通過生成的json格式傳遞給apiserver進行建立 檢視 管理的操作 常用命令行 basic commands beginner create create a resource from a file or from stdin....