Post

kubectl 基础命令

kubectl

简介

  • kubectl 是 Kubernetes 命令行工具,用于与 Kubernetes 集群进行交互和管理。
  • 它可以用来部署应用程序,管理集群资源(例如 Pod、Service 和 ReplicaSet 等),
  • 诊断和调试问题,以及执行其他与 Kubernetes 相关的任务。通过 kubectl,您可以在命令行界面中执行所有 Kubernetes API 操作,并对集群的状态进行操作。
  • kubectl 是使用 Go 语言编写的开源软件,在安装了 Kubernetes 的任何机器上均可使用。

基础命令

好的,为了更加详细地回答您的问题,以下是一些 kubectl 的基础命令及其用法:

  1. 获取集群信息:

    1
    2
    3
    4
    5
    
    # 查看 Kubernetes 集群信息
    kubectl cluster-info
    
    # 查看节点列表
    kubectl get nodes
    
  2. 获取资源对象信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    # 获取 Pod 列表
    kubectl get pods
    
    # 获取 Service 列表
    kubectl get services
    
    # 获取 Deployment 列表
    kubectl get deployments
    
    # 获取 ReplicaSet 列表
    kubectl get replicasets
    
  3. 创建、更新和删除资源对象:

    1
    2
    3
    4
    5
    6
    7
    8
    
    # 通过 YAML 文件创建资源对象
    kubectl create -f <YAML_FILE>
    
    # 更新资源对象
    kubectl apply -f <YAML_FILE>
    
    # 删除资源对象
    kubectl delete -f <YAML_FILE>
    
  4. 查看资源对象的详细信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    # 查看 Pod 详细信息
    kubectl describe pod <POD_NAME>
    
    # 查看 Service 详细信息
    kubectl describe service <SERVICE_NAME>
    
    # 查看 Deployment 详细信息
    kubectl describe deployment <DEPLOYMENT_NAME>
    
    # 查看 ReplicaSet 详细信息
    kubectl describe replicaset <REPLICASET_NAME>
    
  5. 查看 Pod 日志:

    1
    
    kubectl logs <POD_NAME>
    
  6. 进入 Pod 中的容器:

    1
    
    kubectl exec -it <POD_NAME> bash
    
  7. 扩容和缩容应用程序:

    1
    2
    3
    4
    5
    
    # 扩容 Deployment 的副本数
    kubectl scale --replicas=<REPLICA_COUNT> deployment/<DEPLOYMENT_NAME>
    
    # 缩容 Deployment 的副本数
    kubectl scale --replicas=<REPLICA_COUNT> deployment/<DEPLOYMENT_NAME>
    
  8. 滚动升级应用程序:

    1
    2
    3
    4
    5
    6
    7
    8
    
    # 开始滚动升级
    kubectl set image deployment/<DEPLOYMENT_NAME> <CONTAINER_NAME>=<NEW_IMAGE>:<TAG>
    
    # 查看滚动升级状态
    kubectl rollout status deployment/<DEPLOYMENT_NAME>
    
    # 回滚到先前的版本
    kubectl rollout undo deployment/<DEPLOYMENT_NAME>
    

高级命令

好的,以下是一些更加高级的 kubectl 命令及其用法:

  1. 使用 kubectl port-forward 命令将本地端口绑定到 Pod 端口:

    1
    
    kubectl port-forward <POD_NAME> <LOCAL_PORT>:<REMOTE_PORT>
    

    该命令会将本地端口 <LOCAL_PORT> 绑定到远程 Pod 的端口 <REMOTE_PORT>。例如,要将本地端口 8080 绑定到名为 my-pod 的 Pod 中的端口 80,可以使用以下命令:

    1
    
    kubectl port-forward my-pod 8080:80
    
  2. 使用 kubectl cp 命令在容器和本地文件系统之间复制文件:

    1
    2
    
    kubectl cp <POD_NAME>:<CONTAINER_PATH> <LOCAL_PATH>
    kubectl cp <LOCAL_PATH> <POD_NAME>:<CONTAINER_PATH>
    

    该命令可以将文件从本地文件系统复制到运行中的容器中,或者将文件从容器中复制到本地文件系统中。例如,要将名为 my-pod 的容器中的 /app/logs 目录复制到本地文件系统中的 /tmp 目录,可以使用以下命令:

    1
    
    kubectl cp my-pod:/app/logs /tmp
    
  3. 使用 kubectl top 命令查看节点和 Pod 的 CPU 和内存使用情况:

    1
    2
    3
    4
    5
    
    # 查看节点的 CPU 和内存使用情况
    kubectl top node
    
    # 查看 Pod 的 CPU 和内存使用情况
    kubectl top pod
    
  4. 使用 kubectl proxy 命令在 Kubernetes API 服务器和本地之间建立代理:

    1
    
    kubectl proxy
    

    该命令会在本地启动一个代理,将 Kubernetes API 服务器和本地连接起来。通过访问 http://localhost:8001,您可以访问 Kubernetes API,并查看集群状态、部署资源等。

This post is licensed under CC BY 4.0 by the author.