前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用

Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用

作者头像
为少
发布于 2021-07-07 03:20:06
发布于 2021-07-07 03:20:06
1.9K00
代码可运行
举报
文章被收录于专栏:黑客下午茶黑客下午茶
运行总次数:0
代码可运行

Linkerd 2.10 系列

Linkerd 2.10 中文手册持续修正更新中:

  • https://linkerd.hacker-linner.com

GitOps 是一种使用 Git 作为单一事实来源自动管理和交付 Kubernetes 基础设施和应用程序的方法。它通常利用一些软件代理来检测和协调 Git 中受版本控制的工件与集群中运行的工件之间的任何差异。

本指南将向您展示如何设置 Argo CD 以使用 GitOps 工作流程管理 Linkerd 的安装和升级。

具体来说,本指南提供了有关如何使用 Sealed Secrets 和 cert-manager 安全地生成和管理 Linkerd 的 mTLS 私钥和证书的说明。它还将向您展示如何将 auto proxy injection 功能集成到您的工作流程中。最后,本指南总结了遵循 GitOps 工作流程将 Linkerd 升级到更新版本的步骤。

本指南中使用的软件和工具仅用于演示目的。随意选择最适合您要求的其他产品。

您需要按照下一部分中定义的步骤将这个 example repository 克隆到您的本地机器并复制到您的 Kubernetes 集群中。

设置存储库

将示例存储库克隆到本地计算机:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/linkerd/linkerd-examples.git

这个存储库将用于演示 Git 操作,如本指南后面的 addcommitpush

向存储库添加一个新的远程端点以指向集群内 Git 服务器,这将在下一节中设置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd linkerd-examples

git remote add git-server git://localhost/linkerd-examples.git

为了简化本指南中的步骤,我们将通过端口转发与集群内 Git 服务器进行交互。因此,我们刚刚创建的远程端点以您的 localhost 为目标。

将 Git 服务器部署到集群中的 scm 命名空间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl apply -f gitops/resources/git-server.yaml

在本指南的后面,Argo CD 将被配置为监视此 Git 服务器托管的存储库。

该 Git 服务器被配置为通过 git 协议作为 daemon 运行,对 Git 数据进行未经身份验证的访问。不建议将此设置用于生产用途。

确认 Git 服务器健康:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -n scm rollout status deploy/git-server

将示例存储库克隆到集群内 Git 服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git_server=`kubectl -n scm get po -l app=git-server -oname | awk -F/ '{ print $2 }'`

kubectl -n scm exec "${git_server}" -- \
  git clone --bare https://github.com/linkerd/linkerd-examples.git

确认远程仓库克隆成功:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -n scm exec "${git_server}" -- ls -al /git/linkerd-examples.git

确认您可以通过端口转发从本地存储库推送到远程存储库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -n scm port-forward "${git_server}" 9418  &

git push git-server master

部署 Argo CD

安装 Argo CD:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl create ns argocd

kubectl -n argocd apply -f \
  https://raw.githubusercontent.com/argoproj/argo-cd/v1.6.1/manifests/install.yaml

确认所有 Pod 都准备好了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for deploy in "application-controller" "dex-server" "redis" "repo-server" "server"; \
  do kubectl -n argocd rollout status deploy/argocd-${deploy}; \
done

使用 port-forward 访问 Argo CD 仪表板:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -n argocd port-forward svc/argocd-server 8080:443  \
  > /dev/null 2>&1 &

现在可以通过 https://localhost:8080 使用默认的 admin 用户名和 password 访问 Argo CD 仪表板。

默认管理员密码是自动生成的 Argo CD API 服务器 pod 名称。您可以使用 argocd account update-password 命令来更改它。

验证 Argo CD CLI:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd_server=`kubectl -n argocd get pods -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2`

argocd login 127.0.0.1:8080 \
  --username=admin \
  --password="${argocd_server}" \
  --insecure

配置项目访问和权限

设置 demo project 以对我们的 applications 进行分组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl apply -f gitops/project.yaml

该项目定义了我们的应用程序可以使用的允许资源种类和目标集群的列表。

确认项目部署正确:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd proj get demo

在仪表板上:

部署应用程序

部署作为所有其他应用程序的 "parent" 应用程序的 main 应用程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl apply -f gitops/main.yaml

