“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