当前位置: 首页 > news >正文

Kubernetes常用命令总结

文章目录

  • Kubernetes常用命令总结
    • 1. 集群管理命令
      • `kubectl cluster-info`
      • `kubectl get nodes`
      • `kubectl describe node <node-name>`
      • `kubectl top nodes`
    • 2. Pod相关命令
      • `kubectl get pods`
      • `kubectl get pods -o wide`
      • `kubectl describe pod <pod-name>`
      • `kubectl logs <pod-name>`
      • `kubectl logs <pod-name> -f`
      • `kubectl logs <pod-name> -c <container-name>`
      • `kubectl exec -it <pod-name> -- /bin/bash`
      • `kubectl delete pod <pod-name>`
      • `kubectl get pods --all-namespaces`
    • 3. Deployment相关命令
      • `kubectl get deployments`
      • `kubectl create deployment <name> --image=<image>`
      • `kubectl apply -f <deployment-file.yaml>`
      • `kubectl describe deployment <deployment-name>`
      • `kubectl scale deployment <name> --replicas=<number>`
      • `kubectl set image deployment/<name> <container-name>=<new-image>`
      • `kubectl rollout status deployment/<name>`
      • `kubectl rollout history deployment/<name>`
      • `kubectl rollout undo deployment/<name> --to-revision=<number>`
      • `kubectl delete deployment <name>`
    • 4. Service相关命令
      • `kubectl get services`
      • `kubectl create service <type> <name> --tcp=<port>:<target-port>`
      • `kubectl expose deployment <deployment-name> --port=<port> --target-port=<target-port> --type=<type>`
      • `kubectl describe service <service-name>`
      • `kubectl delete service <name>`
    • 5. 命名空间相关命令
      • `kubectl get namespaces`
      • `kubectl create namespace <name>`
      • `kubectl delete namespace <name>`
      • `kubectl get pods -n <namespace>`
      • `kubectl config set-context --current --namespace=<namespace>`
    • 6. 配置管理命令
      • `kubectl get configmaps`
      • `kubectl create configmap <name> --from-literal=<key>=<value>`
      • `kubectl create configmap <name> --from-file=<file-path>`
      • `kubectl describe configmap <name>`
      • `kubectl get secrets`
      • `kubectl create secret generic <name> --from-literal=<key>=<value>`
      • `kubectl describe secret <name>`
    • 7. 日志与监控命令
      • `kubectl logs <pod-name> --previous`
      • `kubectl top pods`
      • `kubectl get events`
      • `kubectl get events --sort-by='.lastTimestamp'`
    • 8. 问题排查命令
      • `kubectl get pods --field-selector=status.phase=Pending`
      • `kubectl get pods --field-selector=status.phase=Failed`
      • `kubectl exec -it <pod-name> -- <command>`
      • `kubectl debug <pod-name> -it --image=busybox`
      • `kubectl port-forward pod/<pod-name> <local-port>:<pod-port>`
    • 9. 资源操作通用命令
      • `kubectl apply -f <yaml-file>`
      • `kubectl delete -f <yaml-file>`
      • `kubectl get <resource-type>`
      • `kubectl get <resource-type> <resource-name> -o yaml`
      • `kubectl describe <resource-type> <resource-name>`
      • `kubectl edit <resource-type> <resource-name>`
      • `kubectl delete <resource-type> <resource-name>`
    • 10. 其他常用命令
      • `kubectl get all`
      • `kubectl get all -n <namespace>`
      • `kubectl explain <resource-type>`
      • `kubectl api-resources`
      • `kubectl config view`
      • `kubectl config use-context <context-name>`
      • `kubectl cp <local-file-path> <pod-name>:<pod-file-path>`
      • `kubectl cp <pod-name>:<pod-file-path> <local-file-path>`

Kubernetes常用命令总结

1. 集群管理命令

kubectl cluster-info

  • 说明:显示集群的基本信息,包括控制平面和服务的地址

  • 示例

    kubectl cluster-info
    
  • 输出

    Kubernetes control plane is running at https://192.168.99.100:8443
    KubeDNS is running at https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
    

kubectl get nodes

  • 说明:列出集群中的所有节点及其状态

  • 示例

    kubectl get nodes
    
  • 输出

    NAME       STATUS   ROLES           AGE   VERSION
    minikube   Ready    control-plane   10d   v1.24.3
    

