高级运维!Kubernetes(K8S)常用命令的整理集合

Kubernetes(K8S)常用命令的整理集合,按功能场景分类,涵盖集群管理、资源操作、故障排查等核心场景。

Kubernetes

一、集群基础管理

1. 查看集群基本信息
命令说明示例
kubectl cluster-info查看集群节点、控制平面(Master)及服务端点信息kubectl cluster-info
kubectl version查看客户端(kubectl)和服务端(K8S API Server)版本kubectl version --short(简洁模式)
kubectl get nodes列出所有集群节点(Node)kubectl get nodes -o wide(显示详细信息,如IP、标签)
kubectl describe node <node-name>查看节点详细信息(资源、状态、事件)kubectl describe node node-1
2. 集群配置与日志
命令说明示例
kubectl config view查看当前kubeconfig配置(集群、用户、上下文)kubectl config view --minify(仅显示当前上下文)
kubectl config current-context查看当前使用的集群上下文(Context)-
kubectl config use-context <context-name>切换集群上下文kubectl config use-context dev-cluster
kubectl logs -f <pod-name> -n <namespace>实时跟踪Pod日志(生产环境调试用)kubectl logs -f my-pod -n default

二、核心资源操作(Pod/Deployment/Service等)

1. Pod(容器组)管理
命令说明示例
kubectl get pods [-n <namespace>]列出Pod列表kubectl get pods -o wide(显示节点、IP、状态)
kubectl get pods -l <label-key>=<label-value>按标签筛选Podkubectl get pods -l app=my-app
kubectl describe pod <pod-name> [-n <namespace>]查看Pod详细信息(事件、容器状态、重启次数)kubectl describe pod my-pod-123
kubectl logs <pod-name> [-c <container-name>] [-n <namespace>]查看Pod内容器日志(单容器Pod可省略-c)kubectl logs my-pod -c sidecar-container
kubectl exec -it <pod-name> [-c <container-name>] [-n <namespace>] -- <command>进入Pod容器执行命令(交互式终端)kubectl exec -it my-pod -- bash(进入bash)
kubectl delete pod <pod-name> [-n <namespace>]删除指定Pod(若由Deployment管理,会自动重建)kubectl delete pod my-pod-123
2. Deployment(应用部署)管理
命令说明示例
kubectl get deployments [-n <namespace>]列出Deployment列表kubectl get deployments -o wide(显示副本数、镜像)
kubectl create deployment <deployment-name> --image=<image> [-n <namespace>]创建Deployment(简化版)kubectl create deployment nginx-deploy --image=nginx:alpine
kubectl apply -f <deployment-yaml-file>通过YAML文件创建/更新Deploymentkubectl apply -f ./deployment.yaml
kubectl edit deployment <deployment-name> [-n <namespace>]编辑Deployment配置(直接修改YAML)kubectl edit deployment nginx-deploy
kubectl scale deployment <deployment-name> --replicas=<num> [-n <namespace>]手动扩缩容Deployment副本数kubectl scale deployment nginx-deploy --replicas=3
kubectl rollout status deployment <deployment-name> [-n <namespace>]查看滚动更新/回滚状态kubectl rollout status nginx-deploy
kubectl rollout undo deployment <deployment-name> [-n <namespace>]回滚Deployment到上一版本kubectl rollout undo nginx-deploy
3. Service(服务暴露)管理
命令说明示例
kubectl get services [-n <namespace>]列出Service列表kubectl get svc -o wide(显示类型、集群IP、外部IP)
kubectl create service clusterip <service-name> --tcp=<port>:<target-port> [-n <namespace>]创建ClusterIP类型Servicekubectl create service clusterip my-svc --tcp=80:8080
kubectl create service nodeport <service-name> --tcp=<port>:<target-port> --node-port=<port-range> [-n <namespace>]创建NodePort类型Service(指定节点端口)kubectl create service nodeport my-svc --tcp=80:8080 --node-port=30001
kubectl create service externalname <service-name> --external-name=<external-dns> [-n <namespace>]创建ExternalName类型Service(映射外部服务)kubectl create service externalname my-external-svc --external-name=db.example.com
kubectl edit service <service-name> [-n <namespace>]编辑Service配置(如修改端口、选择器)kubectl edit service my-svc
4. Ingress(外部流量路由)管理
命令说明示例
kubectl get ingress [-n <namespace>]列出Ingress规则-
kubectl create ingress <ingress-name> --rule=<host-path>=<service>:<port>创建Ingress规则(简化版)kubectl create ingress my-ingress --rule=example.com-=my-svc:80
kubectl apply -f <ingress-yaml-file>通过YAML文件管理Ingress(推荐)kubectl apply -f ./ingress.yaml

