Kubernetes

マニフェストファイルを利用してServiceを作成しnginxにアクセスしてみた

nginxは、近年人気のあるオープンソースのWebサーバで、nginxを搭載したDockerイメージも用意されている。

今回は、nginxを搭載したDockerイメージを利用して、PodやServiceを作成し、ローカル端末からnginxを搭載したPodにアクセスしてみたので、その手順を共有する。

なお、nginxについては、以下のサイトを参照のこと。
https://cn.teldevice.co.jp/column/38275/

前提条件

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

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

また、nginxを搭載したDockerイメージは、以下の場所に格納されている「1.27.0」タグを利用すること。
https://hub.docker.com/_/nginx

前提条件_nginxを搭載したDockerイメージ

やってみたこと

  1. nginxを搭載したPodの作成
  2. Serviceを利用したPodへのアクセス

nginxを搭載したPodの作成

nginxを搭載したPodを作成し、Podの動作確認を行う。その手順は、以下の通り。

1) マニフェストファイル(nginx-test-pod.yml)を以下の内容で作成する。

2) 1)のファイルを配置し、「kubectl apply -f (マニフェストファイル名)」コマンドを実行し、Podを作成する。
nginxを搭載したPodの作成_2_1

nginxを搭載したPodの作成_2_2

3)「kubectl get pod」コマンドを実行すると、作成したPodの状態を確認できる。なお、「kubectl get pod -o wide」コマンドを実行すると、以下のように、PodのIPアドレスが確認できる。
nginxを搭載したPodの作成_3

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

5)「curl http://localhost(またはPodのIPアドレス):80」コマンドを実行すると、以下のように、nginxのWelcome画面が表示される。
nginxを搭載したPodの作成_5_1

nginxを搭載したPodの作成_5_2

6) exitコマンドを実行すると、以下のように、2)で起動したPodから出ることができる。
nginxを搭載したPodの作成_6

7)「kubectl delete -f (マニフェストファイル名)」コマンドを実行すると、以下のように、指定したマニフェストファイルで起動したPodを削除することができる。
nginxを搭載したPodの作成_7_1

なお、「kubectl get all」コマンドを実行すると、Type=ClusterIPであるServiceが残ったままであることが確認できる。
nginxを搭載したPodの作成_7_2



「Envader」はLinuxコマンドやDatabase SQL等のスキルを、環境構築不要で習得できる学習サイトだった「Envader」は、ITエンジニアとしてよく使うLinuxコマンドやDatabase SQL等のスキルを、解説を読んだ上で、問題を解き...

Serviceを利用したPodへのアクセス

ローカル端末からnginxを搭載したPodにアクセスするには、KubernetesのServiceを利用する。その手順は、以下の通り。

1) マニフェストファイル(nginx-test.yml)を以下の内容で作成する。

なお、NodePort等のServiceの種類については、以下のサイトを参照のこと。
https://www.ios-net.co.jp/blog/20230621-1179/

2) 1)のファイルを配置し、「kubectl apply -f (マニフェストファイル名)」コマンドを実行し、PodとServiceを作成する。
Serviceを利用したPodへのアクセス_2_1

Serviceを利用したPodへのアクセス_2_2

3)「kubectl get all」コマンドを実行すると、作成したPod,Serviceの状態を確認できる。
Serviceを利用したPodへのアクセス_3

4)「kubectl get pod -o wide」「kubectl get service -o wide」コマンドを実行すると、作成したPod,ServiceのIPアドレス等を確認できる。
Serviceを利用したPodへのアクセス_4

5)「kubectl describe services (サービス名)」コマンドを実行すると、作成したServiceの詳細情報が確認できる。
Serviceを利用したPodへのアクセス_5

6) ローカルで「curl http://localhost:(ノード受付ポート)」を実行すると、以下のように、ローカル端末からnginxを搭載したPodにアクセスできることが確認できる。
Serviceを利用したPodへのアクセス_6_1

同様に、ブラウザで「http://localhost:(ノード受付ポート)」にアクセスすると、nginxのWelcome画面が表示されることが確認できる。
Serviceを利用したPodへのアクセス_6_2

7)「kubectl delete -f (マニフェストファイル名)」コマンドを実行すると、以下のように、指定したマニフェストファイルで起動したPod,Serviceを削除することができる。
Serviceを利用したPodへのアクセス_7

要点まとめ

  • nginxは、近年人気のあるオープンソースのWebサーバで、nginxを搭載したDockerイメージも用意されている。
  • ローカル端末からnginxを搭載したPodにアクセスするには、KubernetesのServiceを利用する。