
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create and run a Job
/ 50
Create and run a CronJob
/ 50
このラボでは、Job と CronJob を定義して実行します。
Google Kubernetes Engine(GKE)では、Job は有限のタスクを表すコントローラ オブジェクトで、理想的な進行状態(実行中のポッドの総数を維持するなど)の管理ではなく、タスクの実行から完了までを管理します。
CronJob は、時間に関連した有限のタスクを、指定された時間に 1 回だけまたは繰り返し実行します。タスクの実行には Job オブジェクトが使用されます。
このラボでは、次のタスクの実行方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
Qwiklabs にシークレット ウィンドウでログインします。
ラボのアクセス時間(例: 1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。
準備ができたら、[ラボを開始] をクリックします。
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
[Google Console を開く] をクリックします。
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。
利用規約に同意し、再設定用のリソースページをスキップします。
最初のログイン手順を完了すると、プロジェクト ダッシュボードが表示されます。
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
GKE では、Job は有限のタスクを表すコントローラ オブジェクトです。
このタスクでは、Job を作成し、そのステータスを調べてから削除します。
円周率の値を 2,000 桁まで計算し、その結果を出力するサンプルの Job を作成しましょう。
example-job.yaml
というファイルを作成し、次のコマンドを実行して nano で開きます。example-job.yaml
ファイルに貼り付けます。Ctrl+O キーの次に Enter キーを押し、編集したファイルを保存します。
Ctrl+X キーを押して nano テキスト エディタを終了します。
次のコマンドを実行して、このファイルから Job を作成します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
実行中の Job 数、正常に完了した Job 数、失敗した Job 数を示す Pod のステータスを含め、Job の詳細が表示されます。
実際の Pod 名は出力例と異なる場合があります。
いずれかの Pod 名をメモしておきます。
Job が完了すると、Pod の作成が中止されます。Job が完了しても、Job API オブジェクトは削除されないため、Job のステータスを表示できます。Job によって作成された Pod は削除されませんが、終了します。Pod は保持されるため、Pod のログを表示したり、Pod を操作したりできます。
出力は次のようになります。
出力を見ると、円周率の最初の 2,000 桁が Job によって Pod のログに書き込まれたことがわかります。
このログに対して再度クエリを実行しても Pod が見つからないため、コマンドは失敗します。
CronJob を作成すると、時間に関連した有限のタスクを、指定された時間に 1 回だけまたは繰り返し実行できます。
このタスクでは、CronJob を作成して実行した後、クリーンアップして削除します。
この CronJob は、時刻、日付、「Hello, World!」を出力する新しいコンテナを 1 分おきにデプロイします。
example-cronjob.yaml
というファイルを作成し、次のコマンドを実行して nano で開きます。example-cronjob.yaml
ファイルに貼り付けます。Ctrl+O キーの次に Enter キーを押し、編集したファイルを保存します。
Ctrl+X キーを押して nano テキスト エディタを終了します。
schedule
フィールドを使用し、Unix 標準の crontab
形式で時間を受け取ります。
すべての CronJob 時間は UTC で表示されます。
schedule
フィールドでは、ワイルドカード値として * と ? も受け入れられます。タスクを一定の間隔で繰り返す必要がある場合は、/ と範囲を組み合わせて指定します。この例の */1 * * * *
は、月、日、曜日に関係なく、1 分ごとにタスクを繰り返す必要があることを示しています。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
出力は次のようになります。
[Job 名]
は実際の Job 名に置き換えます。Job インスタンスの 1 つが実行されたことを示す Pod のステータスを含め、Job の詳細が表示されます。
CronJob で設定したシェル スクリプトの出力が表示されます。
実際の Job 名は出力例と異なる場合があります。Kubernetes では、デフォルトで Job 履歴の上限が設定されており、Job 履歴に表示されるのは、正常に完了した Job と失敗した Job のうち直近の 3 個のみとなります。そのため、このリストに表示されるのは、4 個の Job のうち直近の 3 個の Job のみになります。
CronJob を停止して、この CronJob に関連するすべての Job をクリーンアップするには、CronJob を削除する必要があります。
出力は次のようになります。
これですべての Job が削除されました。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください