K8S 精简参考手册

admin 发布于 13 天前 9 次阅读


1. 最常用查看

kubectl get nodes                 # 看节点
kubectl get pods -A              # 看所有 Pod
kubectl get pods -o wide         # 看 Pod IP / 节点
kubectl get deployment           # 看 Deployment
kubectl get svc                  # 看 Service
kubectl get configmap            # 看 ConfigMap
kubectl get secret               # 看 Secret

2. 最常用排障

kubectl describe pod <pod名>      # 看 Pod 详细信息和 Events
kubectl logs <pod名>              # 看容器日志
kubectl exec -it <pod名> -- sh    # 进容器
kubectl exec -it <pod名> -- ping -c 4 <IP>   # 容器里测试连通性

3. 应用 YAML

kubectl apply -f xxx.yaml         # 创建/更新资源
kubectl delete -f xxx.yaml        # 删除资源
kubectl delete pod <pod名>        # 删除 Pod

4. 生成 YAML 模板(最实用)

4.1 Deployment

kubectl create deployment my-app \
  --image=docker.m.daocloud.io/library/nginx:1.25 \
  --dry-run=client -o yaml > my-app.yaml

4.2 Service

kubectl expose deployment my-app \
  --name=my-svc \
  --port=80 \
  --target-port=80 \
  --dry-run=client -o yaml > my-svc.yaml

4.3 ConfigMap

kubectl create configmap my-config \
  --from-literal=key1=value1 \
  --dry-run=client -o yaml > my-config.yaml

4.4 Secret

kubectl create secret generic my-secret \
  --from-literal=password=abc123 \
  --dry-run=client -o yaml > my-secret.yaml

5. Deployment 常用操作

kubectl get deployment
kubectl scale deployment web-demo --replicas=3   # 改副本数
kubectl describe deployment web-demo             # 看详情

6. Pod 跨节点通信测试

创建两个测试 Pod

kubectl apply -f nettest-1.yaml
kubectl apply -f nettest-2.yaml
kubectl get pods -o wide

互 ping

kubectl exec -it nettest-1 -- ping -c 4 <nettest-2的PodIP>
kubectl exec -it nettest-2 -- ping -c 4 <nettest-1的PodIP>

通过标准

4 packets transmitted, 4 packets received, 0% packet loss

7. 镜像拉取排障

看报错

kubectl describe pod <pod名>

常见错误:

  • ErrImagePull:拉镜像失败
  • ImagePullBackOff:反复拉失败后退避

containerd 测试拉取

sudo crictl pull docker.io/library/busybox:1.36
sudo ctr -n k8s.io images pull --hosts-dir /etc/containerd/certs.d docker.io/library/busybox:1.36

8. crictl 配置

sudo tee /etc/crictl.yaml >/dev/null <<'EOF'
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF

9. YAML 文件查看与编辑

ls                        # 看目录
cat xxx.yaml              # 看文件内容
nano xxx.yaml             # 编辑文件
cp a.yaml b.yaml          # 复制文件

10. 你当前最常见对象含义

  • Pod:真正跑容器的地方
  • Deployment:管理 Pod 副本和更新
  • Service:给 Pod 一个稳定入口
  • ConfigMap:存普通配置
  • Secret:存密码/密钥

11. 最短工作流

# 1 生成模板
kubectl create deployment my-app --image=docker.m.daocloud.io/library/nginx:1.25 --dry-run=client -o yaml > my-app.yaml

# 2 编辑文件
nano my-app.yaml

# 3 应用
kubectl apply -f my-app.yaml

# 4 查看
kubectl get deployment
kubectl get pods -o wide

# 5 出问题排查
kubectl describe pod <pod名>
kubectl logs <pod名>

12. 速记

  • get:看列表
  • describe:看详情
  • logs:看日志
  • exec:进容器执行命令
  • apply:应用 YAML
  • delete:删除资源
  • scale:改副本数
  • --dry-run=client -o yaml:生成 YAML 模板
此作者没有提供个人介绍。
最后更新于 2026-04-23