1. 程式人生 > 其它 >kubectl 常用命令

kubectl 常用命令

#檢視版本
kubectl version


#檢視叢集資訊
kubectl cluster-info


#kubeadm 初始化時會拉取一些 docker 映象,檢視fmd要的映象列表
kubeadm config images list


# 檢視所有 pod 列表,  -n 後跟 namespace, 檢視指定的名稱空間, -o wide 檢視詳細資訊
kubectl get pod
kubectl get pod -n namespace
kubectl get pod -o wide
kubectl get pods --all-namespaces


# 檢視所有 secret 
kubectl get secret --all-namespaces


# 檢視 RC 和 service 列表
kubectl get rc,svc -n namespace


#檢視全部節點
kubectl get nodes


# 顯示 Node 的詳細資訊
kubectl describe node k8s-master


# 顯示 Pod 的詳細資訊, 特別是檢視 pod 無法建立的時候的日誌
kubectl describe pod pod-name -n namespace


# 根據 yaml 建立資源, apply 可以重複執行,create 不行
kubectl create -f pod.yaml
kubectl apply -f pod.yaml


# 基於 pod.yaml 定義的名稱刪除 pod 
kubectl delete -f pod.yaml 


# 刪除所有包含某個 label 的pod 和 service
kubectl delete pod,svc -l name=<label-name>


# 刪除所有 Pod
kubectl delete pod --all


# 檢視 endpoint 列表
kubectl get endpoints


# 執行 pod 的 date 命令
kubectl exec <pod-name> -- date
kubectl exec <pod-name> -- bash
kubectl exec <pod-name> -- ping 10.24.51.9


# 通過bash獲得 pod 中某個容器的TTY,相當於登入容器
kubectl exec -it <pod-name> -c <container-name> -- bash
eg:
kubectl exec -it redis-master-cln81 -- bash


# 檢視容器的日誌
kubectl logs <pod-name>
kubectl logs -f <pod-name> # 實時檢視日誌
kubectl log  <pod-name>  -c <container_name> # 若 pod 只有一個容器,可以不加 -c 
kubectl logs -l app=frontend # 返回所有標記為 app=frontend 的 pod 的合併日誌。


#檢視k8s日誌
journalctl -f -u kubelet.service


# 檢視註釋
kubectl explain pod
kubectl explain pod.apiVersion


# 檢視節點 labels
kubectl get node --show-labels


# 重啟 pod
kubectl get pod <POD名稱> -n <NAMESPACE名稱> -o yaml | kubectl replace --force -f -


# 修改網路型別
kubectl patch service istio-ingressgateway -n istio-system -p '{"spec":{"type":"NodePort"}}'


# 伸縮 pod 副本
# 可用於將Deployment及其Pod縮小為零個副本,實際上殺死了所有副本。當您將其縮放回1/1時,將建立一個新的Pod,重新啟動您的應用程式。
kubectl scale deploy/nginx-1 --replicas=0
kubectl scale deploy/nginx-1 --replicas=1


# 檢視前一個 pod 的日誌,logs -p 選項 
kubectl logs --tail 100 -p user-klvchen-v1.0-6f67dcc46b-5b4qb > pre.log


#獲取該 Pod 的指標資料
kubectl top pod memory-demo -n namespace