1.command/argsとは?
- 実務的な観点において、commandとargsはコンテナの起動時に「何を実行するか」を決定する最終指示書である。
- イメージは一つだが、デプロイ環境や目的に応じて動作を変更する必要がある場合に使用する。
1-2.継続して動作させたい場合
1-2-1.まず、下記の検証用イメージとコードで動作を確認。
apiVersion: v1
kind: Pod
metadata:
labels:
run: simple-wo-command
name: simple-wo-command
spec:
containers:
- image: sysnet4admin/net-tools
name: net-tools
検証用イメージの動作により、Podが異常終了している。

1-2-2.commandが定義された検証用コードで動作を確認。
apiVersion: v1
kind: Pod
metadata:
labels:
run: simple-command
name: simple-command
spec:
containers:
- image: sysnet4admin/net-tools
name: net-tools
command: ["/bin/sh", "-c", "sleep 3600"]
sleep 3600が適応され, Podが追加で生成されず、一つのみ動作している。

Podの内部に入り、commandの定義通りに動作しているかを確認。

1-3.ユーザーが任意のコマンドを実行させたい場合
1-3-1.command内に引数を含める場合
apiVersion: v1
kind: Pod
metadata:
labels:
run: multiple-command-v1
name: multiple-command-v1
spec:
containers:
- image: sysnet4admin/net-tools
name: net-tools
command: ["/bin/sh", "-c", "echo run multiple-command-v1 && sleep 3600"]
1-3-2.command内に引数を含める場合2
※この場合、同時実行ではなく順次実行される。echo run multiple-command-v2 の実行後に sleep 3600
apiVersion: v1
kind: Pod
metadata:
labels:
run: multiple-command-v2
name: multiple-command-v2
spec:
containers:
- image: sysnet4admin/net-tools
name: net-tools
command: ["/bin/sh", "-c", "echo run multiple-command-v2; sleep 3600"]
1-3-3. 実行プログラム・オプション・引数を分離して使用する場合
※この場合、1-3-2と同様に順次実行される
apiVersion: v1
kind: Pod
metadata:
labels:
run: multiple-command-v3
name: multiple-command-v3
spec:
containers:
- image: sysnet4admin/net-tools
name: net-tools
command:
- "/bin/sh"
- "-c"
- |
echo run multiple-command-v3
sleep 3600
1-3-4.実行プログラムとオプションをまとめ、引数のみを分離する場合
apiVersion: v1
kind: Pod
metadata:
labels:
run: multiple-command-w-args
name: multiple-command-w-args
spec:
containers:
- image: sysnet4admin/net-tools
name: net-tools
command: ["/bin/sh","-c"]
args:
- |
echo run multiple-command-w-args
echo add commentary
sleep 3600
'k8s > APP配布' 카테고리의 다른 글
| DaemonSet、StatefulSet (0) | 2026.05.09 |
|---|---|
| Job、CronJob (0) | 2026.05.09 |
| Deployment、ReplicaSet (0) | 2026.05.08 |