手把手教你实现Kubernetes Gitops

Kubernetes GitOps:有动手教程的初学者指南。

微信搜索关注《Java学研大本营》,加入读者群,分享更多精彩

多年来,Kubernetes 已成为人们津津乐道的话题。

它彻底改变了容器的编排,并成为该领域的领导者。许多开发人员喜欢使用 Kubernetes。虽然组织更喜欢在 Kubernetes 上部署应用程序以应对规模和苛刻的资源,但与 Kubernetes 相关的部署正在流行一种新方法 - GitOps。

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

在本 Kubernetes 和 GitOps 指南中,有一个循序渐进的初学者级教程,可以开始使用 Kubernetes 实施 GitOps。是时候让应用程序部署更上一层楼了。开始吧!

简单的 GitOps 工作流程

GitOps 的基本工作原理是让 Git 成为真理之源,包括将所有内容移至代码中以及在 Git 中存储和维护所有内容。在部署方面,使用操作员以声明方式部署在 Git 和 Yaml 中配置的内容。由于所有开发人员都对 Git 很友好,因此 GitOps 简化了他们复杂的工作流程。

gitops 工作流程

因此,就 Kubernetes 而言,应用程序代码、容器图像和所有相关的清单文件都将存储在 Git 中,任何更改都通过作为单一真实来源的 Git 进行。

注:以上内容摘自Dev社区写的另一篇GitOps文章。

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

先决条件

  • 在本教程中,将使用 Harness 等持续交付工具来执行 GitOps。因此,创建一个免费的Harness 帐户。它使用 Argo CD 即服务。

  • GitHub 帐户和用于试验的示例存储库。有一个示例存储库,可以分叉并使用它。

教程

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

将看到以下部署选项 - Kubernetes和Kubernetes with GitOps。

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

Kubernetes 与 GitOps

不必担心任何设置和安装。线束负责一切。它通过配置托管代理连接到 Harness。

托管代理

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

条款

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

这是提供简单详细信息的地方,例如源、身份验证和 Git 详细信息。

从选项中选择 Git 和拥有源代码。添加 Git 回购链接 - https://github.com/pavanbelagatti/argocd-example-apps

注意:上面显示的是作者的 GitHub 回购链接,应该添加您的回购链接,即在本教程开头分叉的那个。

添加这些详细信息后,请确保添加“匿名”以验证您的详细信息。[顺便说一句,它是一个公共仓库,因此不需要使用用户名和密码进行身份验证]

细节

确保身份验证成功。

认证成功

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

git详细信息添加

选择 Target revision 作为“master”,Path 作为“helm-guestbook”

git 回购细节

接下来,选择“Harness Hosted”来测试 GitOps 工作流。也可以选择自我管理。但对于本教程,将选择“Harness Hosted”。

线束托管

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

连接到集群

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

部署应用

单击“创建和同步应用程序”。

这是将进入的 GitOps 仪表板,所有 GitOps 详细信息都将出现在该仪表板中。

gitops仪表板

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

同步状态

一两分钟后,可以看到成功的消息。

同步成功

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

资源视图

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

应用详情

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

自动的

自动同步

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

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

同步状态

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

清单细节

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

gitops 工作流程

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

gitops 仪表板新

如果单击该应用程序,应该会看到应用程序。

应用程序选项卡

单击它并转到“资源”视图。将看到 4 个副本正在运行,如values.yaml文件中所述。

值文件

这是示例存储库中的 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: {}

现在,将 replicaCount: 4从4更改为 5。

副本已更改

应该会看到 GitOps 代理会看到这种差异并将其拾取。应用程序配置突然不同步。需要一些时间来匹配并返回到健康且成功的同步状态。

应用配置

可以将第二个部署视为“自动”,因为将同步策略更改为自动。

自动同步

那么,一段时间后,应用程序配置状态显示健康且成功的同步状态。

健康成功

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

由于 GitOps 使用 Git 作为事实来源,它会记录谁提交了哪些代码以及是否有人更改了存储库中的某些内容。可以从GitOps 仪表板中看到这一点。

git 改变了

单击上面红色框中显示的 ID 号后,可以看到发生了什么变化。

副本数已更改

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

Kubernetes GitOps 是处理复杂的云原生应用程序部署的绝佳方法。由于它使用开发人员已经知道的像 Git 这样的简单工具,因此学习和简化应用程序部署方法变得很容易。使用 Kubernetes GitOps 让应用程序更加稳定、敏捷和高效。

立即开始使用 GitOps吧!

推荐书单

《项目驱动零起点学Java》

《项目驱动零起点学Java》共分 13 章,围绕 6 个项目和 258 个代码示例,分别介绍了走进Java 的世界、变量与数据类型、运算符、流程控制、方法、数组、面向对象、异常、常用类、集合、I/O流、多线程、网络编程相关内容。《项目驱动零起点学Java》总结了马士兵老师从事Java培训十余年来经受了市场检验的教研成果,通过6 个项目以及每章的示例和习题,可以帮助读者快速掌握Java 编程的语法以及算法实现。扫描每章提供的二维码可观看相应章节内容的视频讲解。

《项目驱动零起点学Java》贯穿6个完整项目,经过作者多年教学经验提炼而得,项目从小到大、从短到长,可以让读者在练习项目的过程中,快速掌握一系列知识点。

马士兵,马士兵教育创始人,毕业于清华大学,著名IT讲师,所讲课程广受欢迎,学生遍布全球大厂,擅长用简单的语言讲授复杂的问题,擅长项目驱动知识的综合学习。马士兵教育获得在线教育“名课堂”奖、“最受欢迎机构”奖。

赵珊珊,从事多年一线开发,曾为国税、地税税务系统工作。拥有7年一线教学经验,多年线上、线下教育的积累沉淀,培养学员数万名,讲解细致,脉络清晰。

《项目驱动零起点学Java》(马士兵,赵珊珊)【摘要 书评 试读】- 京东图书京东JD.COM图书频道为您提供《项目驱动零起点学Java》在线选购,本书作者:,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!icon-default.png?t=N658https://item.jd.com/13607758.html

精彩回顾

数据架构演进史(上)

数据架构演进史(下)

如何选择适合的后端框架

微信搜索关注《Java学研大本营》

访问【IT今日热榜】,发现每日技术热点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值