云原生之旅-14)遵循GitOps实践的好工具ArgoCD

前言

Argo CD

是一款基于 kubernetes 的声明式的Gitops 持续部署工具。

  1. 应用程序定义、配置和环境都是声明式的,并受版本控制
  2. 应用程序部署和生命周期管理都是自动化的、可审计的,并且易于理解。

本文使用 ArgoCD + Kustomize 实现自动化部署Kubernetes工作流。

本文同步发表于知乎 https://zhuanlan.zhihu.com/p/584881969

安装 Argo CD

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

命令行工具 Argo CD CLI

MacOS 安装

bash;gutter:true; brew install argocd</p> <pre><code> ## 访问 Argo CD ### Option 1: Service Type Load Balancer You can change Service Type to Load Balancer ;gutter:false;
kubectl patch svc argocd-server -n argocd -p ‘{"spec": {"type": "LoadBalancer"}}’

Option 2: (Recommend) 使用 Gateway

  1. 使用
    Ingress-nginx

可参考

云原生之旅-14)遵循GitOps实践的好工具ArgoCD
# Ingress-Nginx installed first
# add externalName type svc in dmz namespace, so that Ingress (in dmz) can point to this svc in argocd ns
apiVersion: v1
kind: Service
metadata:
  name:  argocd-ext-svc
  namespace: dmz
spec:
  type: ExternalName
  externalName: argocd-server.argocd.svc.cluster.local
  ports:
  - name: http
    port: 8080
    targetPort: 80
    protocol: TCP
  selector:
    app.kubernetes.io/name: argocd-server

argocd_ingress.yaml

  1. 使用 Emissary 参考 云原生之旅 – 9)云原生时代网关的后起之秀Envoy Proxy 和基于Envoy 的 Emissary Ingress

Option 3: 端口转发

运行下面命令然后本地浏览器访问 https://localhost:8080

kubectl port-forward svc/argocd-server -n argocd 8080:443

The initial password for the admin account is auto-generated and stored as clear text in the field password in a secret named argocd-initial-admin-secret in your Argo CD installation namespace. You can simply retrieve this password using kubectl

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo

域名取决于你在gateway里面的配置,Login now

argocd login https://argocd.wadexu.cloud

如果是端口转发,参考如下命令

kubectl port-forward svc/argocd-server -n argocd 8080:443
argocd login https://localhost:8080 --username admin --password

更改密码

argocd account update-password

注册 external Cluster

(Optional) 这一步是为了deploy到到外部的cluster,如果仅仅deploy到和Argo CD一起的cluster 则使用 https://kubernetes.default.svc

# list context
kubectx

argocd cluster add xxx_context

创建 Application

Creating Apps Via CLI

kubectl config set-context --current --namespace=argocd

argocd app create my-app --repo https://github.com/wadexu007/learning_by_doing.git --path Kustomize/demo-manifests/services/demo-app/dev --dest-server https://kubernetes.default.svc --dest-namespace demo

Sync (Deploy) Application

Syncing via CLI

argocd app get my-app
argocd app sync my-app

通过UI 创建和Sync Application 也非常简单。详见官方文档

本文同步发表于知乎 https://zhuanlan.zhihu.com/p/584881969

更多

Argo CD supports
several different ways

in which Kubernetes manifests can be defined:

  • Kustomize applications (我的例子)
  • Helm charts
  • A directory of YAML/JSON/Jsonnet manifests, including Jsonnet.

  • Any custom config management tool configured as a config management plugin

感谢阅读,如果您觉得本文的内容对您的学习有所帮助,您可以打赏和推荐,您的鼓励是我创作的动力。

Learning by Doing

