koukiblog

たぶんweb系の話題

KubernetesのJobを定義するときに覚えておくと便利なコマンド

特定のエンドポイントが疎通したことを確認してから処理を行う

特定のエンドポイントが200返すことを確認してから処理を行うことができます。istio-proxyなどSidecarコンテナの起動を待てます。

e.g :

istio-proxyの起動を待ってから処理開始。完了したらファイル配置

          - name: job-name
            image: alpine
            command: ["/bin/sh","-c"]
            args: ["while ! wget http://127.0.0.1:15020/healthz/ready -O -; do echo 'waiting istio-proxy...' && sleep 1; done; /startjob && touch /tmp/proxy-killer/ready"]
            volumeMounts:
              - name: proxy-killer
                mountPath: /tmp/proxy-killer

特定のファイルの存在を待ってから処理を行う

volume経由で実行完了を通知して後処理を行うことができます。

e.g :

ファイルの存在を確認してからpkill

          - name: proxy-killer
            image: alpine
            command: ["/bin/sh", "-c"]
            args: ["while [ ! -f /tmp/proxy-killer/ready ]; do echo 'waiting ready to kill proxy...' && sleep 1; done; pkill -f /usr/local/bin/pilot-agent"]
            volumeMounts:
            - name: proxy-killer
              mountPath: /tmp/proxy-killer