8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MinikubeでArgo Workflowsと戯れてみた

Last updated at Posted at 2021-12-23

Minikube上でArgo WorkflowsをインストールしてHello worldを実行するまでメモです。爆速でローカル(Minikube)で動かすことだけを目的にしているので、商用環境での利用とか全く考慮してない+説明も最小限なので悪しからず。

セットアップ手順

Minikubeのセットアップ

以下のページを参照。

Argo CLIのセットアップ

以下のページを参照(バージョンは適宜読み替えて!)。

Argo用のネームスペースの作成

コマンド
kubectl create namespace argo

権限の付与

コマンド
kubectl create rolebinding default-admin --clusterrole=admin --serviceaccount=default:default

Argo Workflowsのインストール

コマンド
kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/master/manifests/install.yaml

UIの表示手順

UIポートの解放

コマンド例
kubectl -n argo port-forward deployment/argo-server 2746:2746 &

トップ画面へのアクセス

image.png

認証情報の取得

コマンド
kubectl -n argo exec -it $(kubectl get --no-headers=true pods -n argo -o name -l app=argo-server) -- argo auth token
トークン出力例
Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Il9yLU5CUURSXzNPN1JYcXFSWlAzU2hKRTE4R2hyMnFKQlc2UnRQQkxqLW8ifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjcxNzQ5MDE2LCJpYXQiOjE2NDAyMTMwMTYsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJhcmdvIiwicG9kIjp7Im5hbWUiOiJhcmdvLXNlcnZlci03OWJmNDViNWI3LW16OHBiIiwidWlkIjoiZjViM2UwYjctYmU0OC00OWFmLTk4NjYtMGRmY2JiYWNjM2U2In0sInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhcmdvLXNlcnZlciIsInVpZCI6ImY5N2ExODEwLTE0M2UtNDBmZS1iYjQzLTkyNjdmYmNjYTJkNiJ9LCJ3YXJuYWZ0ZXIiOjE2NDAyMTY2MjN9LCJuYmYiOjE2NDAyMTMwMTYsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDphcmdvOmFyZ28tc2VydmVyIn0.tE_Hdm8HEsC5gGSAXO-v1Q-3SqIXBQJ2QsQwqKGXNy3k185TRF99Tr2wdPHzginMUfEHex9FunW5GlefHBVf6BI5OCPUgHFaFqq6OBuXZe_TiRz6W1ASrDQHQB1FlJHV5awGNwoiKM6fRYsMKncdIBxjlONHiaRsfTKlueY_YBOaF_VjlxXX3KyoTXZizs_-dMttf7_EwNxyZkS2Fw4MDmsSX_XO6hsV5bpuG0wq-iHjJd9wq_oljGjnsCY7Is9wUjNfLoNz7RnpQUi8lvZGofWJLFipWTGsITWQeNHfSJineuqCGbWrwFrTlgUUViKP4ByCA2cdqyMrh_uGvmc40w

ログイン

image.png

ログイン成功するとこんな画面になる。

image.png

Workflowの実行手順

公式サンプルのWorkflow(Hello World)を実行してみる。

コマンド例
argo submit --watch https://raw.githubusercontent.com/argoproj/argo-workflows/master/examples/hello-world.yaml
Workflow実行完了時点のコンソール出力例
Name:                hello-world-hlc9q
Namespace:           default
ServiceAccount:      default
Status:              Succeeded
Conditions:          
 PodRunning          False
 Completed           True
Created:             Thu Dec 23 08:44:31 +0900 (20 seconds ago)
Started:             Thu Dec 23 08:44:31 +0900 (20 seconds ago)
Finished:            Thu Dec 23 08:44:51 +0900 (now)
Duration:            20 seconds
Progress:            1/1
ResourcesDuration:   4s*(1 cpu),4s*(100Mi memory)

STEP                  TEMPLATE  PODNAME            DURATION  MESSAGE
 ✔ hello-world-hlc9q  whalesay  hello-world-hlc9q  11s         

This workflow does not have security context set. You can run your workflow pods more securely by setting it.
Learn more at https://argoproj.github.io/argo-workflows/workflow-pod-security-context/

UIで実行結果を確認してみる。

image.png

詳細画面に遷移すると・・・

image.png

ログを見てみると・・・

image.png

CronWorkflowの実行手順

公式サンプルのCronWorkflow(Hello World)を実行してみる。

コマンド例
argo cron create https://raw.githubusercontent.com/argoproj/argo-workflows/master/examples/cron-workflow.yaml
Workflow作成時点のコンソール出力例
Name:                          hello-world
Namespace:                     default
Created:                       Thu Dec 23 08:58:38 +0900 (now)
Schedule:                      * * * * *
Suspended:                     false
Timezone:                      America/Los_Angeles
StartingDeadlineSeconds:       0
ConcurrencyPolicy:             Replace
NextScheduledTime:             Thu Dec 23 08:59:00 +0900 (21 seconds from now) (assumes workflow-controller is in UTC)

UIでWorkflowの作成状態を確認してみる。

image.png

image.png

UIでWorkflowの実行状態を確認してみる。

image.png

スケジュール実行の中断と再開

スケジュール実行の中断および再開も可能。

image.png

image.png

即時実行

スケジュールした日時以外での即時実行も可能。

image.png

付録

アンインストール手順

Argo Workflowsのアンインストール

コマンド例
kubectl delete -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/master/manifests/install.yaml

権限の削除

必要に応じて実施。

コマンド例
kubectl delete rolebinding default-admin

Argo用のネームスペースの削除

コマンド例
kubectl delete namespace argo

参考ページ

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?