kubectl describe node <node-name>

  • 说明:显示节点的详细信息,包括资源使用情况、运行的Pod等

  • 示例

    kubectl describe node minikube
    

kubectl top nodes

  • 说明:显示节点的CPU和内存使用情况

  • 示例

    kubectl top nodes
    
  • 输出

    NAME       CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
    minikube   150m         7%     1200Mi          31%
    

2. Pod相关命令

kubectl get pods

  • 说明:列出当前命名空间中的所有Pod

  • 示例

    kubectl get pods
    
  • 输出

    NAME                         READY   STATUS    RESTARTS   AGE
    nginx-deployment-7f89b7589   1/1     Running   0          5m
    

kubectl get pods -o wide

  • 说明:显示Pod的详细信息,包括IP地址和所在节点

  • 示例

    kubectl get pods -o wide
    

kubectl describe pod <pod-name>

  • 说明:显示Pod的详细描述,包括容器信息、事件等

  • 示例

    kubectl describe pod nginx-deployment-7f89b7589
    

kubectl logs <pod-name>

  • 说明:获取Pod的日志

  • 示例

    kubectl logs nginx-deployment-7f89b7589
    

kubectl logs <pod-name> -f

  • 说明:实时跟踪Pod的日志输出

  • 示例

    kubectl logs nginx-deployment-7f89b7589 -f
    

kubectl logs <pod-name> -c <container-name>

  • 说明:获取Pod中指定容器的日志(当Pod有多个容器时)

  • 示例

    kubectl logs my-pod -c my-container
    

kubectl exec -it <pod-name> -- /bin/bash

  • 说明:在Pod中执行交互式命令,通常用于进入容器

  • 示例

    kubectl exec -it nginx-deployment-7f89b7589 -- /bin/bash
    

kubectl delete pod <pod-name>

  • 说明:删除指定的Pod

  • 示例

    kubectl delete pod nginx-deployment-7f89b7589
    

kubectl get pods --all-namespaces

  • 说明:查看所有命名空间中的Pod

  • 示例

    kubectl get pods --all-namespaces
    

3. Deployment相关命令

kubectl get deployments

  • 说明:列出当前命名空间中的所有Deployment

  • 示例

    kubectl get deployments
    
  • 输出

    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    nginx-deployment   3/3     3            3           10m
    

kubectl create deployment <name> --image=<image>

  • 说明:创建一个新的Deployment

  • 示例

    kubectl create deployment nginx --image=nginx:1.21
    

kubectl apply -f <deployment-file.yaml>

  • 说明:通过YAML文件创建或更新Deployment

  • 示例

    kubectl apply -f nginx-deployment.yaml
    

kubectl describe deployment <deployment-name>

  • 说明:显示Deployment的详细信息

  • 示例

    kubectl describe deployment nginx-deployment
    

kubectl scale deployment <name> --replicas=<number>

  • 说明:调整Deployment的副本数量

  • 示例

    kubectl scale deployment nginx-deployment --replicas=5
    

kubectl set image deployment/<name> <container-name>=<new-image>

  • 说明:更新Deployment中容器的镜像

  • 示例

    kubectl set image deployment/nginx-deployment nginx=nginx:1.22
    

kubectl rollout status deployment/<name>

  • 说明:查看Deployment的更新状态

  • 示例

    kubectl rollout status deployment/nginx-deployment
    

kubectl rollout history deployment/<name>

  • 说明:查看Deployment的历史版本记录

  • 示例

    kubectl rollout history deployment/nginx-deployment
    

kubectl rollout undo deployment/<name> --to-revision=<number>

  • 说明:回滚Deployment到指定版本

  • 示例

    kubectl rollout undo deployment/nginx-deployment --to-revision=2
    

kubectl delete deployment <name>

  • 说明:删除Deployment

  • 示例

    kubectl delete deployment nginx-deployment
    

4. Service相关命令

kubectl get services

  • 说明:列出当前命名空间中的所有Service

  • 示例

    kubectl get services
    
  • 输出

    NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
    kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   10d
    nginx        ClusterIP   10.96.234.123   <none>        80/TCP    5m
    

kubectl create service <type> <name> --tcp=<port>:<target-port>

  • 说明:创建一个新的Service

  • 示例

    kubectl create service clusterip nginx --tcp=80:80
    

