7.6.2 使用 GitHub Actions 自动化 Kubernetes 清单验证

GitHub Actions 是我们用来实现 Catalog Service 部署流水线提交阶段的工作流引擎。让我们扩展它以包含 Kubernetes 清单验证步骤,如图 7.15 所示。

转到您的 Catalog Service 项目(catalog-service),打开 .github/workflows 文件夹中的 commit-stage.yml 文件。要实现验证步骤,我们将依赖由 Stefan Prodan 构建的 action。他是 FluxCD 的维护者,FluxCD 是一个 CNCF 孵化项目,提供基于 GitOps 原则在 Kubernetes 上的持续部署解决方案。该 action 允许您安装特定版本的有用的 Kubernetes 相关工具。我们将配置该 action 安装 kubectl 和 Kubeval。

# 代码清单 7.7 验证 Catalog Service 的 Kubernetes 清单

name: Commit Stage
on: push
...
jobs:
 build:
 name: Build and Test
 ...
 steps:
 ...
 - name: Validate Kubernetes manifests # 验证 Kubernetes 清单
 uses: stefanprodan/kube-tools@v1 # 能够安装有用 Kubernetes 工具的 action
 with:
 kubectl: 1.24.3 # 在安装中包含 Kubernetes CLI
 kubeval: 0.16.1 # 在安装中包含 Kubeval
 command: |
 kubeval --strict -d k8s # 使用 Kubeval 验证 k8s 文件夹中的 Kubernetes 清单
 ...

使用额外的验证步骤更新 commit-stage.yml 文件后,您可以提交并推送更改到 GitHub 上的 catalog-service 仓库,并验证提交阶段工作流成功完成,这意味着您包含在清单中的内容符合 Kubernetes API。

Polar Labs

请随意将本章学到的知识应用到 Config Service,并为部署准备应用程序。

  1. 为应用程序配置优雅关闭和宽限期。
  2. 编写 Deployment 和 Service 清单,用于将 Config Service 部署到 Kubernetes 集群。
  3. 更新 Config Service 部署流水线的提交阶段,以验证 Kubernetes 清单。
  4. 通过 SPRING_CLOUD_CONFIG_URI 环境变量配置 Catalog Service Deployment 使用 Config Service URL,依赖 Kubernetes 原生服务发现功能。
  5. 配置 Tilt 以自动化 Config Service 到使用 minikube 引导的本地 Kubernetes 集群的部署。

完成后,尝试部署我们迄今为止构建的 Polar Bookshop 系统的所有组件,并在 Octant 中检查它们的状态。您可以参考本书代码仓库中的 Chapter07/07-end 文件夹来检查最终结果(https://github.com/ThomasVitale/cloud-native-spring-in-action)。

恭喜!

results matching ""

    No results matching ""