Kataコンテナの作成
Kubernetes RuntimeClassを使用して、Kata Containerとして実行されるNGINXポッドを作成します。
このタスクでは、kata-runtimeを実行時エンジンとして使用してコンテナを作成する方法を示します。 Kata Containerを作成するには、kata-runtimeのKubernetes RuntimeClassリソースを設定します。 RuntimeClassの設定の詳細は、「ランタイム・クラスの設定」を参照してください。
この例では、Kubernetesポッド構成ファイルを使用して、NGINX webサーバーを実行するKata Containerを作成します。
- ポッド構成ファイルを作成します。
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 - ポッドを起動します。
kubectl applyコマンドでkata-nginx.yamlファイルを使用して、Kata Containerを作成します:kubectl apply -f kata-nginx.yaml - ポッドが実行されていることを確認します。
ポッドが作成されたことを確認するには、
kubectl get podsコマンドを使用します:kubectl get pods出力は次のようになります:
NAME READY STATUS RESTARTS AGE kata-nginx 1/1 Running 0 40s - ポッドの詳細を表示します。
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 ... - 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 - ワーカー・ノードで実行されているポッドをリストします。
管理コンソール・プロンプトで次のコマンドを実行して、
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コマンドを使用します。 - ワーカー・ノードで実行されているコンテナの詳細をリストします。
ワーカー・ノード上のコンテナに関する詳細情報を取得するには、
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の短縮バージョンであることに注意してください。 - ポッドの詳細をリストします。
ポッドの詳細情報を取得するには、
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>" }, ... - 管理コンソールを終了します。
コンソール・プロンプトで
exitと入力して、ワーカー・ノードの管理コンソールを終了します。exit - ポッドを削除します。
ホストで
kubectl deleteコマンドを使用してポッドを削除できます:kubectl delete pod kata-nginx