上下文管理
kubectl config get-contexts
kubectl config current-context
kubectl config use-context <context-name>
基础命令:
这些命令帮助你了解 Kubernetes 集群的状态并管理基本资源。
-
查看集群信息:
kubectl cluster-info
-
查看当前配置和上下文:
kubectl config view kubectl config current-context
-
切换上下文(连接到不同的集群):
kubectl config use-context <context-name>
-
查看命名空间中的所有资源:
kubectl get all kubectl get all -n <namespace>
-
列出所有命名空间:
kubectl get namespaces
-
创建新命名空间:
kubectl create namespace <namespace-name>
-
查看 Pod 状态:
kubectl get pods kubectl get pods -n <namespace>
-
查看 Pod 详情:
kubectl describe pod <pod-name>
-
删除 Pod:
kubectl delete pod <pod-name>
部署和管理资源:
以下命令帮助你创建、更新、管理 Kubernetes 的各种资源。
-
创建资源:
从 YAML 文件中创建资源:kubectl apply -f <file.yaml>
-
更新资源(滚动更新):
kubectl apply -f <updated-file.yaml>
-
获取 Deployment 信息:
kubectl get deployment
-
查看 Deployment 详细信息:
kubectl describe deployment <deployment-name>
-
查看 Deployment 滚动更新历史:
kubectl rollout history deployment/<deployment-name>
-
回滚到上一个版本:
kubectl rollout undo deployment/<deployment-name>
-
扩展或缩减 Deployment(调整副本数):
kubectl scale deployment <deployment-name> --replicas=<number-of-replicas>
调试和日志:
调试问题时查看日志和进入容器是常见操作。
-
查看 Pod 日志:
查看最近 100 行日志:kubectl logs <pod-name> --tail=100
或查看指定容器的日志:
kubectl logs <pod-name> -c <container-name>
-
进入 Pod 中的容器(启动交互式终端):
kubectl exec -it <pod-name> -- bash
如果
bash
不可用,可以尝试sh
:kubectl exec -it <pod-name> -- sh
-
查看容器中的文件:
kubectl exec <pod-name> -- cat /path/to/file
-
获取 Pod 的 YAML 描述:
kubectl get pod <pod-name> -o yaml
高级操作:
-
端口转发(访问服务):
将本地端口转发到 Pod 的端口:kubectl port-forward <pod-name> <local-port>:<pod-port>
-
查看 Pod 事件:
kubectl get events
-
批量删除资源:
kubectl delete <resource-type> --all
例如,删除所有 Pods:
kubectl delete pods --all
-
创建 Job:
kubectl create job <job-name> --image=<image-name>
-
运行临时容器:
kubectl run -i --tty --rm debug --image=busybox -- sh
-
编辑现有资源:
kubectl edit <resource-type> <resource-name>
例如编辑 Deployment:
kubectl edit deployment <deployment-name>
集群管理:
这些命令用于监控集群和管理不同的节点。
-
列出所有节点:
kubectl get nodes
-
查看节点详细信息:
kubectl describe node <node-name>
-
污点(Taint)和容忍(Toleration)节点:
为节点添加污点:kubectl taint nodes <node-name> key=value:NoSchedule
删除污点:
kubectl taint nodes <node-name> key:NoSchedule-
清理和维护:
-
删除命名空间中的所有资源:
kubectl delete all --all -n <namespace>
-
强制删除 Pod(跳过优雅终止期):
kubectl delete pod <pod-name> --grace-period=0 --force
-
排除节点的污点和容忍问题:
如果你的 Pod 无法调度到某些节点上,检查节点的污点:kubectl describe node <node-name>
这些命令涵盖了 kubectl
的基础操作以及一些高级管理和调试操作。通过练习这些命令,你可以更好地掌握 Kubernetes 的日常管理工作。如果你有特定的需求或问题,还可以进一步深入特定领域的命令。