- Kubernetes forリリース2
- Kubernetesの使用
- ポッドでのアプリケーションの実行
ポッドでのアプリケーションの実行
kubectl
コマンドを使用して、KubernetesクラスタでNGINXコンテナを実行するポッドを作成します。
- ポッドを作成します。
1つの実行中のコンテナを使用してポッドを作成するには、
kubectl create
コマンドを使用します。 たとえば、Oracle Container Registryからnginx
コンテナ・イメージを使用してポッドを作成するには:kubectl create deployment --image container-registry.oracle.com/olcne/nginx:1.17.7 hello-world
この例では、デプロイメントの名前として
hello-world
を使用します。 ポッドには、プレフィクスとしてデプロイメント名を使用します。ヒント:
デプロイメント、ポッドおよびサービス名は、DNS-1123ラベルと一致する要件に準拠しています。 これらは、小文字の英数字または
-
で構成する必要があり、英数字で開始および終了する必要があります。 名前の検証に使用される正規表現は、[a-z0-9]([-a-z0-9]*[a-z0-9])?
です。 検証しないデプロイメントの名前を使用すると、エラーが返されます。Kubernetes内で新しいアプリケーションを実行する場合は、さらに多くのオプション・パラメータを使用できます。 たとえば、起動するレプリカ・ポッドの数を実行時に指定することも、ポッド・コンポーネントを識別しやすくするためにデプロイメントにラベルを適用することもできます。 使用可能なオプションの完全なリストを表示するには、
kubectl run --help
コマンドを使用します。 - ポッドをリストします。
新しいアプリケーション・デプロイメントで1つ以上のポッドが作成されたことを確認するには、
kubectl get pods
コマンドを使用します:kubectl get pods
出力は次のようになります:
NAME READY STATUS RESTARTS AGE hello-world-5db76fbd7d-99s8h 1/1 Running 0 1m
- ポッドの詳細を表示します。
kubectl describe
を使用して、ポッドのより詳細なビューを表示します。これには、どのコンテナが実行されているか、およびポッドをホストしているノードを含め、どのコンテナがベースになっているかが含まれます:kubectl describe pods
出力は次のようになります:
Name: hello-world-5db76fbd7d-99s8h Namespace: default Priority: 0 Service Account: default Node: <nodename>/<IP_address> Start Time: <date> 11:08:37 +0000 Labels: app=hello-world pod-template-hash=5db76fbd7d Annotations: <none> Status: Running IP: 10.244.1.26 IPs: IP: 10.244.1.26 Controlled By: ReplicaSet/hello-world-5db76fbd7d Containers: nginx: Container ID: cri-o://6f4ce80153cefbaea327dd011b035cfb2112eb31085ca358b9c894fa775... Image: container-registry.oracle.com/olcne/nginx:1.17.7 Image ID: container-registry.oracle.com/olcne/nginx@sha256:78ce89068e7feb15ec... Port: <none> Host Port: <none> State: Running Started: <date> 11:08:43 +0000 Ready: True Restart Count: 0 Environment: <none> Mounts: /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-d9q4t (ro) Conditions: Type Status PodReadyToStartContainers True Initialized True Ready True ContainersReady True PodScheduled True Volumes: kube-api-access-d9q4t: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: <nil> DownwardAPI: true QoS Class: BestEffort Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: ...