Closed suzuki-shunsuke closed 4 years ago
argo logs
実行して残す感じできそうだけど、ドキュメントはないかも。
$ minikube start
$ kubectl create namespace argo
$ kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo/release-2.5/manifests/quick-start-postgres.yaml
$ kubectl port-forward -n argo service/argo-server 2746:2746
$ kubectl port-forward -n argo service/minio 9000:9000
$ kubectl -n argo exec -ti deployment/postgres -- psql -U postgres -d postgres
Getting Started
https://argoproj.github.io/docs/argo/demo.html
ローカルでサンプルを動かす。
kind だと動かない
k8s クラスタが必要だが、 kind だと動かないので minikube を使う。
https://github.com/kubernetes-sigs/kind/issues/1002#issuecomment-545498176
kind だと dockerd を起動していないので、 docker socket をマウントできない。
Argo 自体は起動するのだが、 workflow を submit したところ、起動に失敗していた。 workflow の起動に失敗した場合、
$ kubectl describe pod
で原因が分かったりする。Minikube のインストール
https://minikube.sigs.k8s.io/docs/start/macos/
Mac で Docker 使ってたら hyperkit はあるはず。 Hyperkit については https://www.publickey1.jp/blog/16/docker_hyperkit.html
Argo Install
サンプルがそのままだと動かない場合は manifest をダウンロードして修正して apply 自分の場合、 manifest の API バージョンが k8s cluster がサポートしていなかった。 "apps/v1beta2" を
apps/v1
に修正した。https://github.com/kubernetes/kubernetes/issues/55894#issuecomment-379497517
サービスアカウントに権限を付与する
Argo UI をブラウザで見れるようにする
サンプルを実行する。
--watch
をつけるとターミナルに延々と出力されて鬱陶しいのでつけない。Argo UI で結果が確認できる。 Argo UI には認証がない。また、UIは read only といった感じで workflow のキャンセルや再実行ということは出来なそう。 Argo CLI を使えばキャンセルはできる。
Install an Artifact Repository
ファイルを共有するには Artifact を外部ストレージに保存する必要がある。 S3 などに対応しているが、サンプルでは MinIO を使っている。 Helm でインストールする
Helm のインストール
MinIO のインストール
https://github.com/helm/charts/tree/master/stable/minio
Chart repository の追加
https://helm.sh/docs/intro/quickstart/
helm install コマンドも修正が必要だった。
--name
がなくなり、 name が必須の引数になったらしい。https://stackoverflow.com/questions/57961162/helm-install-unknown-flag-name
Reconfigure the workflow controller to use the Minio artifact repository
Argo の Workflow Controller が MinIO を使えるように設定を kubectl edit で変更する。 ここも公式ドキュメントの修正が必要だった。
secret 名や service 名が
argo-artifacts
ではなくargo-artifacts-minio
だった。スクリーンショット
実行履歴
Workflow の manifest も確認できる
Workflow のログ