Kubectl的命令大全(三)

查看系統版本

kubectl version                                     //顯示客戶端和服務器側版本信息
kubectl api-versions                                 //列出當前版本的kubernetes的服務器端所支持的api版本信息
kubectl explain pod                                 //查看幫助信息和help相似,尤爲是資源清單的結構字段信息
kubectl cluster-info                                                //獲取k8s集羣信息
kubectl explain Deployment.spec.template.spec.containers.resources  //查看幫助信息,資源下的cpu和memory等,每一個配置項都有詳細的網頁手冊地址

動態管理

 

kubectl scale rc nginx --replicas=5                               //動態伸縮
kubectl scale deployment redis-slave --replicas=5                 //動態伸縮
kubectl scale --replicas=2 -f redis-slave-deployment.yaml         //動態伸縮
kubectl exec -it redis-107-q47hh /bin/bash                        //進入容器
kubectl label nodes node1 zone=north                              //增長節點lable值 spec.nodeSelector: zone: north 
kubectl label pod redis-107-q47hh role=master                     //增長lable值 [key]=[value]
kubectl label pod redis-107-q47hh role-                           //刪除lable值
kubectl label pod redis-107-q47hh role=backend --overwrite        //修改lable值
kubectl rolling-update redis-master -f redis.yaml                 //配置文件滾動升級
kubectl rolling-update redis-master --image=redis-master:2.0      //命令升級
kubectl rolling-update redis-master --image=redis-master:1.0--rollback //pod版本回滾
kubectl cp fileName podName:/fileName                             //複製文件到pod的指定目錄,也可從容器中複製文件到外部
kubectl patch service istio-ingressgateway -n istio-system -p '{"spec":{"type":"NodePort"}}' //修改網絡類型
eg例子:
kubectl run nginx-dep --image=nginx --port=80 --replicas=1       //建立的 deployment爲nginx-dep 鏡像爲nginx 端口爲80 副本數爲1
kubectl expose deployment nginx-dep --port=3000 --target-port=80   //--port:SVC 暴露的端口爲3000--target-port:映射的容器端口。即建立 deployment 時使用的端口。
kubectl edit svc nginx-dep                            //修改svc的yaml文件

 

建立和刪除pod

kubectl create -f yamls/pod.yaml                            //根據yaml文件建立容器
kubectl apply -f yamls/pod.yaml                             //根據 yaml 建立資源, apply 能夠重複執行,create 不行
kubectl create -f yamls/                                    //多個yaml文件建立容器
kubectl delete -f yamls/pod.yaml                            //刪除指定pod 
kubectl delete -f yamls/                                    //刪除多個pod 
kubectl delete pods podName                                 //刪除指定pod 
kubectl delete deployment ControllerName                    //有控制器的pod不能直接刪除,需先刪除其控制器
kubectl delete pod,svc -l name=<label-name>                 //刪除全部包含某個 label 的pod 和 service
kubectl delete pod --all                                    //刪除全部 Pod

查詢資源

kubectl get namespaces                                        //列出全部的namespace
kubectl get nodes                                    //顯示node節點信息
kubectl get endpoints                                           //查看 endpoint 列表
kubectl get services -n kube-system                             //查看全部service -n指定namespace
kubectl get deployments  -n kube-system                         //查看全部deployment
kubectl get pods --all-namespaces                               //查看全部pod
kubectl get pods -o wide --all-namespaces                       //查看全部pod的IP及節點
kubectl get pods -o wide --all-namespaces -c                    //查看全部pod的IP及節點並實時等待監控
kubectl get pods -n kube-system | grep dashboard                //查看namespace中kube-system下的pod 並過濾

描述資源

kubectl describe service my-svc                         //查看my-svc的詳細描述
kubectl describe pods my-pod                            //查看my-pod的詳細描述
kubectl describe node 192.168.0.212                     //顯示 Node 的詳細信息

查看日誌

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 的合併日誌
相關文章
相關標籤/搜索