- Kubernetes forリリース2
- Kata Containerの作成
- Kataコンテナの作成
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