kubectl get pods 查看节点信息
(1) 基本命令
运行以下命令可以列出所有 Pod 及其所在的节点:

kubectl get pods -o wide

-o wide 参数会显示额外的信息,包括 Pod 所在的节点(NODE 列)。

NODE 列显示了该 Pod 被调度到的节点名称(例如 node-1)。

使用 kubectl describe pod 查看详细信息

kubectl describe pod <pod-name>

可以看到上面这个被分配到node3了


Kubernetes 的 kubectl 是与集群交互的核心命令行工具,以下是常用的基本命令分类整理,适合初学者快速上手:


1. 集群信息查询

命令 说明
kubectl cluster-info 查看集群信息(API Server地址等)
kubectl get nodes 查看所有节点状态
kubectl version 查看客户端和服务器端版本

2. Pod 管理

命令 说明
kubectl get pods 查看默认命名空间的 Pod
kubectl get pods -n <namespace> 查看指定命名空间的 Pod
kubectl describe pod <pod-name> 查看 Pod 详细信息(事件、状态等)
kubectl logs <pod-name> 查看 Pod 的日志
kubectl logs -f <pod-name> 实时跟随日志(类似 tail -f
kubectl exec -it <pod-name> -- /bin/sh 进入 Pod 的容器终端交互模式

示例

# 运行一个名为 nginx 的 Pod
kubectl run nginx --image=nginx
# 查看日志
kubectl logs nginx

3. 部署应用(Deployment)

命令 说明
kubectl create deployment <name> --image=<image> 创建 Deployment
kubectl get deployments 查看所有 Deployment
kubectl scale deployment/<name> --replicas=3 扩展副本数量
kubectl rollout status deployment/<name> 查看部署状态(更新进度)

示例

# 创建一个名为 web 的 Deployment,镜像为 nginx
kubectl create deployment web --image=nginx
# 将其扩展到 3 个副本
kubectl scale deployment/web --replicas=3

4. 服务(Service)与网络

命令 说明
kubectl expose deployment/<name> --port=80 --type=NodePort 创建 Service 暴露 Deployment
kubectl get services 查看所有 Service
kubectl port-forward <pod-name> 8080:80 将 Pod 的 80 端口映射到本地 8080

示例

# 暴露 Deployment 的端口,并允许外部访问
kubectl expose deployment/web --port=80 --type=NodePort
# 本地端口转发临时测试
kubectl port-forward pod/nginx 8080:80

5. 配置文件操作

YAML 文件是 Kubernetes 的核心配置方式,推荐以下命令:

命令 说明
kubectl apply -f <file.yaml> 基于 YAML 文件创建/更新资源
kubectl delete -f <file.yaml> 删除 YAML 文件定义的资源
kubectl get <resource> -o yaml 以 YAML 格式输出资源配置(用于调试)

示例

# 使用配置文件创建 Deployment
kubectl apply -f deployment.yaml

6. 调试与问题排查

命令 场景
kubectl describe <resource>/<name> 查看资源详细状态(如错误原因)
kubectl get events --sort-by='.metadata.creationTimestamp' 查看集群事件(按时间排序)
kubectl delete pod <pod-name> 强制删除 Pod(触发重新调度)

快捷小贴士

  1. 标签筛选:使用 -l 参数按标签过滤资源,例如:
    kubectl get pods -l app=nginx
  2. 命令补全:启用 kubectl 的自动补全功能(需配置 Shell)。
  3. 命名空间切换:通过 kubectl config set-context --current --namespace=<namespace> 设置默认命名空间。

下一步学习建议

需要任何进一步的场景演示或深入某个主题,可以随时告诉我!