命令总结

kubectl 常用命令总结

https://zhuanlan.zhihu.com/p/423527602

api-version相关

kubectl api-resources -o wide                   #  查看资源的api版本
kubectl api-resources --api-group apps -o wide  #  查看api版本为apps的资源

pod相关

kubectl delete pod --all                            #  删除所有pod
kubectl delete pod -l app=flannel -n kube-system    # 根据label删除pod
kubectl describe pod XXX -n kube-system   # 查看pod描述
kubectl logs xxx -n kube-system           # 查看pod 日志 (如果pod有多个容器需要加-c 容器名)

kubectl get pod             #  查看pod
--show-labels     显示pod的label标签
-n kube-system    查看kube-system命名空间下的pod
--all-namespaces  查看所有ns下面的pod
-o wide           显示pod详细信息(含所在节点)
-o yaml           以yaml格式展示pod
-L label_name     将标签列以lable_name显示
-l lable_name     显示有lable_name的pod
'! env'           取反,不含env标签

资源类型及简写

pods (po)
services (svc)
replicationcontrollers (rc)
nodes (no)
events (ev)
componentstatuses (cs)
limitranges (limits)
persistentvolumes (pv)
persistentvolumeclaims (pvc)
resourcequotas (quota)
secrets

查看容器日志

kubectl logs pod名 -c 容器名
kubectl log myapp-pod -c test

- f 持续输出日志
- - previous 查看前一个容器的日志

进入到指定pod中的指定容器

kubectl exec -it <pod_name> -c <container_name> -n <namespace> -- /bin/bash
# pod中只有一个容器则不用指定容器名称

修改pod的标签

kubectl get pods --show-labels                           # 查看标签
kubectl label pod my-pod tier=label1 --overwrite=True    # 修改现有标签需要overwrite选项
kubectl label pod pod_name tier=label_name               # 添加标签
kubectl label node node2 disktype-                       # 删除标签

云服务器查看外网IP地址方法

#返回IP地址
curl ip.6655.com/ip.aspx
curl whatismyip.akamai.com
wget -qO - ifconfig.co
curl icanhazip.com
dig +short myip.opendns.com @resolver1.opendns.com
curl ident.me
curl v4.ident.me
curl curlmyip.com
curl ifconfig.me
curl inet-ip.info

#返回IP和地区
curl ip.cn
curl cip.cc

通过yaml文件创建资源

kubectl create -f xxx.yaml    # 不建议使用,无法更新,必须先delete
kubectl apply -f xxx.yaml     # 创建+更新,可以重复使用
kubectl delete -f xxx.yaml    # 删除这个文件创建的资源,这个文件不会被删除,还能用vim编辑
kubectl create -f deployment.yaml --record   # --record参数可以记录版本更新的命令

显示资源yaml文件字段

kubectl explain svc --recursive

deployment相关

kubectl scale deployment spark-worker-deployment --replicas=8   # 扩容
kubectl delete deployment xxx -n kube-system   # 删除应用(先确定是由说明创建的,再删除对应的kind)
kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1  # 更新镜像

导出配置文件

kubectl get ds -n kube-system -l k8s-app=kube-proxy -o yaml>kube-proxy-ds.yaml         # 导出proxy
kubectl get deployment -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-dp.yaml    # 导出kube-dns
kubectl get services -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-services.yaml
kubectl get configmap -n kube-system -o wide -o yaml > configmap.yaml   #   导出所有 configmap

删除kube-system下Evicted状态的所有pod

kubectl get pods -n kube-system |grep Evicted| awk '{print $1}'|xargs kubectl delete pod  -n kube-system

查看集群信息

kubectl cluster-info           # 查看集群信息
kubectl get componentstatuses  # 查看集群各组件状态

kubelet相关

ps -ef | grep kubelet       # 查看kubelet进程启动参数
journalctl -u kubelet -f    # 查看日志
vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf # 修改启动参数

集群调度相关

kubectl cordon node1    # 设为不可调度状态
kubectl drain node1     # 将pod赶到其他节点
kubectl uncordon node1  # 解除不可调度状态
kubectl taint nodes master.k8s node-role.kubernetes.io/master-  # master运行pod
kubectl taint nodes master.k8s node-role.kubernetes.io/master=:NoSchedule  master不运行pod
posted @   立勋  阅读(5)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示