機械翻訳について

 Kataコンテナの作成

Kubernetes RuntimeClassを使用して、Kata Containerとして実行されるNGINXポッドを作成します。

このタスクでは、kata-runtimeを実行時エンジンとして使用してコンテナを作成する方法を示します。 Kata Containerを作成するには、kata-runtimeのKubernetes RuntimeClassリソースを設定します。 RuntimeClassの設定の詳細は、「ランタイム・クラスの設定」を参照してください。

この例では、Kubernetesポッド構成ファイルを使用して、NGINX webサーバーを実行するKata Containerを作成します。

  1. ポッド構成ファイルを作成します。

    kubectlコマンドを使用してKubernetesクラスタに接続するように設定されているホストで、Kubernetesポッド構成ファイルを作成します。 ポッド・ファイルで表記runtimeClassName: kata-containersを使用します。 CRI-Oは、ポッド・ファイルでこのランタイム・クラスを検出すると、kata-runtimeを使用してコンテナを実行します。

    このポッド・ファイルの名前はkata-nginx.yamlです。

    apiVersion: v1
    kind: Pod
    metadata:
      name: kata-nginx
    spec:
      runtimeClassName: kata-containers
      containers:
        - name: nginx
          image: container-registry.oracle.com/olcne/nginx:1.17.7
          ports:
          - containerPort: 80
  2. ポッドを起動します。

    kubectl applyコマンドでkata-nginx.yamlファイルを使用して、Kata Containerを作成します:

    kubectl apply -f kata-nginx.yaml
  3. ポッドが実行されていることを確認します。

    ポッドが作成されたことを確認するには、kubectl get podsコマンドを使用します:

    kubectl get pods

    出力は次のようになります:

    NAME         READY   STATUS    RESTARTS   AGE
    kata-nginx   1/1     Running   0          40s
  4. ポッドの詳細を表示します。

    kubectl describeコマンドを使用して、ポッドのより詳細なビュー(ランタイム、ポッドをホストしているワーカー・ノード、コンテナIDなど)を表示します。

    kubectl describe pod kata-nginx

    出力は次のようになります:

    Name:                kata-nginx
    Namespace:           default
    Priority:            0
    Runtime Class Name:  kata-containers
    Service Account:     default
    Node:                ocne-worker-1/<IP_address>
    Start Time:          Wed, 23 Oct 2024 12:07:35 +0000
    Labels:              <none>
    Annotations:         <none>
    Status:              Running
    IP:                  10.244.1.29
    IPs:
      IP:  10.244.1.29
    Containers:
      nginx:
        Container ID:   cri-o://ca0559ab7c77deddb2a5baf681fff39ae620a5a0696ee4535ad53fff...
        Image:          container-registry.oracle.com/olcne/nginx:1.17.7
        Image ID:       container-registry.oracle.com/olcne/nginx@sha256:78ce89068e7feb1...
        Port:           80/TCP
        Host Port:      0/TCP
        State:          Running
    
    ...
  5. Kata Containerポッドを実行しているワーカー・ノードで管理コンソールを起動します。

    ocne cluster consoleコマンドを使用して、任意のKubernetesノードで管理コンソールを起動できます。 構文は次のとおりです。

    ocne cluster console 
    [{-d|--direct}]
    {-N|--node} nodename
    [{-t|--toolbox}]
    [-- command] 

    構文オプションの詳細は、Oracle Cloud Native Environment: CLIを参照してください。

    次のコマンドを入力して、前のステップの出力で識別されたkata-containerポッドを実行しているワーカー・ノードで管理コンソールを起動し、必要に応じてノードの名前を置き換えます:
    ocne cluster console --direct --node ocne-worker-1
  6. ワーカー・ノードで実行されているポッドをリストします。

    管理コンソール・プロンプトで次のコマンドを実行して、crictl podsコマンドを使用してワーカー・ノードで実行されているポッドをリストします:

    sudo crictl pods

    出力は次のようになります:

    POD ID         CREATED         STATE  NAME                        NAMESPACE       ...
    02ab970089cd1  11 seconds ago  Ready  console-ocne-worker-1...    ocne-system     ...
    52af794c70dce  4 minutes ago   Ready  kata-nginx                  default         ...    
    430c83360e934  6 days ago      Ready  control-plane-capi-cont...  capi-kubeadm-con...
    ac94aebe63b51  6 days ago      Ready  bootstrap-capi-controll...  capi-kubeadm-boo...
    ...

    このワーカー・ノード上でkata-nginxコンテナが実行されていることがわかります。

    crictlコマンドの使用方法の詳細は、crictl --helpコマンドを使用します。

  7. ワーカー・ノードで実行されているコンテナの詳細をリストします。

    ワーカー・ノード上のコンテナに関する詳細情報を取得するには、crictl psコマンドを使用します。 たとえば:

    sudo crictl ps

    出力は次のようになります:

    CONTAINER       IMAGE          ... NAME                                POD ID        ...
    43d8e4fba2698   9a7fadacb497dbc... console-ocne-worker-1               2e4655ea682e5 ...
    ca0559ab7c77d   ...nginx@sha256... nginx                               52af794c70dce ...
    1556b7459a2be   container-regis... olcne/kubeadm-control-plane-cont    430c83360e934 ...
    ...

    このコンテナIDはポッド説明で示されるContainer IDの短縮バージョンであることに注意してください。

  8. ポッドの詳細をリストします。

    ポッドの詳細情報を取得するには、POD IDを使用してcrictl inspectpコマンドを実行します。 たとえば:

    sudo crictl inspectp 52af794c70dce

    出力は次のようになります:

    {
      "status": {
        "id": "52af794c70dce199e1bdab40b9dfe196def5a791266240a11e3477ea66b1421e",
        "metadata": {
          "attempt": 0,
          "name": "kata-nginx",
          "namespace": "default",
          "uid": "331dc2b0-769b-4a5e-b1eb-a521f8c75670"
        },
        "state": "SANDBOX_READY",
        "createdAt": "<date>",
        "network": {
          "additionalIps": [],
          "ip": "<IP_address>"
        },
    ...
  9. 管理コンソールを終了します。

    コンソール・プロンプトでexitと入力して、ワーカー・ノードの管理コンソールを終了します。

    exit
  10. ポッドを削除します。

    ホストでkubectl deleteコマンドを使用してポッドを削除できます:

    kubectl delete pod kata-nginx