kubectl cluster-info:查看集群信息(API Server 地址等)。案例:检查集群是否正常运行,执行kubectl cluster-info。
kubectl get nodes:查看集群所有节点状态。案例:列出节点及状态(Ready 为正常),执行kubectl get nodes。
kubectl describe node <节点名>:查看节点详细信息(资源、标签等)。案例:查看节点node-1的详情,执行kubectl describe node node-1。
2. Pod 操作(Pod 是最小部署单元,含一个或多个容器)
bash复制代码
kubectl get pods:查看当前命名空间的 Pod。案例:列出所有运行中的 Pod,执行kubectl get pods。
kubectl get pods -n <命名空间>:查看指定命名空间的 Pod。案例:查看kube-system命名空间的 Pod(系统组件),执行kubectl get pods -n kube-system。
kubectl get pods -o wide:查看 Pod 的 IP、运行节点等详细信息。案例:查看 Pod 的 IP 和所在节点,执行kubectl get pods -o wide。
kubectl describe pod <pod名>:查看 Pod 详情(事件、容器状态等)。案例:查看mypod的详情(排查启动失败原因),执行kubectl describe pod mypod。
kubectl logs <pod名>:查看 Pod 中容器的日志(多容器需用-c <容器名>指定)。案例:查看mypod中 nginx 容器的日志,执行kubectl logs mypod -c nginx。
kubectl exec -it <pod名> -- <命令>:进入 Pod 中的容器执行命令。案例:进入mypod的 nginx 容器,执行kubectl exec -it mypod -- /bin/bash。
kubectl delete pod <pod名>:删除 Pod。案例:删除mypod,执行kubectl delete pod mypod。
3. Deployment 操作(管理 Pod 的控制器,负责 Pod 的创建、扩缩容、更新)
bash复制代码
kubectl get deployments:查看 Deployment 列表。案例:列出所有 Deployment,执行kubectl get deployments。
kubectl create deployment <名称> --image=<镜像>:快速创建 Deployment。案例:创建名为mydeploy、使用 nginx 镜像的 Deployment,执行kubectl create deployment mydeploy --image=nginx:latest。
kubectl scale deployment <名称> --replicas=<数量>:扩缩容 Deployment(调整 Pod 副本数)。案例:将mydeploy的 Pod 副本数调整为 3,执行kubectl scale deployment mydeploy --replicas=3。
kubectl set image deployment <名称> <容器名>=<新镜像>:更新 Deployment 的容器镜像(滚动更新)。案例:将mydeploy中 nginx 容器的镜像更新为nginx:1.21,执行kubectl set image deployment mydeploy nginx=nginx:1.21。
kubectl rollout status deployment <名称>:查看 Deployment 更新状态。案例:查看mydeploy的滚动更新进度,执行kubectl rollout status deployment mydeploy。
kubectl rollout undo deployment <名称>:回滚 Deployment 到上一版本。案例:回滚mydeploy的更新,执行kubectl rollout undo deployment mydeploy。
kubectl delete deployment <名称>:删除 Deployment(关联的 Pod 会被自动删除)。案例:删除mydeploy,执行kubectl delete deployment mydeploy。
4. Service 操作(暴露 Pod 网络,实现 Pod 访问入口)
bash复制代码
kubectl get services(简写kubectl get svc):查看 Service 列表。案例:列出所有 Service,执行kubectl get svc。
kubectl expose deployment <deployment名> --port=<端口> --target-port=<容器端口> --type=<类型>:为 Deployment 创建 Service。案例:为mydeploy创建 NodePort 类型的 Service(外部可通过节点 IP + 端口访问),执行kubectl expose deployment mydeploy --port=80 --target-port=80 --type=NodePort。
kubectl describe service <service名>:查看 Service 详情(IP、端口映射等)。案例:查看mydeploy对应的 Service 详情,执行kubectl describe service mydeploy。
kubectl delete service <service名>:删除 Service。案例:删除mydeploy对应的 Service,执行kubectl delete service mydeploy。
5. 配置管理(ConfigMap/Secret,存储配置信息)
bash复制代码
kubectl create configmap <名称> --from-literal=<键=值>:创建 ConfigMap(存储非敏感配置)。案例:创建myconfig,存储env=prod,执行kubectl create configmap myconfig --from-literal=env=prod。
kubectl create secret generic <名称> --from-literal=<键=值>:创建 Secret(存储敏感配置,如密码)。案例:创建mysecret,存储password=123456,执行kubectl create secret generic mysecret --from-literal=password=123456。
kubectl get configmaps(简写cm):查看 ConfigMap。案例:列出所有 ConfigMap,执行kubectl get cm。
kubectl get secrets:查看 Secret。案例:列出所有 Secret,执行kubectl get secrets。