三、配置与密钥管理(ConfigMap/Secret)

1. ConfigMap(非敏感配置)
命令说明示例
kubectl create configmap <configmap-name> --from-file=<key>=<file-path>从文件创建ConfigMap(键为文件名,值为文件内容)kubectl create configmap app-config --from-file=settings.properties=./config/settings.properties
kubectl create configmap <configmap-name> --from-literal=<key>=<value>从键值对创建ConfigMapkubectl create configmap app-env --from-literal=API_URL=http://api.example.com
kubectl get configmaps [-n <namespace>]列出ConfigMap列表kubectl get cm(简写)
kubectl describe configmap <configmap-name> [-n <namespace>]查看ConfigMap详细信息(数据内容)kubectl describe cm app-config
kubectl delete configmap <configmap-name> [-n <namespace>]删除ConfigMap-
2. Secret(敏感配置,如密码、Token)
命令说明示例
kubectl create secret docker-registry <secret-name> --docker-server=<registry-url> --docker-username=<user> --docker-password=<pass>创建Docker镜像仓库认证Secretkubectl create secret docker-registry regcred --docker-server=docker.io --docker-username=admin --docker-password=123456
kubectl create secret generic <secret-name> --from-literal=<key>=<value>创建通用Secret(键值对)kubectl create secret generic db-secret --from-literal=username=admin --from-literal=password=secret
kubectl get secrets [-n <namespace>]列出Secret列表kubectl get secrets(内容默认加密显示)
kubectl describe secret <secret-name> [-n <namespace>]查看Secret元数据(实际值需解码)`kubectl get secret db-secret -o jsonpath=‘{.data.password}’

四、存储资源管理(PV/PVC/StorageClass)

命令说明示例
kubectl get pv列出持久卷(Persistent Volume)-
kubectl get pvc [-n <namespace>]列出持久卷声明(Persistent Volume Claim)kubectl get pvc -n default
kubectl create pvc <pvc-name> --capacity=<size> --storageclass=<sc-name>创建PVC(绑定StorageClass)kubectl create pvc my-pvc --capacity=10Gi --storageclass=standard
kubectl delete pvc <pvc-name> [-n <namespace>]删除PVC(自动释放PV,若未设置回收策略)-
kubectl describe pvc <pvc-name> [-n <namespace>]查看PVC绑定状态(是否绑定PV、容量)kubectl describe pvc my-pvc

五、故障排查常用命令

场景命令说明
查看集群事件kubectl get events [-n <namespace>] --sort-by='.metadata.creationTimestamp'按时间排序显示集群事件(如Pod调度失败、容器启动错误)
查看Pod状态详情kubectl describe pod <pod-name> [-n <namespace>]关键信息:Events(事件)、Status(状态)、Containers(容器状态)
检查Service端点kubectl get endpoints <service-name> [-n <namespace>]查看Service关联的Pod IP:Port(若未关联,说明标签选择器不匹配)
实时监控资源kubectl top pods [-n <namespace>]查看Pod CPU/内存使用量(需安装metrics-server)
排查网络问题kubectl exec <pod-name> -- curl <service-name>.<namespace>.svc.cluster.local从Pod内部访问其他Service(验证集群内部DNS)
检查镜像拉取问题kubectl describe pod <pod-name> [-n <namespace>]查看Events中的Failed to pull image错误(可能是镜像不存在或权限问题)

六、高级操作

场景命令说明
滚动更新Deploymentkubectl set image deployment/<deployment-name> <container-name>=<new-image> [-n <namespace>]直接更新容器镜像触发滚动更新
批量删除资源kubectl delete pods,svc -l app=my-app [-n <namespace>]按标签批量删除Pod和服务
导出资源配置YAMLkubectl get deployment <deployment-name> -o yaml > deployment.yaml导出Deployment的YAML文件(用于备份或迁移)
调试临时Podkubectl run debug-pod -it --rm --image=busybox -- sh启动一个临时交互式Pod(用于测试集群网络、存储)

附:常用参数速查

  • -n <namespace>:指定命名空间(如-n kube-system)。
  • -o <format>:输出格式(如-o wide宽格式、-o yaml YAML格式、-o json JSON格式)。
  • --all-namespaces(或-A):跨所有命名空间查询。
  • -f <file>:通过YAML/JSON文件操作资源。
  • -l <label-selector>:按标签筛选资源(如-l app=my-app,env=prod)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李白你好

年轻人,少吐槽,多搬砖

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值