argo workflowをローカル環境に構築
概要
docker desktop for macでの
argo workflowのローカル環境構築の話
argo workflowとは
Kubernetesで並列ジョブを調整するための
オープンソースのコンテナネイティブワークフローエンジン。
手順
1.kubectlをインストール
kubernetesを操作するコマンドツール
brew install kubectl
kubectl version --client
2.kubernetes環境構築
Mac上にKubernetes環境を構築する。
今回はminikubeで行う。
以下のようにしてminikubeをインストールする。
brew install minikube
続いてminikubeを起動する。
dockerオプションを付与しての起動が推奨されている。
※以前に試したときはできたけどverの不整合なのか今はVirtualBoxを仮想マシンとして使うとエラーになるのでdockerのコンテナ仮想マシンとして利用
minikube start --driver=docker
minikubeと表示されればOK
kubectl config current-context
3.argoインストール
argo cliをインストールしておく
brew argo install
Namespaceを作り、argoのmanifestを反映
kubectl create ns argo
kubectl apply -n argo -f <URL>
URLは以下の公式のinstall.yamlのページを指定
default サービスアカウントに権限を付与する。
これをしないと、Argo Workflowの一部の機能
(ファイル出力,secretへのアクセスなど)が使えない模様。
kubectl create rolebinding default-admin --clusterrole=admin --serviceaccount=default:default
argoジョブ実行
以下でhello-worldジョブが稼働すればOK
argo submit -n argo --watch https://raw.githubusercontent.com/argoproj/argo/master/examples/hello-world.yaml
WEB UI
以下を発行してローカルモードで起動する。
ローカルモードの場合は認証がいらない。
argo server
http://127.0.0.1:2746にアクセス
workflow画面
表示の際はnamespaceを指定すること
デフォルトはnullになっているのでargoと入力する
最後に
argoはパブリッククラウド等でKubernetesを利用した
ジョブシステムを構築する際に便利なので一度触れておいて損はないかもしれない。
クラウドで利用する際は「minikube」は不要となり、
各クラウドのKubernetesサービスにargoを入れることになる。
google:GKE
Azure:AKS
AWS:EKS
本番で運用する際はデプロイの自動化を行うargo CDも合わせて利用すると便利。
Discussion