Argo CD使用指南:如何构建一套完整的GitOps? (3)

NOTE 3:首次登录Rancher后,你需要生成一个密码,并接受用于访问Rancher的URI。URI应该是预先加载在表单中的,所以您可以直接点击 "Okay"。

NOTE 4: 要登录Argo CD,它使用admin作为用户名,使用argocd-server pod名作为密码。你可以通过下面的操作来获得这个服务器的pod名(本例中是argocd-server-5bf58444b4-mpvht)。

$ kubectl get pods -n kube-system | grep argocd-server argocd-server-5bf58444b4-mpvht 1/1 Running 0 64m

现在你应该能够访问Argo CD UI,登录并查看,如下所示:

Argo CD使用指南:如何构建一套完整的GitOps?

既然我们的工具已经部署完成,让我们在Vault中存储密钥,以便hello world应用程序提取。

在Vault中创建密钥

为了让事情变得简单,在你的工具库中有一个帮助脚本。运行以下命令来获取Vault管理员令牌和端口转发命令:

$ sh tools/vault-config.sh Your Vault root token is: s.qEl4Ftr4DR61dmbH3umRaXP0 Run the following: export VAULT_TOKEN=s.qEl4Ftr4DR61dmbH3umRaXP0 export VAULT_CACERT=http://www.likecs.com/Users/adam.toy/.vault-ca.crt kubectl port-forward -n vault service/vault 8200 & You will then be able to access Vault in your browser at: [https://localhost:8200](https://localhost:8200)

运行输出的命令,然后导航到https://localhost:8200。输入上面的root token进行登录。

当你登录时,你应该在一个密钥引擎页面。点击Secret/条目,然后点击右上方的创建密钥。我们将创建一个demo密钥,所以添加以下内容并点击保存:

Argo CD使用指南:如何构建一套完整的GitOps?

现在我们已经为hello world应用程序准备好密钥了。

部署Hello World 应用程序

现在,回到我们的父版本,让我们运行下面的代码来部署hello world应用程序:

$ kubectl apply -f umbrella-apps.yaml appproject.argoproj.io/apps created application.argoproj.io/umbrella-apps created

创建完成后,回到Argo CD UI,你先应该看到两个新应用程序,umbrella-apps和demo-app。单击demo-app,然后等待所有资源正常运行:

Argo CD使用指南:如何构建一套完整的GitOps?

一旦状态都是healthy之后,你应该能够通过访问https://app.YOUR-DOMAIN 导航到你的应用程序。

Argo CD使用指南:如何构建一套完整的GitOps?

让我们也来验证一下我们的Vault密钥是否被注入到我们的应用程序pod中。在Argo CD UI的demo-app中,点击应用程序的一个Pod,然后点击顶部的日志标签。左边应该有两个容器,选择 test-deployment容器。在日志的顶部,你应该看到你的密钥在两行等号之间:

Argo CD使用指南:如何构建一套完整的GitOps?

测试GitOps

现在我们来测试一下Argo CD,确保当我们在仓库中做一些更改时它能够自动同步。

在你的工具库中,找到resources/apps/resources/hello-world.yaml文件,将replicaCount的值从5改到10。提交并推送你的更改到主分支,然后在Argo CD UI中导航回demo-app。当Argo CD达到它的刷新间隔时,它会自动开始部署其他5个应用程序副本(如果你不想等待,可以点击你的** umbrella-apps ** Argo应用程序 ** 中的刷新按钮):

Argo CD使用指南:如何构建一套完整的GitOps?

清 除

如果你准备拆掉你的集群,你需要先进入AWS控制台、EC2服务,然后点击Load Balancers。你会看到Kubernetes云提供商创建了一个ELB,但不是由Terraform管理的,你需要清理它。你还需要删除该ELB正在使用的安全组。

清理了ELB之后,运行以下命令并在出现提示时输入yes

terraform destroy -var-file=example.tfvars 下一步是什么?

我们已经有一个很好的工具集来使用GitOps部署应用程序。那么下一步是什么?如果你愿意接受挑战,可以尝试在hello world应用旁边部署自己的应用,甚至尝试通过在应用manifest仓库中更新镜像标签来实现CI/CD。这样一来,当构建新的应用镜像时,新的标签就会在manifest仓库中自动更新,Argo CD就会部署新版本。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpydxp.html