Kubernetes GitOps:初学者指南及实践教程

2025-06-10

Kubernetes GitOps:初学者指南及实践教程

Kubernetes 多年来一直是人们热议的话题。
它彻底改变了容器编排方式,并成为该领域的领导者。许多开发人员都喜欢使用 Kubernetes。虽然企业倾向于在 Kubernetes 上部署应用程序以应对规模和高资源需求,但一种新的 Kubernetes 相关部署方法正在兴起——GitOps

是的,GitOps 提供了一种流畅的方法和一套实践,可以利用 Git 等简单的工具来管理基础设施和应用程序部署。通过结合 Kubernetes 和 GitOps,组织可以获得灵活性、敏捷性、规模、性能、效率和更快的功能交付等巨大优势。

在本 Kubernetes 和 GitOps 指南中,我将提供一份入门级的分步教程,帮助您开始使用 Kubernetes 实现 GitOps。现在,是时候将您的应用程序部署提升到一个新的水平了。让我们开始吧!

简单的 GitOps 工作流程

GitOps 的基本原则是让 Git 成为事实来源,包括将所有内容迁移到代码中,并在 Git 中存储和维护所有内容。在部署方面,使用 Operator 以声明式的方式部署 Git 和 Yaml 中配置的内容。由于所有开发人员都熟悉 Git,因此 GitOps 简化了他们复杂的工作流程。

gitops 工作流程

因此,当涉及到 Kubernetes 时,应用程序代码、容器镜像和所有相关清单文件都将存储在 Git 中,并且任何更改都通过 Git 作为单一事实来源进行。

:以上内容摘自我在 Dev 社区撰写的另一篇 GitOps 文章。欢迎阅读

今天,我们将在下面的教程中向您展示如何在您的应用程序中开始使用 GitOps 方法。

先决条件

  • 在本教程中,我们将使用 Harness 等持续交付工具来实现 GitOps。因此,请创建一个免费的Harness 帐户。它使用 Argo CD-as-a-Service。
  • GitHub 帐户和一个示例代码库,可供您进行实验。我有一个示例代码库,您可以 fork 它并使用。

教程

注册 Harness 帐户,验证您的电子邮件并重新登录以设置 GitOps 管道。

您将看到以下部署选项 - Kubernetes带有 GitOps 的 Kubernetes

选择“带有 GitOps 的 Kubernetes ”并继续。
Kubernetes 与 GitOps

您无需担心任何设置和安装。Harness 会处理好一切。它通过配置托管代理连接到 Harness。
托管代理

您可以单击“提供”并等待一段时间以获得代理的绿色复选框。
条款

一旦代理安装成功,就进入下一个配置。

在这里我们提供简单的详细信息,如来源、身份验证和 Git 详细信息。

从选项中选择 Git 和 own source code。添加我们的 Git 仓库链接:https://github.com/pavanbelagatti/argocd-example-apps

注意:上面显示的是我的 GitHub repo 链接,您应该添加您的 repo 链接,即您在本教程开始时分叉的链接。

添加完这些详细信息后,请务必添加“匿名”来验证您的详细信息。[顺便说一句,这是一个公开的仓库,因此无需用户名和密码进行身份验证]
细节

确保身份验证成功。
认证成功

接下来,让我们添加其他所需的 Git 详细信息,如下所示。
git 详细信息添加

选择目标修订版本为“master”,路径为“helm-guestbook”
git 仓库详情

接下来,选择“Harness Hosted”来测试 GitOps 工作流程。您也可以选择“自行管理”。但在本教程中,我们将选择“Harness Hosted”。
线束托管

单击“连接到集群”按钮并确保连接成功。
连接到集群

接下来,您将看到我们准备部署应用程序的最后一步。
部署应用程序

点击“创建并同步应用程序”。

这是您将进入的 GitOps 仪表板,其中将显示您的所有 GitOps 详细信息。
gitops 仪表板

您将看到“同步”状态正在运行。
同步状态

一两分钟后我们就可以看到成功的消息。
同步成功

您可以从“资源视图”开始检查每个选项卡
资源视图

这些是下面显示的“应用程序详细信息”选项卡功能。
应用详细信息

在同一个选项卡中,您可以看到同步策略,它设置为“手动”,将其更改为“自动”。
自动化

自动同步

这意味着,当您的 GitHub 存储库发生任何更改时,GitOps 代理将自动选择这些更改,并以自动方式进行同步。

下一个选项卡显示应用程序的同步状态。
同步状态

清单选项卡显示应用程序的清单详细信息。
舱单详情

在主仪表板中,转到“GitOps”选项卡,这是进入 GitOps 工作流程的入口。
gitops 工作流程

单击“GitOps”选项卡后,您应该会看到 GitOps 仪表板的概览。
gitops 仪表板新增

如果您点击该应用程序,您应该会看到我们的应用程序。
应用程序选项卡

单击它并转到资源视图。您将看到values.yaml文件中提到的 4 个副本正在运行。
值文件

这是我们示例 repo 中的 values.yaml 文件。

# Default values for helm-guestbook.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicaCount: 4

image:
  repository: gcr.io/heptio-images/ks-guestbook-demo
  tag: 0.1
  pullPolicy: IfNotPresent

service:
  type: ClusterIP
  port: 80

ingress:
  enabled: false
  annotations: {}
    # kubernetes.io/ingress.class: nginx
    # kubernetes.io/tls-acme: "true"
  path: /
  hosts:
    - chart-example.local
  tls: []
  #  - secretName: chart-example-tls
  #    hosts:
  #      - chart-example.local

resources: {}
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  # limits:
  #  cpu: 100m
  #  memory: 128Mi
  # requests:
  #  cpu: 100m
  #  memory: 128Mi

nodeSelector: {}

tolerations: []

affinity: {}
Enter fullscreen mode Exit fullscreen mode

现在,将 4 更改replicaCount: 4为 5。
副本已更改

您应该会看到 GitOps 代理会发现并处理此差异。突然间,应用程序配置不同步了。需要一些时间才能匹配成功,然后才能恢复正常且同步成功的状态。
应用程序配置

由于我们将同步策略更改为自动,因此您可以将第二次部署视为“自动”。
自动同步

好吧,过了一段时间,应用程序配置状态显示出健康和成功的同步状态。
健康和成功

在上面的资源视图中,您可以看到副本已匹配到 5 个,因为我们想要 5 个副本。

由于 GitOps 使用 Git 作为数据源,它会记录谁提交了哪些代码,以及是否有人在代码库中进行了更改。您可以从我们的 GitOps 仪表板查看这些信息。
git 已更改

一旦您点击上方红色框中显示的 ID 号,您就可以看到发生了什么变化。
副本数已更改

这就是使用 Harness CD 通过 GitOps 方式部署应用程序的直观和简单之处。

Kubernetes GitOps 是处理复杂的云原生应用部署的绝佳方法。由于它使用 Git 等开发人员熟知的简单工具,因此易于学习和简化应用部署流程。使用 Kubernetes GitOps,让您的应用更加稳定、敏捷和高效。立即开始使用 GitOps!

鏂囩珷鏉ユ簮锛�https://dev.to/pavanbelagatti/kubernetes-gitops-a-beginners-guide-with-a-hands-on-tutorial-56de
PREV
使用 Terraform 管理基础设施资源
NEXT
Docker 开发者入门