云环境部署(AWS为主)与K8S微服务架构搭建

阅读材料

请先了解以下知识点

  • AWS 相关
    • 什么是 VPC
    • 什么是 EC2
    • 什么是 Amazon Elastic Block Store (EBS)
    • 什么是 Amazon Elastic File System (EFS)
    • 什么是 Amazon Simple Storage Service (S3)
    • 什么是 Amazon Elastic Kubernetes Service (EKS)
  • 学习 Kubernetes
  • 使用 Kind 部署 k8s 服务并学习
  • Kubernetes 命令行工具 kubectl
  • Kubernetes 的包管理工具:helm
  • 将公开的 Kubernetes 服务和 Ingress 与 DNS 提供商同步工具: ExternalDNS
  • SSL证书管理器: cert-manager
  • 开源监控解决方案: Prometheus
  • 日志聚合系统: Grafana Loki
  • 仪表盘:Grafana
  • 基础设施即代码(Iac)工具:Terraform

课程提纲

1. Kubernetes 学习

  1. 安装工具

    • kubectl :Kubernetes 命令行工具
    • kind :在你的本地电脑运行 Kubernetes
  2. 创建 kubernetes 集群
    参考这个教程:链接

  3. 学习 Kubernetes 基础知识

    参考这个教程:链接

2. EKS 集群部署

创建 EKS 集群可以使用以下两种方式

  • AWS 管理控制台和 AWS CLI

参考文档

配置 EKS 存储:推荐以下三种方式任选其一

3. 使用 Helm 在 EKS 集群部署服务

  1. 安装 Helm

  2. 安装示例图表

4. 学习使用 Terraform

  1. 安装 Terraform
  2. 使用 Terraform 构建、更改和销毁 AWS 基础设施

实操项目

  • 项目名称: 搭建基于Kubernetes的微服务应用
  • 项目描述: 在AWS云环境中部署一个 EKS 集群,包括多个服务,通过Kubernetes进行管理与扩展。
  • 项目步骤:
    1. 本机电脑安装必备工具 kubectl、AWS CLI、helm。
    2. 在 AWS 上部署 EKS 集群,并配置好三种存储类。
    3. 部署 external-dns 实现创建 Ingress 和 Service 自动配置域名解析。
    4. 部署 cert-manager 实现 Ingress 配置 SSL 证书,并能够自动续期 SSL 证书
    5. 部署 Grafana Loki 实现收集 kubernetes 集群内所有服务的日志。
    6. 部署 Prometheus 实现 kubernetes 集群各项指标的监控。
    7. 部署 Grafana 并配置 Loki 和 Prometheus 数据源,同时创建仪表盘可以查看 EKS 集群指标和查询集群日志。
  • 项目要求: 学员需要能够独立完成以上步骤,并对微服务架构与Kubernetes有基本的理解。
  • 拓展内容: 利用基础设施即代码的理念,使用 Terraform 工具完成以上所有步骤的一键自动化部署。

课程周期

  • 总时长: 2周
  • 1对1远程培训安排: 每周安排1次1小时的远程培训,用于解答学员在学习过程中遇到的问题,指导实操项目的进行。