"app of apps" 模式通常用于 Argo CD 工作流程来引导应用程序。有关更多 信息, 请参阅 Argo CD 文档。

确认 main 应用程序部署成功:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app get main

同步 main 应用程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app sync main

请注意,只有 main 应用程序是同步的。

接下来,我们将单独同步其余的应用程序。

部署 cert-manager

同步 cert-manager 应用程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app sync cert-manager

由于 cert-manager 0.16.0 和 kubectl <1.19 以及 Argo CD 使用的 Helm 3.2 存在问题, 本指南使用 cert-manager 0.15.0。请参阅 此处 的升级说明。

确认 cert-manager 正在运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for deploy in "cert-manager" "cert-manager-cainjector" "cert-manager-webhook"; \
  do kubectl -n cert-manager rollout status deploy/${deploy}; \
done

部署 Sealed Secrets

同步 sealed-secrets 应用程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app sync sealed-secrets

确认 sealed-secrets 正在运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -n kube-system rollout status deploy/sealed-secrets

创建 mTLS trust anchor

在继续部署 Linkerd 之前,我们需要创建 mTLS 信任锚。然后我们还将设置 linkerd-bootstrap 应用程序来管理信任锚证书。

创建新的 mTLS 信任锚私钥和证书:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
step certificate create root.linkerd.cluster.local sample-trust.crt sample-trust.key \
  --profile root-ca \
  --no-password \
  --not-after 43800h \
  --insecure

确认新信任锚的详细信息(加密算法、到期日期、SAN 等):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
step certificate inspect sample-trust.crt

创建一个 SealedSecret 资源来存储加密的信任锚:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -n linkerd create secret tls linkerd-trust-anchor \
  --cert sample-trust.crt \
  --key sample-trust.key \
  --dry-run=client -oyaml | \
kubeseal --controller-name=sealed-secrets -oyaml - | \
kubectl patch -f - \
  -p '{"spec": {"template": {"type":"kubernetes.io/tls", "metadata": {"labels": {"linkerd.io/control-plane-component":"identity", "linkerd.io/control-plane-ns":"linkerd"}, "annotations": {"linkerd.io/created-by":"linkerd/cli stable-2.8.1", "linkerd.io/identity-issuer-expiry":"2021-07-19T20:51:01Z"}}}}}' \
  --dry-run=client \
  --type=merge \
  --local -oyaml > gitops/resources/linkerd/trust-anchor.yaml

这将覆盖本地 gitops/resources/linkerd/trust-anchor.yaml 文件中 现有的 SealedSecret 资源。我们会将此更改推送到集群内 Git 服务器。

确认只更改了 spec.encryptedData

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git diff gitops/resources/linkerd/trust-anchor.yaml

提交并将新的信任锚 secret 推送到您的集群内 Git 服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git add gitops/resources/linkerd/trust-anchor.yaml

git commit -m "update encrypted trust anchor"

git push git-server master

确认提交成功推送:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl -n scm exec "${git_server}" -- git --git-dir linkerd-examples.git log -1

部署 linkerd-bootstrap

同步 linkerd-bootstrap 应用程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app sync 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 中检索解密的信任锚:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
trust_anchor=`kubectl -n linkerd get secret linkerd-trust-anchor -ojsonpath="{.data['tls\.crt']}" | base64 -d -w 0 -`

确认它与您之前在本地 sample-trust.crt 文件中创建的解密信任锚证书匹配:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
diff -b \
  <(echo "${trust_anchor}" | step certificate inspect -) \
  <(step certificate inspect sample-trust.crt)

部署 Linkerd

现在我们准备安装 Linkerd。我们刚刚检索到的解密信任锚 将使用 identityTrustAnchorsPEM 参数传递给安装过程。

在安装 Linkerd 之前,请注意 gloval.identityTrustAnchorsPEM 参数设置 为 "empty" 证书字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app get linkerd -ojson | \
  jq -r '.spec.source.helm.parameters[] | select(.name == "identityTrustAnchorsPEM") | .value'

我们将在 linkerd 应用程序中使用 ${trust_anchor} 的值覆盖此参数。

在你的本地 gitops/argo-apps/linkerd.yaml 文件中找到 identityTrustAnchorsPEM 变量, 并将其 value 设置为 ${trust_anchor} 的值。

