初识Argo cd - 在k8s集群上安装argo cd

GitOps 最初由 Weaveworks (weave cni的组织) 在 2017 年的博客中提出 [1],使用 “Git” 作为 CI/CD 的 “单一事实来源”,将代码的更改集成到每个项目的存储库中,并使用拉取请求来管理 infra 和部署。 在理解上就可以理解为 “是一种基于 git 的操作框架” Argo CD 是一种 kubernetes 之上的 “声明式” (declarative) 的 gitops CD, 在本文作为了解如何在 Kubernetes 集群中安装和配置 Argo CD。 前提准备 想要安装 Argo CD 首先环境需要具备如下: 已经安装好 kubectl 命令行工具 拥有 kubeconfig 文件 一个可供测试的 Kubernetes 集群,如:kind, minikube, kubeadm, binary 等任意的集群 步骤1 - 选择适配 kubernetes 版本的 Argo 根据官方的解释, Argo CD 在任何给定时刻所支持的版本,这些版本是 N 和 N - 1 次要版本的最新修补版本 (x.x.new)。这些 Argo CD 版本与 Kubernetes 项目官方支持的 Kubernetes 版本相一致,通常是 Kubernetes 的最近发布的 3 个版本。...

 ·  · 

初识Argo cd - argo cd架构

Argo组件 API Server Repository Server Application Controller API Server:一个 gRPC/REST 服务器,提供了 “Web UI”、“CLI” 和 “CI/CD” 使用的 API 应用管理和状态报告 调用应用操作(例如同步、回滚、用户定义的操作) 存储库和 Cluster credential 管理(作为 kubernetes secret 存储) 为外部提供身份认证和代理授权功能 RBAC 试试 Git webhook 事件的 listener/forwarder Repository Server:内部服务,用于维护 git 中的应用清单 (manifests) 的本地缓存。负责接收生成和返回 kubernetes 清单 仓库URL revision (commit, tag, branch) APP PATH 模板特定的参数 Application Controller:Kubernetes controller,主要做的工作是持续监控运行的 Application,并于当前实时状态和目标所需状态进行对比(与 Kubernetes Controller 功能是相同的),并且不仅仅是 KC 还会和存储库中指定目标状态进行比较,检测到 OutOfSync 状态将进行纠正。 Argo 架构 Argo CD 时最常见的三种架构:单实例方案, 集群级方案,以及折衷方案 (compromise between the two)。...

 ·  · 

无互联网环境下安装Spinnaker - Offline Install Spinnaker

Prerequisites 具有一个 Kubernetes 集群 以部署 Spinnaker 可运行 Docker 的环境 (1 vCPU, 3.75 GB) 或者是 Ubuntu,用以安装 Halyard (用于 spinnaker 的服务) 对象存储 (MinIO),用于持久化 Spinnaker 的数据 对象存储的 Bucket 的访问账号 安装执行步骤 安装 Halyard 可以直接使用 Docker 方式安装,这个没什么必要性,就是管理工具而已,参考附录1 [1] 首先创建映射目录 bash 1 2 mkdir ~/.hal -pv mkdir ~/.kubeconfig -pv 然后执行 docker run 运行容器 bash 1 2 3 4 5 6 7 docker run -d -p 8084:8084 -p 9000:9000 \ --name halyard --rm \ -v ~/.hal:/home/spinnaker/.hal \ -v ~/....

 ·  · 

Spinnaker接入keycloak认证

Spinnaker的认证 spinnaker 中提供了认证 ( Authentication) 的机制流为 Deck <=> Gate <=> Identity Provider Deck 是 spinnaker 的 WEB UI (由 apache server服务的一组静态文件) Gate 是 API Gateway,所有的进入 Spinnaker 的流量都会通过 Gate 处理,这里完成 authentication 和 authorization。 Identity Provider:用于用户身份认证的外部服务或系统,例如 LDAP, OAuth 2.0(行业标准鉴权协议), SAML, X.509 等。 更多 spinnaker Authentication 工作流可以参考 Spinnaker 认证配置 启动配置 bash 1 hal config security authn oauth2 enable --no-validate 使用 hal 命令配置 redirect URI bash 1 hal config security authn oauth2 edit --pre-established-redirect-uri https://my-real-gate-address....

 ·  · 

Spinnaker template

spinnaker 的模板是通过 spin 命令行去创建的,spin 是 spinnaker 的套件,可以使用 spin 获取到存在的pipeline与 template,还可以创建一个新的模板或者替换就得;cli获取到的数据是 json 类型 配置spin bash 1 2 3 4 5 6 7 mkdir ~/spin # Inside the dir, setup ‘config’ file using the sample # https://github.com/spinnaker/spin/blob/master/config/example.yaml #Sample ~/.spin/config gate: endpoint: http://demospin.net:9000/gateauth: enabled: false spin 配置文件 spin 默认从 ~/spin/config 读取配置,可以通过 –config 指定 spin 的配置文件。下面是一个官方给的一个 spin config 的 example,在配置时只需要选择一个认证方式即可 iap/x.509/oauth2 这个选择的是 oauth2 json 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 # NOTE: Copy this file to ~/....

 ·  ·