第一阶段:容器与 K8S 基础

📅 第一阶段:容器与 K8S 基础 – 每日学习计划 (14天)

🎯 阶段目标

  1. 掌握 Docker 核心概念与操作
  2. 理解 Kubernetes 架构核心组件
  3. 熟练使用 kubectl 基础命令
  4. 完成本地 K8S 环境搭建

📚 每日学习安排

Day 1:Docker 基础概念

  • 理论学习:
    • 容器 vs 虚拟机区别
    • Docker 架构(Client/Server/Daemon)
    • Docker 核心概念:镜像/容器/仓库
  • 动手实践:# 安装 Docker
    curl -fsSL https://get.docker.com | sh
    docker version  # 验证安装
    docker run hello-world

Day 2:Docker 镜像操作

  • 理论学习:
    • 镜像分层原理
    • 镜像仓库类型(Docker Hub/私有仓库)
  • 动手实践:docker pull nginx:alpine
    docker images
    docker rmi <image_id>
    docker search ubuntu

Day 3:Docker 容器生命周期

  • 理论学习:
    • 容器状态管理(created/running/paused/exited)
    • 前台 vs 后台运行模式
  • 动手实践:docker run -it ubuntu /bin/bash
    docker ps -a
    docker start/stop/restart <container>
    docker rm <container>

Day 4:Dockerfile 编写

  • 理论学习:
    • Dockerfile 指令解析(FROM/RUN/COPY/CMD)
    • 构建上下文(Build Context)
  • 动手实践:# 创建简单 Dockerfile
    FROM alpine
    RUN apk add –no-cache nodejs npm
    COPY . /app
    CMD [“node”, “/app/index.js”]docker build -t my-app:v1 .

Day 5:容器网络基础

  • 理论学习:
    • 容器网络模式(bridge/host/none)
    • 端口映射原理
  • 动手实践:docker run -d -p 8080:80 –name web nginx
    curl localhost:8080
    docker network ls
    docker inspect web

Day 6:容器存储机制

  • 理论学习:
    • 数据卷(Volume)类型
    • 挂载主机目录
  • 动手实践:docker run -v /host/path:/container/path nginx
    docker volume create my-vol
    docker run -d -v my-vol:/app nginx

Day 7:Kubernetes 架构认知

  • 理论学习:
    • 控制平面组件(API Server/etcd/Scheduler)
    • 工作节点组件(kubelet/kube-proxy)
    • 声明式 API 设计哲学
  • 动手实践:# 使用 minikube 查看组件
    minikube start
    minikube kubectl get pods -n kube-system

Day 8:本地环境搭建

  • 理论学习:
    • Minikube/Kind/K3s 对比
    • 单节点集群工作原理
  • 动手实践:# 安装 minikube
    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
    sudo install minikube-linux-amd64 /usr/local/bin/minikube

    # 启动集群
    minikube start –driver=docker
    minikube status

Day 9:kubectl 核心操作

  • 理论学习:
    • kubectl 命令结构
    • 资源类型缩写(po/deploy/svc)
  • 动手实践:kubectl version
    kubectl cluster-info
    kubectl get nodes
    kubectl get all -A

Day 10:YAML 资源配置

  • 理论学习:
    • K8S 资源清单结构
    • apiVersion/kind/metadata/spec
  • 动手实践:# 创建 pod.yaml
    apiVersion: v1
    kind: Pod
    metadata:
    name: nginx-pod
    spec:
    containers:
    – name: nginx
    image: nginx:1.14.2kubectl apply -f pod.yaml
    kubectl describe pod nginx-pod

Day 11:Pod 生命周期

  • 理论学习:
    • Pod 状态(Pending/Running/Succeeded/Failed)
    • 容器探针(Liveness/Readiness)
  • 动手实践:kubectl logs nginx-pod
    kubectl exec -it nginx-pod — /bin/sh
    kubectl port-forward nginx-pod 8080:80

Day 12:命名空间管理

  • 理论学习:
    • Namespace 隔离机制
    • 系统命名空间(kube-system/kube-public)
  • 动手实践:kubectl create ns test
    kubectl get ns
    kubectl run test-pod –image=busybox -n test — sleep 3600
    kubectl delete ns test

Day 13:综合实践

  • 任务:
    1. 构建自定义 Docker 镜像并推送到 Docker Hub
    2. 编写 Pod YAML 部署该镜像
    3. 通过端口转发访问应用
  • 验证:curl http://localhost:8080

Day 14:复习与故障排查

  • 复习重点:
    • Docker 镜像构建流程
    • K8S 架构组件交互
    • kubectl 常用命令
  • 故障模拟:# 故意制造错误并修复
    kubectl apply -f broken.yaml
    kubectl describe pod <error-pod>
    kubectl logs <error-pod>

🔧 环境准备清单

  1. Linux/MacOS 主机(或 Windows WSL2)
  2. 安装 Docker Engine:https://docs.docker.com/engine/install/
  3. 安装 Minikube:https://minikube.sigs.k8s.io/docs/start/
  4. 安装 kubectl:https://kubernetes.io/docs/tasks/tools/

📚 每日学习资源

⚠️ 注意事项

  1. 每天保证至少 2 小时实践时间
  2. 所有命令必须手动输入(禁止复制粘贴)
  3. 记录操作笔记和遇到的问题
  4. 善用 --help 参数查看命令帮助

> 关键学习原则:  
> 1️⃣ 所有概念必须通过命令行实践验证  
> 2️⃣ 重点理解 `docker build/run` 和 `kubectl apply/describe` 工作流程  
> 3️⃣ 每日结束时执行 `minikube stop` 节省资源,次日 `minikube start` 恢复环境

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部