超详细!Kubernetes 集群管理与 Pod 操作指南(小白友好版)

作为容器编排领域的王者,Kubernetes 的管理命令常常让新手望而生畏。本文将用最通俗易懂的语言,手把手带你掌握 Kubernetes 集群管理的核心操作技巧。从基础信息查询高级资源监控,每个命令都配有详细解释+实战案例,看完就能直接上手!

一、集群信息查询(小白必学)

Pod 创建过程

1. 帮助命令:kubectl help

作用:查看任意命令的使用说明(就像游戏的帮助手册)
使用场景:忘记命令参数时随时查阅

# 查看 version 命令的详细说明
kubectl help version

# 输出示例:
# Print the client and server versions for the current context
# kubectl version
2. 集群状态检查:kubectl cluster-info

作用:显示集群核心组件地址(一眼看出集群是否正常)

kubectl cluster-info

# 输出示例:
Kubernetes control plane is running at https://192.168.88.50:6443
CoreDNS is running at https://192.168.88.50:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

关键输出解析

  • control plane:控制节点地址
  • CoreDNS:集群 DNS 服务地址

3. 资源对象查询:kubectl api-resources

作用:列出所有支持的资源类型(就像查看 Kubernetes 的“物种清单”)

kubectl api-resources

# 输出示例:
NAME             SHORTNAMES   APIVERSION     NAMESPACED   KIND
pods             po           v1             true         Pod
services         svc          v1             true         Service
deployments      deploy       apps/v1        true         Deployment

常用参数

  • --namespaced:过滤是否属于命名空间资源

4. 版本信息查询:kubectl api-versions

作用:查看资源对象的 API 版本(避免版本不兼容问题)

kubectl api-versions

# 输出示例:
admissionregistration.k8s.io/v1
apps/v1
autoscaling/v1
batch/v1

5. 认证配置管理:kubectl config

作用:管理集群连接凭证(相当于 Kubernetes 的“钥匙串”)

# 查看当前上下文(正在使用的集群配置)
kubectl config get-contexts

# 查看详细配置(包含证书和服务器地址)
kubectl config view

# 输出示例:
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.88.50:6443
  name: kubernetes
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED

二、集群管理授权实战

1. 多节点管理配置

场景:在 Harbor 主机上管理集群

# Step 1 - 配置 hosts 解析
echo '192.168.88.50 master' >> /etc/hosts

# Step 2 - 安装 kubectl
dnf install -y kubectl

# Step 3 - 同步管理员配置文件
mkdir -p $HOME/.kube
rsync master:/etc/kubernetes/admin.conf $HOME/.kube/config

# Step 4 - 验证节点状态
kubectl get nodes

关键点

  • admin.conf 文件包含集群管理员证书
  • 文件权限必须正确(通常设置为 600)

三、Pod 全生命周期管理

1. 创建第一个 Pod
# 从私有仓库拉取镜像并创建 Pod
kubectl run myweb --image=harbor:443/library/myos:httpd

# 查看 Pod 状态
kubectl get pods -o wide

# 输出示例:
NAME     READY   STATUS    IP           NODE
myweb    1/1     Running   10.244.1.3   node-0001

注意事项

  • --image 指定镜像地址,格式为 仓库地址/项目名/镜像:标签
  • 若出现 ImagePullBackOff 错误,检查镜像权限和网络

2. Pod 状态深度检查
# 查看详细配置(YAML 格式)
kubectl get pod myweb -o yaml

# 查看事件日志(排查启动故障)
kubectl describe pod myweb

# 查看容器日志(类似 docker logs)
kubectl logs myweb

输出解析

  • Events 部分显示 Pod 调度、镜像拉取、启动全过程
  • Conditions 显示当前状态(如 PodScheduled、Ready)

3. 进入容器调试
# 在容器内执行命令(查看进程)
kubectl exec myweb -- ps aux

# 进入容器交互模式(类似 docker exec -it)
kubectl exec -it myweb -- bash

# 容器与宿主机文件传输
kubectl cp myweb:/etc/hosts /tmp/hosts-copy
kubectl cp /tmp/file.txt myweb:/app/

4. 删除 Pod 的正确姿势
# 删除单个 Pod
kubectl delete pod myweb

# 删除命名空间下所有 Pod
kubectl delete pods --all -n work

# 强制删除(卡在 Terminating 时使用)
kubectl delete pod myweb --force --grace-period=0

四、资源监控与性能分析

1. 安装 Metrics Server

作用:监控节点和 Pod 的 CPU/内存使用情况

# 加载监控组件镜像
docker load -i metrics-server.tar.xz

# 部署 Metrics Server
kubectl apply -f components.yaml

# 验证安装
kubectl -n kube-system get pods | grep metrics-server

2. 实时资源监控
# 查看节点资源使用
kubectl top nodes

# 查看 Pod 资源使用
kubectl top pods

# 输出示例:
NAME     CPU(cores)   MEMORY(bytes)
myweb    5m           50Mi

五、声明式资源管理(YAML 实战)

1. 创建资源清单文件
apiVersion: v1
kind: Pod
metadata:
  name: myweb
spec:
  containers:
  - name: nginx
    image: myos:nginx
    ports:
    - containerPort: 80

2. 常用管理命令对比

命令

特点

使用场景

kubectl create

只能创建新资源

初始化部署

kubectl apply

创建或更新资源(幂等操作)

持续集成/滚动更新

kubectl delete

删除资源

清理环境

kubectl replace

强制替换配置

紧急修复

# 声明式创建资源
kubectl apply -f myweb.yaml

# 强制重建 Pod
kubectl replace --force -f myweb.yaml

六、常见问题排查指南

  1. Pod 一直处于 Pending 状态
    • 检查节点资源:kubectl describe node
    • 查看事件日志:kubectl describe pod <name>
  1. 镜像拉取失败(ImagePullBackOff)
    • 验证镜像地址是否正确
    • 检查 Harbor 证书配置:cat /etc/containerd/config.toml
  1. 节点 NotReady 状态
    • 检查 kubelet 服务:systemctl status kubelet
    • 查看证书状态:kubectl get csr

总结

通过本文的学习,你已经掌握了 Kubernetes 集群管理的核心技能。建议在日常工作中:

  1. 多使用 kubectl describe 查看详细信息
  2. 重要操作前备份 YAML 文件
  3. 善用 -o wide/yaml/json 参数查看不同格式输出

进阶学习路线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值