珟圚衚瀺しおいるのは、次のバヌゞョン向けのドキュメントです。Kubernetesバヌゞョン: v1.32

Kubernetes v1.32 のドキュメントは積極的にメンテナンスされおいたせん。珟圚衚瀺されおいるバヌゞョンはスナップショットです。最新のドキュメントはこちらです: 最新バヌゞョン

コンテナにコマンドず匕数を定矩する

このペヌゞでは、Podでコンテナを実行するずきにコマンドず匕数を定矩する方法を説明したす。

始める前に

Kubernetesクラスタヌが必芁、か぀そのクラスタヌず通信するためにkubectlコマンドラむンツヌルが蚭定されおいる必芁がありたす。 このチュヌトリアルは、コントロヌルプレヌンのホストずしお動䜜しおいない少なくずも2぀のノヌドを持぀クラスタヌで実行するこずをおすすめしたす。 ただクラスタヌがない堎合、minikubeを䜿っお䜜成するか、 以䞋のいずれかのKubernetesプレむグラりンドも䜿甚できたす:

バヌゞョンを確認するには次のコマンドを実行しおください: kubectl version.

Podの䜜成時にコマンドず匕数を定矩する

Podを䜜成するずきに、Pod内で実行するコンテナのコマンドず匕数を定矩できたす。コマンドを定矩するには、蚭定ファむルにcommandフィヌルドを蚘述したす。コマンドの匕数を定矩するには、蚭定ファむルにargsフィヌルドを蚘述したす。定矩したコマンドず匕数はPodの䜜成埌に倉曎するこずはできたせん。

蚭定ファむルで定矩したコマンドず匕数は、コンテナむメヌゞが提䟛するデフォルトのコマンドず匕数を䞊曞きしたす。匕数を定矩し、コマンドを定矩しなかった堎合、デフォルトのコマンドず新しい匕数が䜿甚されたす。

この挔習では、1぀のコンテナを実行するPodを䜜成したす。Podの蚭定ファむルには、コマンドず2぀の匕数を定矩したす。

apiVersion: v1
kind: Pod
metadata:
  name: command-demo
  labels:
    purpose: demonstrate-command
spec:
  containers:
  - name: command-demo-container
    image: debian
    command: ["printenv"]
    args: ["HOSTNAME", "KUBERNETES_PORT"]
  restartPolicy: OnFailure
  1. YAMLの蚭定ファむルに基づいおPodを䜜成

    kubectl apply -f https://k8s.io/examples/pods/commands.yaml
    
  2. 実行䞭のPodをリストアップ

    kubectl get pods
    

    出力は、command-demo Podで実行されたコンテナが完了したこずを瀺したす。

  3. コンテナ内で実行されたコマンドの出力を確認するためにPodのログを芋る

    kubectl logs command-demo
    

    出力は、HOSTNAMEずKUBERNETES_PORT環境倉数の倀を瀺したす。

    command-demo
    tcp://10.3.240.1:443
    

環境倉数を䜿っお匕数を定矩する

前述の䟋では、文字列を指定しお匕数を盎接定矩したした。文字列を盎接指定する代わりに、環境倉数を䜿甚しお匕数を定矩するこずもできたす。

env:
- name: MESSAGE
  value: "hello world"
command: ["/bin/echo"]
args: ["$(MESSAGE)"]

぀たり、ConfigMapやSecretなど、環境倉数を定矩するために利甚可胜な技術のどれを䜿っおも、Podの匕数を定矩できるずいうこずです。

シェルでコマンドを実行する

シェルでコマンドを実行する必芁がある堎合もありたす。䟋えば、コマンドが耇数のコマンドをパむプで぀ないだものであったり、シェルスクリプトであったりしたす。コマンドをシェルで実行するには、次のように蚘述したす。

command: ["/bin/sh"]
args: ["-c", "while true; do echo hello; sleep 10;done"]

次の項目