kubectl expose deployment <deployment-name> --port=<port> --target-port=<target-port> --type=<type>

  • 说明:为Deployment创建Service

  • 示例

    kubectl expose deployment nginx-deployment --port=80 --target-port=80 --type=NodePort
    

kubectl describe service <service-name>

  • 说明:显示Service的详细信息

  • 示例

    kubectl describe service nginx-service
    

kubectl delete service <name>

  • 说明:删除Service

  • 示例

    kubectl delete service nginx-service
    

5. 命名空间相关命令

kubectl get namespaces

  • 说明:列出集群中的所有命名空间

  • 示例

    kubectl get namespaces
    
  • 输出

    NAME              STATUS   AGE
    default           Active   10d
    kube-system       Active   10d
    kube-public       Active   10d
    kube-node-lease   Active   10d
    

kubectl create namespace <name>

  • 说明:创建一个新的命名空间

  • 示例

    kubectl create namespace my-namespace
    

kubectl delete namespace <name>

  • 说明:删除命名空间

  • 示例

    kubectl delete namespace my-namespace
    

kubectl get pods -n <namespace>

  • 说明:查看指定命名空间的Pod

  • 示例

    kubectl get pods -n kube-system
    

kubectl config set-context --current --namespace=<namespace>

  • 说明:设置当前上下文的默认命名空间

  • 示例

    kubectl config set-context --current --namespace=my-namespace
    

6. 配置管理命令

kubectl get configmaps

  • 说明:列出当前命名空间中的ConfigMap

  • 示例

    kubectl get configmaps
    

kubectl create configmap <name> --from-literal=<key>=<value>

  • 说明:创建ConfigMap

  • 示例

    kubectl create configmap app-config --from-literal=APP_ENV=production --from-literal=MAX_USERS=100
    

kubectl create configmap <name> --from-file=<file-path>

  • 说明:从文件创建ConfigMap

  • 示例

    kubectl create configmap app-config --from-file=config.properties
    

kubectl describe configmap <name>

  • 说明:查看ConfigMap详情

  • 示例

    kubectl describe configmap app-config
    

kubectl get secrets

  • 说明:列出当前命名空间中的Secret

  • 示例

    kubectl get secrets
    

kubectl create secret generic <name> --from-literal=<key>=<value>

  • 说明:创建Secret

  • 示例

    kubectl create secret generic db-credentials --from-literal=username=admin --from-literal=password=secretpassword
    

kubectl describe secret <name>

  • 说明:查看Secret详情

  • 示例

    kubectl describe secret db-credentials
    

7. 日志与监控命令

kubectl logs <pod-name> --previous

  • 说明:查看Pod之前的日志(如果Pod重启过)

  • 示例

    kubectl logs nginx-deployment-7f89b7589 --previous
    

kubectl top pods

  • 说明:查看Pod的CPU和内存使用情况

  • 示例

    kubectl top pods
    

kubectl get events

  • 说明:查看集群中的事件,有助于排查问题

  • 示例

    kubectl get events
    

kubectl get events --sort-by='.lastTimestamp'

  • 说明:按时间排序查看事件

  • 示例

    kubectl get events --sort-by='.lastTimestamp'
    

8. 问题排查命令

kubectl get pods --field-selector=status.phase=Pending

  • 说明:查看处于Pending状态的Pod,通常表示有调度问题

  • 示例

    kubectl get pods --field-selector=status.phase=Pending
    

kubectl get pods --field-selector=status.phase=Failed

  • 说明:查看处于Failed状态的Pod

  • 示例

    kubectl get pods --field-selector=status.phase=Failed
    

kubectl exec -it <pod-name> -- <command>

  • 说明:在Pod中执行命令,用于检查容器内部情况

  • 示例

    # 检查网络连接
    kubectl exec -it nginx-deployment-7f89b7589 -- ping -c 3 google.com# 检查文件系统
    kubectl exec -it nginx-deployment-7f89b7589 -- df -h# 检查内存使用
    kubectl exec -it nginx-deployment-7f89b7589 -- free -m
    

kubectl debug <pod-name> -it --image=busybox

  • 说明:创建一个调试容器连接到Pod

  • 示例

    kubectl debug nginx-deployment-7f89b7589 -it --image=busybox
    

kubectl port-forward pod/<pod-name> <local-port>:<pod-port>

  • 说明:将本地端口转发到Pod端口,用于测试连接

  • 示例

    kubectl port-forward pod/nginx-deployment-7f89b7589 8080:80
    

9. 资源操作通用命令

kubectl apply -f <yaml-file>

  • 说明:通过YAML文件创建或更新资源

  • 示例

    kubectl apply -f deployment.yaml
    

kubectl delete -f <yaml-file>

  • 说明:通过YAML文件删除资源

  • 示例

    kubectl delete -f deployment.yaml
    

kubectl get <resource-type>

  • 说明:查看指定类型资源

  • 示例

    kubectl get deployments
    kubectl get services
    kubectl get configmaps
    

kubectl get <resource-type> <resource-name> -o yaml

  • 说明:以YAML格式查看资源详情

  • 示例

    kubectl get deployment nginx-deployment -o yaml
    

kubectl describe <resource-type> <resource-name>

  • 说明:查看指定资源详情

  • 示例

    kubectl describe service nginx-service
    

kubectl edit <resource-type> <resource-name>

  • 说明:编辑资源配置

  • 示例

    kubectl edit deployment nginx-deployment
    

kubectl delete <resource-type> <resource-name>

  • 说明:删除资源

  • 示例

    kubectl delete pod my-pod
    kubectl delete deployment my-deployment
    

10. 其他常用命令

kubectl get all

  • 说明:查看当前命名空间中的所有资源

  • 示例

    kubectl get all
    

kubectl get all -n <namespace>

  • 说明:查看指定命名空间中的所有资源

  • 示例

    kubectl get all -n kube-system
    

kubectl explain <resource-type>

  • 说明:获取资源类型的详细说明

  • 示例

    kubectl explain deployment
    kubectl explain pod.spec.containers
    

kubectl api-resources

  • 说明:查看所有API资源类型

  • 示例

    kubectl api-resources
    

kubectl config view

  • 说明:查看kubectl配置

  • 示例

    kubectl config view
    

kubectl config use-context <context-name>

  • 说明:切换集群上下文

  • 示例

    kubectl config use-context minikube
    

kubectl cp <local-file-path> <pod-name>:<pod-file-path>

  • 说明:复制文件到Pod

  • 示例

    kubectl cp local-file.txt my-pod:/tmp/remote-file.txt
    

kubectl cp <pod-name>:<pod-file-path> <local-file-path>

  • 说明:从Pod复制文件到本地

  • 示例

    kubectl cp my-pod:/tmp/remote-file.txt local-file.txt
    
http://www.lryc.cn/news/593577.html

相关文章:

  • MySQL 深度性能优化配置实战指南
  • 单例模式的设计与实现
  • Salesforce 与外部系统实时集成:基于事件驱动的异步集成架构
  • ChatGPT Agent深度解析:告别单纯问答,一个指令搞定复杂任务?
  • (LeetCode 面试经典 150 题) 49. 字母异位词分组 (哈希表)
  • 软件工程:可行性分析的任务及报告
  • picoCTF 2024: [[NoSQL]] Injection - Writeup
  • JAVA中的Collections 类
  • 【数据结构】二叉树初阶详解(一):树与二叉树基础 + 堆结构全解析
  • windows wsl2-05-docker 安装笔记
  • 光盘存储器的组成与分类
  • 从“数字土著”到“数据公民”:K-12数据伦理课程的设计、实施与成效追踪研究
  • Codeforces Round 1037 (Div. 3)(补题)
  • Codeforces Round 1037(Div.3)
  • 搭建比分网服务器怎么选数据不会卡顿?
  • 配置华为交换机接口链路聚合-支持服务器多网卡Bind
  • 数据结构:字符串(Strings)
  • RGB转灰度方法汇总
  • 本地安装部署Unstructured-api
  • Flutter基础(前端教程①③-单例)
  • 优先算法——专题十:哈希表
  • kafka--基础知识点--6--AR、ISR、OSR
  • Django母婴商城项目实践(九)- 商品列表页模块
  • [论文阅读] 软件工程 | 用模糊逻辑“解锁”项目成功:告别非黑即白的评估时代
  • 多进程服务器
  • 千线万网,电路之行——LVS检查的内核逻辑
  • k8s 基本架构
  • K8s与Helm实战:从入门到精通
  • 第五章 用Java实现JVM之运行时数据区
  • Linux内核设计与实现 - 第5章 系统调用