前回は、Kubernetesの基本的な用語と主要なコンポーネントの役割について説明しました。今回は、nginxのPodを実際にデプロイしてみたいと思います。
KubernetesでPodなどのリソースをデプロイする場合、主に二つの方法があります。
-
kubectl create
コマンドやkubectl run
コマンドでデプロイする - マニフェストファイルを作成し、マニフェストファイルを指定して
kubectl create
もしくはkubectl apply
を実行する
このそれぞれの方法を使ってPodをデプロイしてみます。
前提
Kubernetesのリソースを操作するには、kubectl
というツールをインストールする必要があります。お使いのOSに合わせて、ここを参考にしてインストールしてください。また、kubectl
のバージョンはKubernetesクラスタのバージョンと合わせる必要がありますので、適宜置き換えてください。本稿では、v1.29.1を用います。
ワンライナーでPodのデプロイ
マニフェストファイルを使わずにリソースを作成するには、基本的にkubectl create
コマンドを使います。ですがPodに限り、kubectl run
コマンドという簡単にPodが作成できるコマンドが用意されています。
kubectl run
コマンドは、kubectl run <pod-name> --image=<image-name>
でPodを作成できます。
kubectl run run-nginx --image=nginx:latest
作成したPodを確認するには、kubectl get
コマンドを使います。kubectl get
コマンドは、kubectl get <resource-type>
でリソースの一覧を取得できます。
$ kubectl get pod # リソースタイプにPodを指定
NAME READY STATUS RESTARTS AGE
run-nginx 1/1 Running 0 18s
作成した、run-nginx
というPodが確認できます。
マニフェストファイルを使ってPodのデプロイ
Kubernetesでは、基本的にすべてのリソースをマニフェストファイルと呼ばれるYAMLファイルで管理し、クラスタにこのYAMLファイルを適用することでリソースを作成します。
ワンライナーでPodを作成することも可能ですが、ここではマニフェストファイルを使って同様のPodを作成してみます。
apiVersion: v1
kind: Pod
metadata:
name: manifest-nginx-pod
spec:
containers:
- name: manifest-nginx
image: nginx
上記のマニフェストファイルを保存し、以下のコマンドを実行します。
kubectl apply -f manifest-nginx.yaml
作成したPodをkubectl get pod
で確認します。
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
manifest-nginx-pod 1/1 Running 0 4s
run-nginx 1/1 Running 0 11m
注意点
今回nginxのPodを作成しましたが、まだこのPodは外部に対して公開されていません。そのため、下記のようにcurl
コマンドを実行しても結果は返ってきません。
curl <IP>:80
まとめ
今回はワンライナーでPodをデプロイする方法と、マニフェストファイルからPodをデプロイする方法を紹介しました。次回は、Service
というリソースを作成し、外部からこのPodがアクセスできるようにしてみます。