Kubernetes

マニフェストファイルを利用してPodを作成しPythonプログラムを実行してみた

Kubernetesの最も小さい基本的な構成単位をPodといい、マニフェストファイルを用いると、ローカルに存在しているDockerイメージを利用してPodを作成できる。

今回は、Pythonプログラムを実行できるDockerイメージを利用して、Podを作成してみたので、その手順を共有する。

なお、Podについては、以下のサイトを参照のこと。
https://qiita.com/MahoTakara/items/f5130bb6e9e493c46c6b

前提条件

以下の手順に従って、「Docker Desktop」インストール済のWindows端末でKubernetesを有効化済であること。

「Docker Desktop」インストール済のWindows端末でkubectlコマンドを実行してみたKubernetesは、複数のホストにまたがるコンテナ群を一括で管理するソフトウェアで、「Docker Desktop」をインストール済...

また、以下の手順に従って、Dockerイメージ「python_test 」を作成済であること。

PythonのDockerイメージでPythonプログラムを実行してみたDocker公式のDockerレジストリ「Docker Hub」には、さまざまなDockerイメージが格納されている。 今回は、P...

やってみたこと

  1. Pod作成前の状態確認
  2. Pod作成とPythonプログラムの実行

Pod作成前の状態確認

Podを作成する前の、DockerイメージとDockerコンテナの状態を確認する。その手順は、以下の通り。

1)「docker image ls」コマンドで、Dockerイメージ「python_test 」を作成済であることを確認する。
Pod作成前の状態確認_1_1

なお、「docker image ls (Dockerイメージ名)」コマンドを実行すると、以下のように、指定したDockerイメージのみ一覧に表示することができる。
Pod作成前の状態確認_1_2

このときの、Docker Desktop上でDockerイメージを確認した結果は、以下の通り。
Pod作成前の状態確認_1_3

2)「docker container ls -a」コマンドで、Dockerコンテナが作成されていないことを確認する。
Pod作成前の状態確認_2_1

このときの、Docker Desktop上でDockerコンテナを確認した結果は、以下の通り。
Pod作成前の状態確認_2_2



Androidロックを解除する裏ワザ「4uKey for Android」をご紹介Android端末では、以下の画像のような画面ロックパスワードを設定することができますが、このパスワードを忘れてしまうと、Android...

Pod作成とPythonプログラムの実行

yaml形式のマニフェストファイルを利用すると、独自Podを作成できる。Podを作成し、Pod内のPythonプログラムを実行する手順は、以下の通り。

1) マニフェストファイル(python-test-pod.yml)を以下の内容で作成する。
Pod作成とPythonプログラムの実行_1

2) 1)のファイルを配置し、「kubectl apply -f (マニフェストファイル名)」コマンドを実行し、Podを作成する。
Pod作成とPythonプログラムの実行_2_1

Pod作成とPythonプログラムの実行_2_2

3)「kubectl get pod」コマンドを実行すると、作成したPodの状態を確認できる。
Pod作成とPythonプログラムの実行_3_1

このときの、Docker Desktop上でDockerコンテナを確認した結果は、以下の通り。
Pod作成とPythonプログラムの実行_3_2

4)「kubectl exec -it (Pod名) — /bin/bash」コマンドを実行すると、指定したPod内に入ることができる。
Pod作成とPythonプログラムの実行_4

5) 2)で起動したPod内で、Pythonプログラム「decision_tree_sample.py」を実行すると、プログラムが正常終了し、画像ファイル「decision_tree_graph.png」が出力されることが確認できる。
Pod作成とPythonプログラムの実行_5

6) exitコマンドを実行すると、以下のように、2)で起動したPodから出ることができる。また、「kubectl get pod」コマンドを実行すると、Podがまだ起動中であることが確認できる。
Pod作成とPythonプログラムの実行_6

7)「kubectl cp (Pod名):(ファイルパス) ./(ローカルのファイル名)」コマンドを実行すると、以下のように、Pod内のファイルをローカルにコピーすることができる。
Pod作成とPythonプログラムの実行_7_1

ローカルにコピーされたファイルの中身は、以下の通り。
Pod作成とPythonプログラムの実行_7_2

8)「kubectl delete pod/(Pod名)」コマンドを実行すると、以下のように、起動しているPodを削除することができる。
Pod作成とPythonプログラムの実行_8_1

このときの、Docker Desktop上でDockerコンテナを確認した結果は、以下の通り。
Pod作成とPythonプログラムの実行_8_2

要点まとめ

  • Kubernetesの最も小さい基本的な構成単位をPodといい、マニフェストファイルを用いると、ローカルに存在しているDockerイメージを利用してPodを作成できる。