網站首頁 編程語言 正文
1. 指令介紹
2. 常用指令示例
(1) 查看資源信息類指令
kubectl get pods # 獲取pod列表
kubectl get pods -n ingress-nginx # 獲取指定名稱空間pod列表
kubectl get pods -o wide # 獲取pod詳細信息
kubectl get pods --show-labels # 獲取pod并查看pod標簽
kubectl get pod -w # 監視pod資源變動信息
kubectl get pods -A|grep -v Running # 獲取集群所有非Running狀態pod
kubectl get pods,services -o wide # 格式化輸出pod及services信息
kubectl exec podname env # 查看運行的pod的環境變量
kubectl describe pods podname --namespace=xxxnamespace # 查看指定名稱空間下指定pod的詳細信息
kubectl logs podname
kubectl logs podname -f -c container_name -n kube-system # 查看pod日志(-f 持續監控,-c如果pod中只有一個容器不用加)
kubectl get namespaces # 查看集群內所有名稱空間
kubectl get cs # 查看集群健康狀態
kubectl get events # 查看事件
kubectl get nodes # 查看集群全部節點
kubectl get deployment --all-namespaces/-A # 查看集群內所有deployment
kubectl get deployments deployment_name --watch # 監控deployment的更新過程
kubectl get rc,services # 查看集群默認名稱空間的副本控制器和services
kubectl get pods podname -o yaml # 查看pod的yaml信息
kubectl version --short=true # 查看客戶端及服務端程序版本信息
kubectl api-versions # 查看api版本信息
kubectl cluster-info # 查看集群信息
kubectl top nodes #查看節點資源使用情況(集群內需安裝metric-server組件)
kubectl top pod --all-namespaces # 查看pod資源使用率
kubectl config view # 顯示合并的kubeconfig配置
# 查看 deploy 的資源分配情
# kubectl get deploy -o=custom-columns=name:.metadata.name,ns:.metadata.namespace,replicas:.spec.replicas,request-cpu:.spec.template.spec.containers[0].resources.requests.cpu,limit-cpu:.spec.template.spec.containers[0].resources.limits.cpu,request-memory:.spec.template.spec.containers[0].resources.requests.memory,limit-memory:.spec.template.spec.containers[0].resources.limits.memory,affinity:.spec.template.spec.affinity
# 查看 pod 的資源分配情況
# kubectl get pod -o=custom-columns=name:.metadata.name,ns:.metadata.namespace,request-cpu:.spec.containers[0].resources.requests.cpu,limit-cpu:.spec.containers[0].resources.limits.cpu,request-memory:.spec.containers[0].resources.requests.memory,limit-memory:.spec.containers[0].resources.limits.memory,nodeName:.spec.nodeName,node:.spec.nodeName,affinity:.spec.affinity
(2) 操作編輯類指令
kubectl drain <nodename> --force --ignore-daemonsets # 排空節點忽略daemonsets應用并設置節點為不可調度
kubectl uncordon <nodename> # 將節點設置為可調度
kubectl scale deployment --replicas=<期望pod數> # 擴縮容pod數
kubectl rollout history deployments deployment-demo # 查看歷史版本
# 創建一個名字為nginx-demo 副本數為3 標簽為app=nginx_demo 鏡像為nginx:1.17 容器端口為80的容器實例
kubectl run nginx-demo --replicas=3 --labels="app=nginx_demo" --image=nginx:1.17 --port=80
# 為容器組nginx-demo創建一個services端口類型為nodeportr 暴漏的端口為88可以讓外部可以訪問
kubectl expose deployment nginx-demo --port=88 --type=NodePort --target-port=80 --name=nginx-svc
# 設置容器組nginx-demo中所有容器的request(請求)和limit(限制)值
kubectl set resources deployment nginx-demo - --limits=cpu=200m,memory=512Mi
# 將deployment中的nginx-demo容器鏡像修改為nginx-1.10
kubectl set image deployment/nginx-demo busybox=busybox nginx=nginx:1.10
# 編輯deployment中nginx-demo的資源信息
kubectl edit deployment nginx-demo
# 給pod名為nginx-demo的pod打標簽
kubectl label pods nginx-demo app=nginx
# 覆蓋現有標簽的value
kubectl label --overwrite pods nginx-demo app=nginx2
(3) 復制pod內文件到宿主機
- 方法一使用kubectl cp命令:
這邊要注意的是k8s復制的時候不要用絕對路徑,他這個默認是從工作目錄開始的,#還有要注意的是目標路徑不能為路徑,只能是一個文件名
kubectl cp -n namespace xxxxx:logs/testfile ./testfile.txt (namespace: 為pod所在名稱空間 xxxxx:是pod的名稱)
- 方法二使用docker cp:
#需要進入pod所在node節點服務器中
#查找到pod所運行的docker container id
docker ps -a|grep test-app-name
#然后cp 容器內文件到宿主機
docker cp container id:dir/filename ./tmp
3. k8s添加本地hosts解析
注意層級
hostAliases:
- ip: 192.168.1.135
hostnames:
- "test.app.com"
4. 刪除資源類命令
kubectl delete -f demo-deployment.yaml # 根據yaml文件刪除對應資源,只刪除資源不刪除yaml文件
kubectl delete node <nodename> # 刪除node節點
kubectl delete <resources_name> # 刪除指定資源
# 批量刪除驅逐狀態pod
kubectl get pods -n namespace | grep Evicted| awk '{print $1}' | xargs -n 1 kubectl delete pods -n namespace
5. 創建資源類命令
#創建ingress tls證書
kubectl create secret tls \<tls-name\> --cert=\</tls/xxx.crt\> --key=\</tls/xxxxx.key\> --namespace=xxx
原文鏈接:https://blog.csdn.net/weixin_39589455/article/details/128620270
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-07-19 react props深入使用:children屬性、props校驗、props的默認值
- 2022-08-03 python中的三種注釋方法_python
- 2022-06-21 Git基礎之git與SVN版本控制優缺點區別分析_其它綜合
- 2022-12-06 nginx?pod?hook鉤子優雅關閉示例詳解_nginx
- 2022-09-27 Android內置的OkHttp用法介紹_Android
- 2021-12-19 Redis中緩存穿透/擊穿/雪崩問題和解決方法_Redis
- 2023-07-08 如何讓element-ui的el-row內容居中(水平垂直)
- 2022-03-06 Linux之Centos8創建CA證書教程_Linux
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支