Original: https://www.cnblogs.com/wade-xu/p/16863924.html
Author: wade-xu
Title: 云原生之旅-14)遵循GitOps实践的好工具ArgoCD

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/188587/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • HTTP(http+抓包Fiddler+协议格式+请求+响应)

    目录 🦄1. 了解HTTP 🦄2. 抓包 🦄3. http协议格式 🐲3.1 完整的HTTP请求格式 🐲3.2 完整的HTTP响应的格式 HTTP请求 🦄4. 认识URL 🦄5. …

    精选 2022年11月18日
    062
  • 异常值检测!最佳统计方法实践(代码实现)!⛵

    💡 作者:韩信子@ShowMeAI📘 Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56📘 数据分析实战系列:https:/…

    精选 2022年11月23日
    059
  • 我好像找到了点学习英文的技巧

    在开头,我得先声明一句,学习英语没有捷径,但是有技巧。 在之前的几年,我陆续的也发过 2 篇英语学习的文章《程序员英语高效学习法》和《每次阅读外文技术资料都头疼,终于知道原因了》。…

    精选 2023年2月15日
    09
  • Elasticsearch:利用搜索提高医疗保健公平-用多语言NLP模型和分析来改善最终用户体验

    随着更高生产力和更健康的人群寿命更长,医疗保健将成为社会最重要的方面之一。 COVID-19 大流行加速了现代技术的采用,并凸显了患者体验的重要性。 随着越来越多的消费者开始控制他…

    精选 2023年1月6日
    014
  • 我让ChatGPT写了个ChatGPT

    这家伙实在是火得过头了,索性讲个它的故事。 去年11月份,OpenAI 推出了 ChatGPT. 这里就不赘述这个家喻户晓玩意的常识了。 要说刚开始也没多少人在意,一个聊天机器人&…

    精选 2023年2月15日
    013
  • Python装饰器实例讲解(三)

    本文多参考《流畅的python》,在此基础上增加了一些实例便于理解姊妹篇Python装饰器实例讲解(一),让你简单的会用Python装饰器实例讲解(二),主要讲了一个万能公式(原理…

    精选 2023年2月16日
    018
  • SourceGenerator使用姿势(1):生成代理类,实现简单的AOP

    SourceGenerator 已经出来很久了,也一直在关注。之前观摩大佬 xljiulang 的 WebApiClient 使用 SourceGenerator 生成接口代理类,…

    精选 2022年12月8日
    067
  • springboot接收前端传参的几种方式

    1、通过HttpServletRequest接收,常用于获取请求头参数以及Cookie,适用于GET 和 POST请求方式,以下两种方式: 2、无注解的接收:注意的是:GET请求时…

    精选 2022年11月25日
    083
  • Nginx如何配置HTTPS详解

    1. 什么是HTTPS? HTTPS(全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密…

    精选 2023年3月7日
    04
  • Git学习总结

    Git概述 Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。 Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区…

    精选 2023年2月21日
    010
  • 学会Python开发的第一步:写一个桌面小程序

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 当使用桌面应用程序的时候,有没有那么一瞬间, 想学习一下桌面应用程序开发? 建议此次课程大家稍作了解不要浪…

    精选 2022年11月18日
    051
  • 自适应粒子群优化算法的MATLAB性能仿真

    UP目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 粒子群优化(PSO)是一种基于群体的随机优化技术。与其它基于群体的进化算法相比,它们均初始化为一组随机解,通过迭代…

    精选 2023年2月26日
    011
  • 前菜–Numpy

    import numpy as np 1.1 数组方法 # 生成1 维数组 a = np.array([1,2,3,4]) a array([1, 2, 3, 4]) #生成二维数…

    精选 2023年1月5日
    030
  • 【ARM架构】armv8系统安全概述

    ARMv8-A 系统中的安全 安全或可信的操作系统保护系统中的敏感信息,如密码、信用卡和用户存储的其他身份验证信息,使其免受攻击。 [En] A secure or trusted…

    精选 2023年2月23日
    011
  • Windowsserver——部署DHCP服务(2)

    作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 *个人主页:网络豆的主页​​​​​​ 目录 前言 一.配置DHCP服务 1.DHCP…

    精选 2023年1月11日
    020
  • 功能强大的国产API管理神器Eolink,亲测好用

    目录 * – 前言 – 一、Eolink 工具介绍 – + 1.Eolink是什么 + 2.Eolink独创的DTDD + 3.API 全生命周…

    精选 2022年12月10日
    073
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总