k8s-K8S常用命令

"nginx"

Posted by yangsir on December 4, 2024

“Yeah It’s on. ”

K8S常用命令

1. 集群信息

  • 获取集群的配置信息:

    1
    
    kubectl cluster-info
    
  • 查看当前上下文信息(当前使用的集群、用户等):

    1
    
    kubectl config current-context
    
  • 获取节点信息(查看集群的所有节点):

    1
    
    kubectl get nodes
    

2. Pod 管理

  • 查看所有 pod 的状态:

    1
    
    kubectl get pods
    
  • 查看某个命名空间下的所有 pod:

    1
    
    kubectl get pods -n <namespace>
    
  • 查看某个 pod 的详细信息:

    1
    
    kubectl describe pod <pod_name>
    
  • 查看某个 pod 的日志:

    1
    
    kubectl logs <pod_name>
    
  • 查看某个容器的日志(如果 pod 中有多个容器):

    1
    
    kubectl logs <pod_name> -c <container_name>
    
  • 查看pod日志(如果pod有多个副本):

    1
    
    kubectl get pods -l app=<app_label> -n <namespace>
    
  • 删除 pod:

    1
    
    kubectl delete pod <pod_name>
    

3. Deployment 管理

  • 查看所有部署(Deployment):

    1
    
    kubectl get deployments
    
  • 查看指定部署的详细信息:

    1
    
    kubectl describe deployment <deployment_name>
    
  • 更新部署:

    1
    
    kubectl set image deployment/<deployment_name> <container_name>=<new_image>
    
  • 删除部署:

    1
    
    kubectl delete deployment <deployment_name>
    

4. Service 管理

  • 查看所有服务(Service):

    1
    
    kubectl get services
    
  • 查看指定服务的详细信息:

    1
    
    kubectl describe service <service_name>
    
  • 暴露部署为服务:

    1
    
    kubectl expose deployment <deployment_name> --type=LoadBalancer --name=<service_name>
    
  • 删除服务:

    1
    
    kubectl delete service <service_name>
    

5. Namespace 管理

  • 查看所有命名空间:

    1
    
    kubectl get namespaces
    
  • 创建新命名空间:

    1
    
    kubectl create namespace <namespace_name>
    
  • 删除命名空间:

    1
    
    kubectl delete namespace <namespace_name>
    

6. ConfigMap 和 Secret 管理

  • 查看所有 ConfigMap:

    1
    
    kubectl get configmap
    
  • 查看指定 ConfigMap 的详细内容:

    1
    
    kubectl describe configmap <configmap_name>
    
  • 查看所有 Secrets:

    1
    
    kubectl get secrets
    
  • 查看指定 Secret 的详细内容:

    1
    
    kubectl describe secret <secret_name>
    

7. Pod 与节点调度

  • 将 pod 调度到指定节点:

    1
    2
    3
    4
    5
    6
    7
    
    kubectl run <pod_name> --image=<image_name> --overrides='
    {
      "apiVersion": "v1",
      "spec": {
        "nodeName": "<node_name>"
      }
    }'
    

8. Pod 调试

  • 打开某个 pod 的交互式 shell:

    1
    
    kubectl exec -it <pod_name> -- /bin/bash
    
  • 在指定容器中执行命令:

    1
    
    kubectl exec -it <pod_name> -c <container_name> -- /bin/bash
    

9. 资源限制与监控

  • 获取集群资源使用情况:

    1
    2
    
    kubectl top nodes
    kubectl top pods
    
  • 查看 Pod 或 Node 的事件日志(例如,调度失败或容器崩溃的详细信息):

    1
    
    kubectl get events
    

10. 集群扩容与缩容

  • 扩展部署副本数:

    1
    
    kubectl scale deployment <deployment_name> --replicas=<replica_count>
    
  • 缩减部署副本数:

    1
    
    kubectl scale deployment <deployment_name> --replicas=<replica_count>
    

11. Kubectl 命令别名

为了提高工作效率,通常运维人员会设置一些常用命令的别名。例如:

1
2
3
alias k="kubectl"
alias kgp="kubectl get pods"
alias kga="kubectl get all"

12. 集群升级

  • 使用 kubectl 升级某个资源:

    1
    
    kubectl apply -f <yaml_file>
    

13. 其他常用命令

  • 通过 YAML 文件创建资源:

    1
    
    kubectl apply -f <yaml_file>
    
  • 导出资源的 YAML 配置:

    1
    
    kubectl get <resource> <resource_name> -o yaml > <file_name>.yaml