k8s命令行常用操作
k8s命令行 操作對象時都要前面聲明操作對象類型
kubectl get
kubectl describe
kubectl delete
kubectl edit
kubectl logs
kubectl exec
kubectl port-forward 端口轉發將pod 端口映射出來
kubectl cp 本地文件路徑:容器文件路徑
kubectl apply -f 文件路徑
# 部署應用
kubectl apply -f app.yaml
# 查看 deployment
kubectl get deployment
# 查看 pod
kubectl get pod -o wide
# 查看 pod 詳情
kubectl describe pod pod-name
# 查看 log
kubectl logs pod-name
# 進入 Pod 容器終端, -c container-name 可以指定進入哪個容器。
kubectl exec -it pod-name -- bash
# 伸縮擴展副本
kubectl scale deployment test-k8s --replicas=5
# 把集群內端口映射到節點
kubectl port-forward pod-name 8090:8080
# 查看歷史
kubectl rollout history deployment test-k8s
# 回到上個版本
kubectl rollout undo deployment test-k8s
# 回到指定版本
kubectl rollout undo deployment test-k8s --to-revision=2
# 刪除部署
kubectl delete deployment test-k8s
# 刪除指定文件的部署
kubectl delete -f app.yaml
# 查看全部
kubectl get all
# 重新部署
kubectl rollout restart deployment test-k8s# 命令修改鏡像,--record 表示把這個命令記錄到操作歷史中
kubectl set image deployment test-k8s test-k8s=ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v2-with-error --record# 暫停運行,暫停后,對 deployment 的修改不會立刻生效,恢復后才應用設置
kubectl rollout pause deployment test-k8s
# 恢復
kubectl rollout resume deployment test-k8s# 查看deployment以yaml格式并輸出到文件
kubectl get deployment test-k8s -o yaml >> app2.yaml
# 刪除全部資源
kubectl delete all --all
記錄容易忘記的
kubectl get cs 查看主節點查看方式 -o yaml wide -o=custom-columns=<spec> 根據自定義列名進行輸出,以逗號分隔
-o=custom-colimns-file=<filename> 從文件中獲取自定義列名進行輸出
-o=json 以JSON格式顯示結果
-o=jsonpath=<template> 輸出jsonpath表達式定義的字段信息
-o=jsonpath-file=<filename> 輸出jsonpath表達式定義的字段信息,來源于文件
-o=name 僅輸出資源對象的名稱
-o=wide 輸出額外信息。對于Pod,將輸出Pod所在的Node名
-o=yaml 以yaml格式顯示結果
修改副本數量
# 只能修改deployment或數量,不能直接修改pod的副本數量
kubectl scale deployment <deployment—name> --replicas=4
端口轉發
# 查看pod端口
kubectl describe pod # 端口轉發
kubectl port-forward <pod-name> 8080:80 --address <0.0.0.0監聽地址>
版本操作
# 查看歷史
kubectl rollout history deployment test-k8s
# 回到上個版本
kubectl rollout undo deployment test-k8s
# 回到指定版本
kubectl rollout undo deployment test-k8s --to-revision=2# 重新部署
kubectl rollout restart deployment test-k8s# 命令修改鏡像,--record 表示把這個命令記錄到rollout操作歷史中
kubectl set image deployment <deployment-name> <deployment-name=image_link> --record# 暫停運行,暫停后,對 deployment 的修改不會立刻生效,恢復后才應用設置
kubectl rollout pause deployment test-k8s
# 恢復
kubectl rollout resume deployment test-k8s