确保多行字符串缩进正确。例如。,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  source:
    chart: linkerd2
    repoURL: https://helm.linkerd.io/stable
    targetRevision: 2.8.0
    helm:
      parameters:
      - name: identityTrustAnchorsPEM
        value: |
          -----BEGIN CERTIFICATE-----
          MIIBlTCCATygAwIBAgIRAKQr9ASqULvXDeyWpY1LJUQwCgYIKoZIzj0EAwIwKTEn
          MCUGA1UEAxMeaWRlbnRpdHkubGlua2VyZC5jbHVzdGVyLmxvY2FsMB4XDTIwMDkx
          ODIwMTAxMFoXDTI1MDkxNzIwMTAxMFowKTEnMCUGA1UEAxMeaWRlbnRpdHkubGlu
          a2VyZC5jbHVzdGVyLmxvY2FsMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+PUp
          IR74PsU+geheoyseycyquYyes5eeksIb5FDm8ptOXQ2xPcBpvesZkj6uIyS3k4qV
          E0S9VtMmHNeycL7446NFMEMwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
          Af8CAQEwHQYDVR0OBBYEFHypCh7hiSLNxsKhMylQgqD9t7NNMAoGCCqGSM49BAMC
          A0cAMEQCIEWhI86bXWEd4wKTnG07hBfBuVCT0bxopaYnn3wRFx7UAiAwXyh5uaVg
          MwCC5xL+PM+bm3PRqtrmI6TocWH07GbMxg==
          -----END CERTIFICATE-----

确认只更改了一个 spec.source.helm.parameters.value 字段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git diff gitops/argo-apps/linkerd.yaml

提交并将更改推送到 Git 服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git add gitops/argo-apps/linkerd.yaml

git commit -m "set identityTrustAnchorsPEM parameter"

git push git-server master

同步 main 应用程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app sync main

确认新的信任锚被 linkerd 应用程序选中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app get linkerd -ojson | \
  jq -r '.spec.source.helm.parameters[] | select(.name == "identityTrustAnchorsPEM") | .value'

同步 linkerd 应用程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app sync linkerd

检查 Linkerd 是否准备就绪:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
linkerd check

用 emojivoto 测试

部署 emojivoto 来测试自动代理注入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app sync emojivoto

检查应用程序是否健康:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for deploy in "emoji" "vote-bot" "voting" "web" ; \
  do kubectl -n emojivoto rollout status deploy/${deploy}; \
done

将 Linkerd 升级到 2.8.1

使用您的编辑器将 gitops/argo-apps/linkerd.yaml 文件中 的 spec.source.targetRevision 字段更改为 2.8.1

确认只更改了 targetRevision 字段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git diff gitops/argo-apps/linkerd.yaml

提交并将此更改推送到 Git 服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git add gitops/argo-apps/linkerd.yaml

git commit -m "upgrade Linkerd to 2.8.1"

git push git-server master

同步 main 应用程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app sync main

同步 linkerd 应用程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app sync linkerd

确认升级成功完成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
linkerd check

确认控制平面的新版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
linkerd version

清理

