EKSで機械学習 #8 Argo CDを利用したCD環境の構築
はじめに
このシリーズでは Amazon EKSで機械学習を行っていきたいと思います
シリーズ目次
EKSで機械学習 #1 準備編
EKSで機械学習 #2 クラスター作成編
EKSで機械学習 #3 Managed Worker Node作成編
EKSで機械学習 #4 GPU Managed Worker Node作成編
EKSで機械学習 #5 Cluster AutoScaler設定編
EKSで機械学習 #6 HPAの設定
EKSで機械学習 #7 EFSの設定
EKSで機械学習 #8 Argo CDを利用したCD環境の構築(この記事)
この記事の目的
Argo CDを利用したCD環境の構築を行います。
Argo CDを選んだ理由は、自分の勉強を兼ねているからです。
チュートリアル
こちらを参考にしました。
namaspace, crd の設定
namespaceについて汎用性があるように、ymlにしました。
kind: Namespace
apiVersion: v1
metadata:
name: argocd
labels:
name: argocd
install用のマニフェストもローカルに保存して、applyしました
k apply -f namespace.yml
wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
k apply -f install.yaml -n argocd
確認
k get all -n argocd
NAME READY STATUS RESTARTS AGE
pod/argocd-application-controller-7585975794-h7sc7 1/1 Running 0 20s
pod/argocd-dex-server-6dbcf9c747-7sc22 1/1 Running 0 20s
pod/argocd-redis-868b8cb57f-29wk5 1/1 Running 0 20s
pod/argocd-repo-server-6d8cdc4878-fgbnx 1/1 Running 0 20s
pod/argocd-server-656f9b895b-f9mh6 1/1 Running 0 20s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/argocd-dex-server ClusterIP 10.100.43.115 <none> 5556/TCP,5557/TCP 20s
service/argocd-metrics ClusterIP 10.100.249.139 <none> 8082/TCP 20s
service/argocd-redis ClusterIP 10.100.114.180 <none> 6379/TCP 20s
service/argocd-repo-server ClusterIP 10.100.82.88 <none> 8081/TCP,8084/TCP 20s
service/argocd-server ClusterIP 10.100.251.101 <none> 80/TCP,443/TCP 20s
service/argocd-server-metrics ClusterIP 10.100.239.103 <none> 8083/TCP 20s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/argocd-application-controller 1/1 1 1 20s
deployment.apps/argocd-dex-server 1/1 1 1 20s
deployment.apps/argocd-redis 1/1 1 1 20s
deployment.apps/argocd-repo-server 1/1 1 1 20s
deployment.apps/argocd-server 1/1 1 1 20s
NAME DESIRED CURRENT READY AGE
replicaset.apps/argocd-application-controller-7585975794 1 1 1 20s
replicaset.apps/argocd-dex-server-6dbcf9c747 1 1 1 20s
replicaset.apps/argocd-redis-868b8cb57f 1 1 1 20s
replicaset.apps/argocd-repo-server-6d8cdc4878 1 1 1 20s
replicaset.apps/argocd-server-656f9b895b 1 1 1 20s
PowerUser:~/environment/argo-cd $
Argo CD CLIの設定
https://argoproj.github.io/argo-cd/cli_installation/
これを参考にしました。
VERSION=$(curl --silent "https://api.github.com/repos/argoproj/argo-cd/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
wget https://github.com/argoproj/argo-cd/releases/download/$VERSION/argocd-linux-amd64
sudo mv argocd-linux-amd64 /usr/local/bin/argocd
chmod +x /usr/local/bin/argocd
Argo CD API Serverへアクセスできるようにする
すでにサービスは起動していますが、svcは外部公開していないので、CLIが接続できません
k get svc -n argocd
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-dex-server ClusterIP 10.100.43.115 <none> 5556/TCP,5557/TCP 2m24s
argocd-metrics ClusterIP 10.100.249.139 <none> 8082/TCP 2m24s
argocd-redis ClusterIP 10.100.114.180 <none> 6379/TCP 2m24s
argocd-repo-server ClusterIP 10.100.82.88 <none> 8081/TCP,8084/TCP 2m24s
argocd-server ClusterIP 10.100.251.101 <none> 80/TCP,443/TCP 2m24s
argocd-server-metrics ClusterIP 10.100.239.103 <none> 8083/TCP 2m24s
チュートリアルは2つ方法があり
port-forwardする方法とingressを作成する方法があるようですが、今回は port-forwardで行いたいと思います。
注意: 私の環境(cloud9)では port-forwardの方法ではArgoCDのUIにアクセスできなかったため、以下はローカル(Mac)で行っています
kubectl port-forward svc/argocd-server -n argocd 8080:443
初期パスワードはpod名のようなので確認します
kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2
argocd-server-656f9b895b-XXXXX
CLIでログインします。
argocd login localhost:8080
WARNING: server certificate had error: x509: certificate signed by unknown authority. Proceed insecurely (y/n)? y
Username: admin
Password:
'admin' logged in successfully
Context 'localhost:8080' updated
新しいパスワードは argocd123 としました
argocd account update-password
*** Enter current password:
*** Enter new password:
*** Confirm new password:
Password updated
Context 'localhost:8080' updated
サンプルアプリケーションの登録(GUI)
チュートリアルのURL通りで問題なく動きました。
まとめ
CD環境でArgoを導入しました。
近々、CIと組み合わせて、GitOps環境を構築したいと思います。
また、カナリアデプロイもこちらで紹介されていたので、時間あるときにやってみようと思います
https://qiita.com/syogun/items/2ed4478a314bf7e4a63e
Author And Source
この問題について(EKSで機械学習 #8 Argo CDを利用したCD環境の構築), 我々は、より多くの情報をここで見つけました https://qiita.com/asahi0301/items/c74bc1d2884a9657dc56著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .