Argo CD 入门扫盲使用(一)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: Argo CD 入门扫盲使用

一、什么是 argo cd

Argo CD 是用于 Kubernetes 的声明性 GitOps 连续交付工具。

二、为什么使用 argo cd

Argo CD 可在指定的目标环境中自动部署所需的应用程序状态,应用程序部署可以在 Git 提交时跟踪对

分支,标签的更新,或固定到清单的特定版本。

三、argo cd 架构图

Argo CD 的主要职责是 CD(Continuous Delivery,持续交付),将应用部署到 Kubernetes 等环境

中,而 CI(Continuous Integration,持续集成)主要是交给 Jenkins,Gitlab CI 等工具来完成。

Argo CD 的架构图如下

四、Argo CD 使用

Argo CD 一般安装在 Kubernetes 集群中。

1、安装 Argo CD

使用以下命令在 argocd 命名空间部署 Argo CD:

# 创建命名空间
kubectl create namespace argocd 
# 部署    argo cd
wget https://raw.githubusercontent.com/argoproj/argo- 
cd/stable/manifests/install.yaml
kubectl apply -n argocd -f install.yaml

2、安装 Argo CD CLI

Argo CD CLI 是用于管理 Argo CD 的命令行工具,不同操作系统具体的安装方式可以参考 Argo CD CLI

Installation

Mac 系统可以直接使用 brew install 进行安装,如下

brew install argocd

3、发布 Argo CD 服务

默认情况下, Argo CD 服务不对外暴露服务,可以通过 LoadBalancer 或者 NodePort 类型的

Service、Ingress、Kubectl 端口转发等方式将 Argo CD 服务发布到 Kubernetes 集群外部。

这里使用以下命令通过 NodePort 服务的方式暴露 Argo CD 到集群外部:

kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'

现在已经将名字为 argocd-server 的 Service 改成 NodePort 类型了,可以在集群外部通过 <节点 IP>:<

随机生成的 NodePort 端口> 来访问 Argo CD。

浏览器输入 https://<节点 IP>:port 访问 Argo CD。

4、获取 Argo CD 密码

默认情况下 admin 帐号的初始密码是自动生成的,会以明文的形式存储在 Argo CD 安装的命名空间中

名为 argocd-initial-admin-secret 的 Secret 对象下的 password 字段下,可以用下面的命令获取:

kubectl -n argocd get secret \ 
argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -d 
# 返回结果
kj8bDMiDTnsEfnjg

在浏览器输入密码登录 Argo CD,登录界面如下图:

登录后的界面如下所示:

5、准备 Git 仓库

在 Gitlab 上创建项目,取名为 argocd-lab,为了方便实验将仓库设置为 public 公共仓库。在仓库中创

建 quickstart 目录,在目录中创建两个 yaml 资源文件,分别是 myapp-deployment.yaml 和 myapp-

service.yaml。

gitlab 内容如下:

yaml 资源文件内容如下:

# myapp-deployment.yaml 
apiVersion: apps/v1 
kind: Deployment 
metadata:
 name: myapp 
spec:
 replicas: 1
 selector:
   matchLabels:
     app: myapp
 template:
   metadata:
     labels:
       app: myapp
   spec:
     containers:
     - image: registry.cn-shanghai.aliyuncs.com/public-namespace/myapp:v1
       name: myapp 
       ports:
       - containerPort: 80 
---
# myapp-service.yaml 
apiVersion: v1 
kind: Service 
metadata:
 name: myapp
spec:
 ports:
 - port: 80
   targetPort: 80 
   nodePort: 32060 
 type: NodePort 
 selector:
   app: myapp

6、创建 Argo CD App

首先创建一个命名空间 devops 用于 Argo CD 部署应用。

kubectl create ns devops

可以有三种方式创建 app,分别介绍如下:

方式一:使用 UI 创建 App

Application Name: 自定义的应用名。

Project: 使用默认创建好的 default 项目。

SYNC POLICY:  同步方式,可以选择自动或者手动,这里我们选择手动同步。

Repository URL: 项目的 Git 地址。

Revision: 分支名。

Path: yaml 资源文件所在的相对路径。

Cluster URL: Kubernetes API Server 的访问地址,由于 Argo CD 和下发应用的 Kubernetes 集群是同 一个,因此可以直接使用 http://kubernetes.default.svc 来访问。关于 Kubernetes 中 DNS 解析规则可 以查看 Pod 与 Service 的 DNS。

Namespace: 部署应用的命名空间。

创建完成后如下图所示,此时处于 OutOfSync 的状态:


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6月前
|
存储 缓存 网络协议
DPDK入门(环境搭建以及小demo)
DPDK入门(环境搭建以及小demo)
416 0
|
6月前
|
架构师 测试技术 网络性能优化
dpdk课程学习之练习笔记七(vpp环境搭建及plugin demo测试)
dpdk课程学习之练习笔记七(vpp环境搭建及plugin demo测试)
506 0
|
3月前
|
运维 Kubernetes Cloud Native
云原生之旅:Kubernetes 集群的搭建与实践Python 编程入门:从零基础到编写实用脚本
【8月更文挑战第30天】在数字化转型的大潮中,云原生技术以其弹性、可扩展性及高效运维能力成为企业IT架构升级的关键。本文将通过实际操作演示如何在本地环境搭建一个简易的Kubernetes集群,带你领略云原生的魅力所在。从集群规划到服务部署,每一步都是对云原生理念的深刻理解和应用。让我们共同探索,如何通过Kubernetes集群的搭建和运维,提升业务灵活性和创新能力。
|
3月前
|
运维 jenkins 网络安全
[ansible]简介安装入门
[ansible]简介安装入门
|
5月前
|
Ubuntu 数据可视化 Docker
第4讲笔记:SecretFlow & SecretNote安装部署
安装SecretFlow需在Ubuntu虚拟机上用Anaconda创建Python 3.8环境,名称为secretflow,然后在环境中运行`conda create -n secretflow python=3.8`,`source activate secretflow`和`pip install -U secretflow`。SecretFlow部署可选仿真或生产模式。仿真模式包括单机(模拟Alice、Bob)和集群仿真,生产模式涉及多节点部署,注意各节点间的通信配置。SecretNote适合多节点代码的可视化执行,但不适用于生产环境。
103 1
|
6月前
无缝构建与部署:GitLab CI/CD首秀的实战攻略
无缝构建与部署:GitLab CI/CD首秀的实战攻略
205 0
无缝构建与部署:GitLab CI/CD首秀的实战攻略
|
jenkins Java 应用服务中间件
【CI/CD技术专题】「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍
【CI/CD技术专题】「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍
363 0
【CI/CD技术专题】「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍
|
安全 Java jenkins
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows-&gt;Linux)
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows-&gt;Linux)
303 0
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows-&gt;Linux)
|
存储 Kubernetes API
Argo CD 【2】动手实践
Argo CD 【2】动手实践
Argo CD 【2】动手实践
下一篇
无影云桌面