Kubernetes 入门实战指南

K8s 零基础实战:核心概念(Pod/Deployment/Service/声明式 API)、第一个部署、基本操作与 Dashboard。声明期望状态、控制器持续对齐的心智模型一篇建立。

最佳实践
容器模块与编排港口插画

直接回答:Kubernetes 用声明式 API 管理容器化应用——你描述期望状态(几个副本、什么镜像),控制器持续把现实对齐到期望。入门四件套:Pod(最小调度单位)、Deployment(副本与滚动更新)、Service(稳定访问入口)、kubectl(一切操作的命令行)。本地用 minikube/kind 起步。

核心概念速建

  • Pod:一个或多个容器的组合,共享网络与存储——K8s 调度的最小单位
  • Deployment:管理 Pod 副本集,声明镜像与副本数,滚动更新与回滚
  • Service:给一组 Pod 稳定 IP/DNS 与负载均衡
  • Namespace:逻辑隔离多团队/多环境

第一个部署

kubectl create deployment web --image=nginx:1.27
kubectl scale deployment web --replicas=3
kubectl expose deployment web --port=80 --type=NodePort
kubectl get pods -o wide     # 看副本分布

以上镜像版本仅作命令演示,部署需选受支持版本并固定产物;NodePort 可能对节点网络暴露端口,本地学习可用 ClusterIP 配合 port-forward。以下为最小示例,不含生产所需的探针、资源 requests/limits 与安全上下文。

YAML 声明式写法(推荐团队使用):

apiVersion: apps/v1
kind: Deployment
metadata: { name: web }
spec:
  replicas: 3
  selector: { matchLabels: { app: web } }
  template:
    metadata: { labels: { app: web } }
    spec:
      containers: [{ name: nginx, image: nginx:1.27 }]

基本操作

kubectl logs <pod>            # 日志
kubectl exec -it <pod> -- sh  # 进容器
kubectl rollout status deployment/web
kubectl rollout undo deployment/web
kubectl describe pod <pod>    # 排障第一动作(事件流)

部署后先确认期望副本已经就绪,再结合 kubectl describe 的事件与应用日志判断启动失败原因。Pod 显示 Running 不等于应用已经能够处理请求。

常见问题(FAQ)

Q:Pod 和容器有什么区别?
A:Pod 是容器的"舱位"——单容器 Pod 占绝大多数;多容器 Pod 用于紧耦合 sidecar(日志采集、代理)。

Q:为什么我的 Pod 一直 Pending?
A:kubectl describe pod 看事件——常见原因:资源不足无法调度、镜像拉取失败、PVC 未绑定。

Q:本地学习用 minikube 还是 kind?
A:都行。kind 面向容器化节点测试;minikube 提供可按需启用的 addons(如 metrics-server),需另核对插件维护与驱动支持。

官方参考

本文依据官方文档整理,示例未在本文中进行运行验证。生产部署需按所用版本、权限和实际负载验证。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台