云原生部署

终极前沿。您将构建一个完整的云原生交付流水线:使用 GitHub Actions 自动化测试、使用 Terraform 编排基础设施、部署到 Kubernetes,并使用 Python 将所有内容进行编排。

DevOps 工程师KubernetesDevOpsPython

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

云原生交付结合多种自动化形式:CI 工作流定义、基础设施即代码、声明式编排和运维数据处理。本挑战型项目通过预置本地环境中的具体交付物分别检验这些能力。

你将编写 GitHub Actions Workflow、通过 Terraform 创建 Docker 容器、应用包含多个资源的 Kubernetes Manifest,并编写 Python 访问日志分析器。各阶段共享交付主题,但它们是独立验收的练习,并非已经连通的生产流水线。

你将学到什么

  • 定义名为 Node.js CI 的 GitHub Actions Workflow,在推送到 main 时执行 Checkout、Node 设置、依赖安装和测试
  • 配置 Terraform Docker Provider,并创建名为 terraform-web、映射 8080:80 的 Nginx 容器
  • 初始化并应用 Terraform,再通过 Docker 和 HTTP 验证本地受管容器
  • 编写并应用包含三个 nginx:alpine 副本且标签与选择器匹配的 Kubernetes Deployment
  • 使用 NodePort Service 暴露 Kubernetes 工作负载,并确认两个资源存在于本地集群
  • 使用 Python 解析预置访问日志,用 Set 去重第一列 IP 地址并输出数量

本课程适合谁

本项目适合准备在没有逐条命令指导的情况下运用入门 CI、Terraform、Kubernetes 和 Python 技能的 DevOps 学习者。

前置要求: 熟悉 YAML、GitHub Actions 结构、Terraform Provider 与 Resource、Docker 端口、Kubernetes Deployment 与 Service、Python 文件迭代和 Set,以及 Linux 终端;这是考核型项目。

学习环境: 可通过浏览器访问的 Linux 主机,配有 Docker、Terraform、本地 Minikube Kubernetes 集群、kubectl、Python 3、Node.js 项目上下文和预置访问日志;无需云账户或推送到 GitHub。

常见问题

GitHub Actions Workflow 会真的在 GitHub 上运行吗?

不会。你只在本地创建并验证 .github/workflows/ci.yml。项目明确不要求推送仓库、运行托管 Runner 或证明 npm test 在远程通过。

Terraform 会配置云基础设施吗?

不会。Terraform 使用 kreuzwerker/docker Provider 拉取 nginx:latest 并运行一个本地容器;云 Provider、远程 State、Module 和生产网络不在任务范围内。

Kubernetes 部署会与 Terraform 容器或 CI 工作流连接吗?

不会。它是独立的本地 Minikube 练习。你会创建三个副本的 nginx:alpine Deployment 和 NodePort Service,但没有流水线部署它,Terraform 也不管理它。

Python 自动化具体做什么?

它读取预置 access.log,提取每行第一列,用 Set 统计唯一 IP,并输出 Unique IPs: 10。它不流式读取日志、不调用 API,也不修改基础设施。

教师

labby
Labby
Labby is the LabEx teacher.

为您推荐

no data