Kubernetes 常用命令集
Kubernetes 常用操作笔记###
kubectl 命令行自动补全#####
## bash-completion-extras需要epelrepo源 yum install -y bash-completion bash-completion-extras # 配置自动补全 source /usr/share/bash-completion/bash_completion # 临时生效kubectl自动补全 source <(kubectl completion bash) ## 只在当前用户生效kubectl自动补全 echo 'source <(kubectl completion bash)' >>~/.bashrc ## 全局生效 echo 'source <(kubectl completion bash)' >/etc/profile.d/k8s.sh && source /etc/profile # 生成kubectl的自动补全脚本 kubectl completion bash >/etc/bash_completion.d/kubectl
Kubectl命令行管理对象 类型 命令 描述 基础命令 create 通过文件名或标准输入创建资源。 expose 将一个资源公开为一个新的Kubernetes服务。 run 创建并运行一个特定的镜像,可能是副本。 创建一个deployment或job管理创建的容器。 set 配置应用资源。 修改现有应用程序资源。 get 显示一个或多个资源。 explain 文档参考资料。 edit 使用默认的编辑器编辑一个资源。 delete 通过文件名、标准输入、资源名称或标签选择器来删除资源。 部署命令 rollout 管理资源的发布。 rolling-update 执行指定复制控制的滚动更新。 scale 扩容或缩容Pod数量,Deployment、ReplicaSet、RC或Job。 autoscale 创建一个自动选择扩容或缩容并设置Pod数量。 集群管理命令 certificate 修改证书资源。 cluster-info 显示集群信息。 top 显示资源(CPU/Memory/Storage)使用。需要Heapster运行。 cordon 标记节点不可调度。 uncordon 标记节点可调度。 drain 维护期间排除节点。 taint
kubectl get all # 查看所有 kubectl get all --all-namespaces kubectl get pods|deployments.|replicasets.|service -o wide kubectl get nodes|pods|service --show-labels # 查看node标签 # 创建资源,更新资源 kubectl create -f xxx.yml kubectl apply -f xxx.yml # 删除资源 kubectl delete pods|deployments.|replicasets.|service xxx_name kubectl delete -f xxx.yml # 编辑内存里配置文件.应该是及时修改后生效,但测试并未生效 kubectl edit daemonsets. kube-proxy --namespace=kube-system kubectl edit service nginx-svc kubectl api-versions # 查看k8s当前支持的api版本 kubectl run busybox --rm -it --image=busybox /bin/sh # 临时启用一个工具箱 kubectl apply -f httpd.v1.yml --record # 登记到revision,用于回滚 kubectl rollout history deployment httpd # 查看历史记录,为回滚做准备 kubectl rollout undo deployment httpd --to-revision=1 # 回滚到版本1 kubectl exec mypod-id touch /mydata/hello # 到Pod的container里执行指令 kubectl exec mypod-id df | grep data # 到Pod里执行指令 kubectl create configmap game-config --from-file=docs/gameconfig/ # 目录内含有多个配置文件(每个配置文件里可以有很多内容) journalctl -l -u kubelet # 查看kubelet日志 kubectl get pods -o yaml # 配置yaml格式详情 kubectl get endpoints # 查看终端服务节点 kubeadm reset # 重置K8S集群 # 滚动升级 kubectl create deploy nginx-test --image=nginx:1.16 kubectl scale deployment nginx-test --replicas 10 # --replicas 副本集数量 如果集群支持 horizontal pod autoscaling 的话,还可以为Deployment设置自动扩展示例: # 创建pod和service $ kubectl run php-apache --image=gcr.io/google_containers/hpa-example --requests=cpu=200m --expose --port=80 service "php-apache" created deployment "php-apache" created # 创建autoscaler kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10 kubectl get hpa # 增加负载 kubectl run -i --tty load-generator --image=busybox /bin/sh Hit enter for command prompt $ while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done # 过一会就可以看到负载升高了 kubectl get hpa # autoscaler将这个deployment扩展为7个pod kubectl get deployment php-apache # 删除刚才创建的负载增加pod动降回1个 kubectl get hpa 故障排查主要使用 kubectl logs pod_name # 查看pod内进程输出 (查看最后200行 kubectl logs --tail=200 pod_name 或最后1小时 --since=1h ) kubectl describe pods|deployments.|replicasets.|service xxx_name kubectl top node node1 --v=8 #开启debug模式输出.使用top指令查看资源情况,需部署metric-service
作者:一毛
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
不管遇到了什么烦心事,都不要自己为难自己;无论今天发生多么糟糕的事,都不应该感到悲伤。记住一句话:越努力,越幸运。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?