在 5 分钟内开始使用 ArgoCD!
简介 ArgoCD 是最流行的开源 GitOps 工具之一。 GitOps 是使用基础设施作为代码文件的自动化基础设施部署过程。 由于我对 GitOps 世界完全陌生,所以我想开始使用它。每次我开始学习新东西时,我都有记录它的习惯。您也可以查看我的Raspberry Pi NAS 博客文章。 所以这是我开始使用 ArgoCD 的版本。 安装 ArgoCD的安装相当简单,我们先创建一个namespa
简介
ArgoCD 是最流行的开源 GitOps 工具之一。 GitOps 是使用基础设施作为代码文件的自动化基础设施部署过程。
由于我对 GitOps 世界完全陌生,所以我想开始使用它。每次我开始学习新东西时,我都有记录它的习惯。您也可以查看我的Raspberry Pi NAS 博客文章。
所以这是我开始使用 ArgoCD 的版本。
安装
ArgoCD的安装相当简单,我们先创建一个namespace
并运行命令获取所需资源。
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
进入全屏模式 退出全屏模式
然后我们安装 ArgoCD CLI 工具。有多种安装方法,我使用以下代码进行安装。
sudo curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
sudo chmod +x /usr/local/bin/argocd
进入全屏模式 退出全屏模式
要检查是否安装成功,可以使用version
命令
argocd version
argocd: v2.2.5+8f981cc
BuildDate: 2022-02-05T01:33:25Z
GitCommit: 8f981ccfcf942a9eb00bc466649f8499ba0455f5
GitTreeState: clean
GoVersion: go1.16.11
Compiler: gc
Platform: linux/amd64
FATA[0000] Argo CD server address unspecified
进入全屏模式 退出全屏模式
访问API服务器
ArgoCD 提供了多种方式来配置对 API 服务器的访问,我使用了 port forwarding 的_easier & quicker_ 之一
在新的终端窗口中运行以下命令来端口转发 kubectl 服务
kubectl port-forward svc/argocd-server -n argocd 8080:443
进入全屏模式 退出全屏模式
打开您的网络浏览器并导航到https://127.0.0.1:8080
以访问 ArgoCD UI
*ArgoCD 生成一个随机密码作为秘密,可以使用以下方式访问
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
进入全屏模式 退出全屏模式
使用默认凭据登录 UI 仪表板:
-
用户名:
admin
-
密码:在上述步骤中获得
[](https://res.cloudinary.com/practicaldev/image/fetch/s--9fBsMVkR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/0y6hdpdmtk6czewx1438.png)
默认情况下,它将在 Applications 页面开始,该页面_显然_为空。在下一节中,我们将部署一个简单的应用程序。
部署应用
ArgoCD 提供了一个简单的应用程序来开始使用。您可以参考留言板应用程序repo 了解更多信息。
可以使用两种方式部署应用程序:
-
通过 CLI
-
通过仪表板
为了将本教程保持在 5 分钟以内,我将使用 CLI 方法安装应用程序,但是您可以参考本文档以了解如何通过仪表板进行安装。
通过 CLI
运行以下命令来安装应用程序
argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default
application 'guestbook' created
进入全屏模式 退出全屏模式
安装应用程序后,您可以通过运行get
命令检查状态
argocd app get guestbook
Name: guestbook
Project: default
Server: https://kubernetes.default.svc
Namespace: default
URL: https://127.0.0.1:8080/applications/guestbook
Repo: https://github.com/argoproj/argocd-example-apps.git
Target:
Path: guestbook
SyncWindow: Sync Allowed
Sync Policy: <none>
Sync Status: OutOfSync from (53e28ff)
Health Status: Missing
GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE
Service default guestbook-ui OutOfSync Missing
apps Deployment default guestbook-ui OutOfSync Missing
进入全屏模式 退出全屏模式
您还可以在 ArgoCD UI 上验证应用程序的状态
[](https://res.cloudinary.com/practicaldev/image/fetch/s--8rrVeUGg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// dev-to-uploads.s3.amazonaws.com/uploads/articles/830ivw62faoz7whk16wq.png)
仔细观察,Sync Status
就是OutOfSync
。这是因为应用刚刚创建,还没有部署(没有创建Kubernetes资源)
要sync
应用程序,请运行以下命令
argocd app sync guestbook
进入全屏模式 退出全屏模式
如果一切顺利,您将看到如下输出
TIMESTAMP GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE
2022-03-04T10:54:48+05:30 Service default guestbook-ui OutOfSync Missing
2022-03-04T10:54:48+05:30 apps Deployment default guestbook-ui OutOfSync Missing
2022-03-04T10:54:48+05:30 Service default guestbook-ui OutOfSync Missing service/guestbook-ui created
2022-03-04T10:54:48+05:30 apps Deployment default guestbook-ui OutOfSync Missing deployment.apps/guestbook-ui created
Name: guestbook
Project: default
Server: https://kubernetes.default.svc
Namespace: default
URL: https://127.0.0.1:8080/applications/guestbook
Repo: https://github.com/argoproj/argocd-example-apps.git
Target:
Path: guestbook
SyncWindow: Sync Allowed
Sync Policy: <none>
Sync Status: Synced to (53e28ff)
Health Status: Progressing
Operation: Sync
Sync Revision: 53e28ff20cc530b9ada2173fbbd64d48338583ba
Phase: Succeeded
Start: 2022-03-04 10:54:48 +0530 IST
Finished: 2022-03-04 10:54:48 +0530 IST
Duration: 0s
Message: successfully synced (all tasks run)
GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE
Service default guestbook-ui Synced Healthy service/guestbook-ui created
apps Deployment default guestbook-ui Synced Progressing deployment.apps/guestbook-ui created
进入全屏模式 退出全屏模式
上述命令使用来自 repo 的清单在内部运行kubectl apply
命令。
在 UI 上,您将能够看到相同的状态
[](https://res.cloudinary.com/practicaldev/image/fetch/s--fQ-6YEiA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// dev-to-uploads.s3.amazonaws.com/uploads/articles/pg47g83ns6l6og86d1g9.png)
恭喜!我们已经使用 ArgoCD 成功部署了我们的第一个应用程序。 我很确定,不到 5 分钟!
像 ArgoCD 这样的应用程序的目标是确保current state
和desired state
保持不变。要查看实际情况,请从 UI 中删除 guestbook-ui 服务。您会立即看到syncstatus
为OutOfSync
,然后您可以单击同步按钮,很快您将看到服务将被重新创建。
以上就是我的 ArgoCD 简短快速入门指南。请继续关注我了解更多信息并添加更多对您有帮助的帖子:)
如果您在 Twitter 上,请联系:@TheTechMaharaj
我是新来的,但已经在我的博客Socialmaharaj.com上写了十多年的博客,你也可以去那里看看。
更多推荐
所有评论(0)