- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Linked 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Linkerd 2.10 中文手册持续修正更新中:
GitOps 是一种使用 Git 作为单一事实来源自动管理和交付 Kubernetes 基础设施和应用程序的方法。它通常利用一些软件代理来检测和协调 Git 中受版本控制的工件与集群中运行的工件之间的任何差异.
本指南将向您展示如何设置 Argo CD 以使用 GitOps 工作流程管理 Linkerd 的安装和升级.
具体来说,本指南提供了有关如何使用 Sealed Secrets 和 cert-manager 安全地生成和管理 Linkerd 的 mTLS 私钥和证书的说明。它还将向您展示如何将 auto proxy injection 功能集成到您的工作流程中。最后,本指南总结了遵循 GitOps 工作流程将 Linkerd 升级到更新版本的步骤.
本指南中使用的软件和工具仅用于演示目的。随意选择最适合您要求的其他产品.
您需要按照下一部分中定义的步骤将这个 example repository 克隆到您的本地机器并复制到您的 Kubernetes 集群中.
设置存储库 。
将示例存储库克隆到本地计算机:
这个存储库将用于演示 Git 操作,如本指南后面的 add、commit 和 push.
向存储库添加一个新的远程端点以指向集群内 Git 服务器,这将在下一节中设置:
为了简化本指南中的步骤,我们将通过端口转发与集群内 Git 服务器进行交互。因此,我们刚刚创建的远程端点以您的 localhost 为目标.
将 Git 服务器部署到集群中的 scm 命名空间:
在本指南的后面,Argo CD 将被配置为监视此 Git 服务器托管的存储库.
该 Git 服务器被配置为通过 git 协议作为 daemon 运行,对 Git 数据进行未经身份验证的访问。不建议将此设置用于生产用途.
确认 Git 服务器健康:
将示例存储库克隆到集群内 Git 服务器:
确认远程仓库克隆成功:
确认您可以通过端口转发从本地存储库推送到远程存储库:
部署 Argo CD 。
安装 Argo CD:
确认所有 Pod 都准备好了:
使用 port-forward 访问 Argo CD 仪表板:
现在可以通过 https://localhost:8080 使用默认的 admin 用户名和 password 访问 Argo CD 仪表板.
默认管理员密码是自动生成的 Argo CD API 服务器 pod 名称。您可以使用 argocd account update-password 命令来更改它.
验证 Argo CD CLI:
配置项目访问和权限 。
设置 demo project 以对我们的 applications 进行分组:
该项目定义了我们的应用程序可以使用的允许资源种类和目标集群的列表.
确认项目部署正确:
在仪表板上:
部署应用程序 。
部署作为所有其他应用程序的 "parent" 应用程序的 main 应用程序:
"app of apps" 模式通常用于 Argo CD 工作流程来引导应用程序。有关更多 信息, 请参阅 Argo CD 文档.
确认 main 应用程序部署成功:
同步 main 应用程序:
。
请注意,只有 main 应用程序是同步的.
接下来,我们将单独同步其余的应用程序.
部署 cert-manager 。
同步 cert-manager 应用程序:
由于 cert-manager 0.16.0 和 kubectl <1.19 以及 Argo CD 使用的 Helm 3.2 存在问题, 本指南使用 cert-manager 0.15.0。请参阅 此处 的升级说明.
确认 cert-manager 正在运行:
部署 Sealed Secrets 。
同步 sealed-secrets 应用程序:
确认 sealed-secrets 正在运行:
。
创建 mTLS trust anchor 。
在继续部署 Linkerd 之前,我们需要创建 mTLS 信任锚。然后我们还将设置 linkerd-bootstrap 应用程序来管理信任锚证书.
创建新的 mTLS 信任锚私钥和证书:
确认新信任锚的详细信息(加密算法、到期日期、SAN 等):
创建一个 SealedSecret 资源来存储加密的信任锚:
这将覆盖本地 gitops/resources/linkerd/trust-anchor.yaml 文件中 现有的 SealedSecret 资源。我们会将此更改推送到集群内 Git 服务器.
确认只更改了 spec.encryptedData:
提交并将新的信任锚 secret 推送到您的集群内 Git 服务器:
git add gitops/resources/linkerd/trust-anchor.y 。
确认提交成功推送:
部署 linkerd-bootstrap 。
同步 linkerd-bootstrap 应用程序:
如果颁发者和证书资源出现降级状态,则 SealedSecrets 控制器可能无法解密 sealed 的 linkerd-trust-anchor secret。检查 SealedSecrets 控制器以获取错误日志.
出于调试目的,可以使用 kubectl -n linkerd get sealedsecrets linkerd-trust-anchor -oyaml 命令 检索 sealed resource。确保此资源与您之前推送到集群内 Git 服务器 的 gitops/resources/linkerd/trust-anchor.yaml 文件匹配.
SealedSecrets 应该已经创建了一个包含解密信任锚的 secret。从 secret 中检索解密的信任锚:
确认它与您之前在本地 sample-trust.crt 文件中创建的解密信任锚证书匹配:
部署 Linkerd 。
现在我们准备安装 Linkerd。我们刚刚检索到的解密信任锚 将使用 identityTrustAnchorsPEM 参数传递给安装过程.
在安装 Linkerd 之前,请注意 gloval.identityTrustAnchorsPEM 参数设置 为 "empty" 证书字符串:
我们将在 linkerd 应用程序中使用 ${trust_anchor} 的值覆盖此参数.
在你的本地 gitops/argo-apps/linkerd.yaml 文件中找到 identityTrustAnchorsPEM 变量, 并将其 value 设置为 ${trust_anchor} 的值.
确保多行字符串缩进正确。例如。, 。
确认只更改了一个 spec.source.helm.parameters.value 字段:
提交并将更改推送到 Git 服务器:
同步 main 应用程序:
确认新的信任锚被 linkerd 应用程序选中:
同步 linkerd 应用程序:
检查 Linkerd 是否准备就绪:
用 emojivoto 测试 。
部署 emojivoto 来测试自动代理注入:
检查应用程序是否健康:
将 Linkerd 升级到 2.8.1 。
使用您的编辑器将 gitops/argo-apps/linkerd.yaml 文件中 的 spec.source.targetRevision 字段更改为 2.8.1:
确认只更改了 targetRevision 字段:
提交并将此更改推送到 Git 服务器:
同步 main 应用程序:
同步 linkerd 应用程序:
确认升级成功完成:
确认控制平面的新版本:
清理 。
所有应用程序都可以通过删除 main 应用程序来删除:
原文链接:https://mp.weixin.qq.com/s/BNdL4JszXJ3pkIeXsK58HA 。
最后此篇关于Linked 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用的文章就讲到这里了,如果你想了解更多关于Linked 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在我用 OpenCascade 生成的 STEP 文件中,我可以看到: #58 = VERTEX_POINT('',#59); #59 = CARTESIAN_POINT('',(-0.5,-0.5,
这个问题在这里已经有了答案: How to use Firebug's debugger functions? (1 个回答) 关闭 8 年前。 我是 FireBug 调试器的新手,谁能告诉我什么是
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我想知道 Eclipse IDE 中是否存在任何功能,可以在执行 selenium 脚本 时“从步骤进行调试” “单步执行”、“单步执行”。 “QTP” 和大多数专有功能自动化工具中都提供此功能。我假
我正在寻找 .stp/.step 文件的某种规范、文档、解释等。 更多的是关于每行包含哪些信息而不是一般信息。 我似乎无法自己弄清楚每个值的含义。 有谁知道一些关于 STEP 文件的好读物? 我已经搜
我写了下面的代码: Mockup TOPdesk
我正在尝试研究 java String 类中的方法如何工作,因此我创建了一些调用该 String 类方法的自定义代码。 如您所见,我在自己的代码中设置了一个断点,并且在 java String 类源代
我有某些功能,需要我进行一个 api 调用来检索第二个 api 调用中使用的某个 id,逻辑上它看起来像这样: componentWillMount () { this.props.functio
在本地使用 AppEngine(即使用 dev_appserver.py)时,是否可以进行逐步调试?使用 logging.info() 或类似的函数来显示代码中所有变量的值并确定错误的位置是一种过时的
我正在使用 JQuery Steps,它非常好。但事实证明有些事情很棘手。 假设我在第 2 步。根据我在表单中选择的内容,我可能想在单击“下一步”时直接跳到第 4 步,并且进一步禁用第 3 步 anc
我已经包含了 jquery-steps 插件。 如何更改按钮文本? 现在它说“完成”我想把它改成“去” 谢谢 最佳答案 查看以下内容 link .您可以在初始化时更改所有标签。 var setting
在(现已弃用的) Angular 场景测试运行器中,有一个选项可以创建一个 runner.html 页面,该页面将在 iFrame 中运行测试,同时在主页中逐步报告进度。 有没有办法获得类似的 Pro
我有使用标签 的 primefaces 步骤像下面这样: 结果是这样的: 我可以点击步骤 1,但不能点击步骤 3 和 4。如何为所有步骤启用点击? 最佳答案 哇,
给定一个使用分区的 Spring Batch 作业,是否可以有多个分区步骤? 例如: 在上面的示例中,是否可以将另一个分区
假设您要从数据库中获取一条记录,该记录返回大量数据并且需要多次连接。 所以我的问题是,使用单个查询来检查数据是否存在并在存在时获取结果是否更好?或者做一个更简单的查询,检查数据是否存在然后id记录是否
我如何创建一个具有整数输入类型而不是字符串的任务,例如我想启动一个状态机: "SomeStage": { "Comment": "Getting busy
我还没有看到有人问过这个问题——尽管我确实阅读了大约 100 个关于类似主题的 jQuery 步骤——似乎没有一个能解决我的问题。 我正在使用 jQuery-steps 并希望在第一步完成后添加一个“
我想知道是否可以在 Laravel 5.3 中逐个迁移。 我无法使 --step 选项正常工作,文档仅提及此选项与 rollback 或 refresh 一起使用命令。 // this works p
我已按照 AWS 文档中的步骤在本地设置和运行 AWS Step Functions:https://docs.aws.amazon.com/step-functions/latest/dg/sfn-
我已按照 AWS 文档中的步骤在本地设置和运行 AWS Step Functions:https://docs.aws.amazon.com/step-functions/latest/dg/sfn-
我是一名优秀的程序员,十分优秀!