所有应用程序都可以通过删除 main 应用程序来删除:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
argocd app delete main --cascade=true
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑客下午茶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linkerd 2.10(Step by Step)—3. 自动轮换控制平面 TLS 与 Webhook TLS 凭证
Linkerd 的自动 mTLS 功能使用一组 TLS 凭据(TLS credentials)为代理生成 TLS 证书(TLS certificates):信任锚(trust anchor)、颁发者证书(issuer certificate)和私钥(private key)。虽然 Linkerd 每 24 小时自动轮换数据平面代理的 TLS 证书, 但它不会轮换用于颁发这些证书的 TLS 凭据。在本文档中,我们将描述如何使用外部解决方案 自动轮换颁发者证书和私钥。
为少
2021/07/07
6470
Linkerd 2.10(Step by Step)—安装多集群组件
Linkerd 中的多集群支持需要在默认控制平面安装之上进行额外的安装和配置。本指南将介绍此安装和配置以及您可能遇到的常见问题。
为少
2021/07/07
5930
在 Linkerd 中使用 mTLS 保护应用程序通信
安全性是云原生应用程序的重中之重,虽然安全性是一个非常广泛的话题,但 Linkerd 依然可以发挥重要作用:其双向 TLS(mTLS)功能是为了在 Kubernetes 中实现零信任的安全方法。零信任安全是一种 IT 安全模型,要求试图访问专用网络上资源的每一个人和每一台设备(无论位于网络边界之内还是之外)都必须进行严格的身份验证。
我是阳明
2022/09/29
6680
在 Linkerd 中使用 mTLS 保护应用程序通信
使用 Flux,Helm v3,Linkerd 和 Flagger 渐进式交付 Kubernetes
本指南将引导您在 Kubernetes 集群上设置渐进式交付 GitOps 管道。
为少
2021/05/27
1.3K0
使用 Flux,Helm v3,Linkerd 和 Flagger 渐进式交付 Kubernetes
Linkerd 2.10(Step by Step)—手动轮换控制平面 TLS 凭证
Linkerd 的自动 mTLS 功能 使用一组 TLS 凭据为代理生成 TLS 证书:信任锚、颁发者证书和私钥。信任锚的有效期有限:365 天(如果由 linkerd install 生成)或 自定义值(如果手动生成)。
为少
2021/07/07
6520
使用 Argo CD 进行 GitOps 流水线改造
Argo CD 是一个为 Kubernetes 而生的,遵循声明式 GitOps 理念的持续部署工具。Argo CD 可在 Git 存储库更改时自动同步和部署应用程序。
我是阳明
2023/09/25
1.8K0
使用 Argo CD 进行 GitOps 流水线改造
使用 GitLab CI 与 Argo CD 进行 GitOps 实践
在现在的云原生世界里面 GitOps 不断的被提及,这种持续交付的模式越来越受到了大家的青睐,在网上也可以找到很多关于它的资源,但是关于 GitOps 相关的工作流实践的示例却并不多见,我们这里就将详细介绍一个使用示例,希望对大家实践 GitOps 有所帮助。
我是阳明
2020/07/17
5.8K0
使用 GitLab CI 与 Argo CD 进行 GitOps 实践
Linkerd 2.10(Step by Step)—生成您自己的 mTLS 根证书
为了支持网格化 Pod 之间的 mTLS 连接, Linkerd 需要一个信任锚证书(trust anchor certificate)和一个带有相应 key 的颁发者证书(issuer certificate)。
为少
2021/07/07
5990
Tekton 与 Argo CD 结合实现 GitOps
前面我们使用 Tekton 完成了应用的 CI/CD 流程,但是 CD 是在 Tekton 的任务中去完成的,现在我们使用 GitOps 的方式来改造我们的流水线,将 CD 部分使用 Argo CD 来完成。
DevOps云学堂
2021/07/15
2.6K0
Tekton 与 Argo CD 结合实现 GitOps
使用 AWS、k3s、Rancher、Vault 和 ArgoCD 在 Kubernetes 上集成 GitOps
最近我写了一篇关于 CI 和 CD 之间核心区别的文章,我觉得是时候把这些理论运用到实际当中了。
LinuxSuRen
2020/11/09
2.5K0
使用 AWS、k3s、Rancher、Vault 和 ArgoCD 在 Kubernetes 上集成 GitOps
GitOps应用实践系列-Argo CD 实践篇
在前两篇内容中,我分别为大家介绍了 GitOps 的概念,以及用于实施 GitOps 的工具 Argo CD。本篇我们将以一个示例项目为大家介绍 Argo CD 的实践。
Jintao Zhang
2021/11/08
1.3K0
Linkerd 2.10(Step by Step)—多集群通信
本指南将引导您安装和配置 Linkerd,以便两个集群可以与托管在两个集群上的服务通信。在本指南结束时,您将了解如何在不同集群上的服务之间分配流量。
为少
2021/07/07
7790
Kubernetes GitOps 工具
在我看来,Kubernetes的优势主要在于它的声明式性质与控制循环相结合,并通过这些控制循环持续监控集群的活动状态,确保它与etcd中存储的期望状态保持一致。这种方式非常强大,但同时其数据库也被限制为etcd(etcd仅提供了有限的可观察性),并影响到了集群变更时的责任性和审计性。另外一个缺点是将etcd和代码仓库作为两个SOT(sources of truth),有可能会导致配置漂移,造成管理上的困难。
charlieroro
2022/05/09
1.1K0
Kubernetes GitOps 工具
Argo CD 实践教程 04
在本节中,我们将深入描述Argo CD的架构,并将深入研究Argo CD的核心组件。最后,我们将在本地Kubernetes集群中运行Argo CD,并运行一些示例,以获得更好的实践经验。
拿我格子衫来
2023/08/24
6150
Argo CD 实践教程 04
Argo CD 实践教程 05
这一部分介绍了核心概念,并讨论了如何将Argo CD作为SRE进行操作。 本书的这一部分包括以下章节:
拿我格子衫来
2023/08/24
5960
Argo CD 实践教程 05
使用 cdk8s 与 Argo CD 进行 GitOps 实践
cdk8s 是 AWS Labs 发布的一个使用 TypeScript 编写的新框架,它允许我们使用一些面向对象的编程语言(目前支持 TypeScript 与 Python)来定义 Kubernetes 的资源清单,并最终生成原生的 Kubernetes YAML 文件。所以我们自然也会想到在进行 GitOps 实践的过程中,是否可以将 cdk8s 利用起来,和 Argo CD 结合是否会是更好的方式?
我是阳明
2020/07/21
1.4K0
使用 cdk8s 与 Argo CD 进行 GitOps 实践
Argo CD 实践教程 06
Argo CD不直接使用任何数据库(Redis被用作缓存),所以它看起来没有任何状态。之前,我们看到了如何实现高可用性的安装,主要是通过增加每个部署的副本数量来完成的。但是,我们也有应用程序定义(如Git源集群和目标集群),以及关于如何访问Kubernetes集群或如何连接到私有Git回购或私有帮助集群的详细信息。这些东西构成了Argo CD的状态,它们保存在Kubernetes资源中——要么是本地资源,比如连接细节的秘密,要么是应用程序和应用程序约束的自定义资源。 灾难可能会由于人工干预而发生,例如Kubernetes集群或Argo CD名称空间正在被删除,或者可能是一些云提供商出现的问题。我们也可能有要将Argo CD安装从一个集群移动到另一个集群的场景。例如,也许当前的集群是用我们不想再支持的技术创建的,比如kubeadm(https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/),现在我们想转移到云提供商管理的技术。 你可能会出现在脑海中:“但我认为这是GitOps,所以一切都保存在Git回购中,这意味着它很容易重新创建?”首先,并不是所有的东西都被保存到Git回购中。例如,当在Argo CD中注册一个新集群时,我们必须运行一个命令,使这些详细信息不在Git中(出于安全原因,这是可以的)。其次,重新创建GitOps回购中的一切可能需要很多时间——可能有数千个应用程序、数百个集群和成千上万的Git回购。更好的选择可能是从备份中恢复到以前的所有资源,而不是从头开始重新创建所有的资源;这样做要快得多。
拿我格子衫来
2023/08/24
6010
Argo CD 实践教程 06
Linkerd 2.10—使用 Debug Sidecar,注入调试容器来捕获网络数据包
调试服务网格(service mesh)可能很困难。当某些东西不起作用时, 是代理(proxy)有问题吗?与应用程序(application)?与客户端(client)?与底层网络?(underlying network)有时, 没有什么比查看原始网络数据更好的了。
为少
2021/07/07
7460
Argo CD 保姆级入门教程
❝原文链接🔗:https://icloudnative.io/posts/getting-started-with-argocd/ 请复制粘贴到浏览器打开 在上一篇『👉GitOps 介绍[1]』中,我介绍了什么是 GitOps,包括 GitOps 的原则和优势,以及 GitOps 与 DevOps 的区别。本文将介绍用于实施 GitOps 的工具 Argo CD。 Argo CD 是以 Kubernetes 作为基础设施,遵循声明式 GitOps 理念的持续交付(continuous delivery, C
米开朗基杨
2022/11/07
4.6K0
Argo CD 保姆级入门教程
Argo CD-基于Kubernetes的声明式持续交付工具
应用程序定义,配置和环境应为声明性的,并受版本控制。应用程序部署和生命周期管理应该是自动化的,可审核的且易于理解的。
有点技术
2020/07/13
3.5K0
Argo CD-基于Kubernetes的声明式持续交付工具
相关推荐
Linkerd 2.10(Step by Step)—3. 自动轮换控制平面 TLS 与 Webhook TLS 凭证
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验