スポンサーリンク

【サンプル有】KubernetesのDeploymentでPodを作成する手順

【サンプル有】KubernetesのdeploymentでPodを作成する手順

 

★悩み★
・Deploymentを用いてKubernetesにPodを作成する手順を知りたい。
・Deploymentの書き方を知りたい。もしくは、サンプルが欲しい。
・そもそもKubernetesのDeployment(デプロイメント)とは、何ですか?



こういった「悩み」に答えます。
 

★本記事の内容★
① KubernetesのDeployment(デプロイメント)とは、何か?をご紹介
② KubernetesのDeploymentでPodを作成するための準備をご紹介
③ KubernetesのDeploymentでPodを作成する手順をご紹介



これからご紹介する「KubernetesのDeploymentでPodを作成する手順」を実践したことで、2時間以内で「Deploymentを用いてKubernetes上にPodを作成」できました。

記事の前半では「KubernetesのDeployment(デプロイメント)とは、何か?」を解説しつつ、記事の後半では「Deploymentの書き方(KubernetesにPodを作成する定義)とサンプル」を紹介します。

この記事を読み終えることで、「Kubernetes上にPodを作成するためのDeploymentの書き方を理解した」状態になります。
 

★Kubernetesとは★
Kubernetesを利用することで、マイクロサービスなシステムを構築できます。Kubernetesを利用したマイクロサービスに関して知りたい方は、以下の記事をご覧ください。
 
Kubernetesとマイクロサービスについて



ちなみに、「Kubernetesを体系的に学習したい」方には、以下の記事がお勧めです。
 


 

KubernetesのDeployment(デプロイメント)とは、何か?

KubernetesのDeployment(デプロイメント)とは、何か?


「KubernetesのDeployment(デプロイメント)とは、何か?」に関してご説明します。
 

「KubernetesのDeployment(デプロイメント)とは、何か?」を図を活用しながらご説明しますね。



KubernetesのDeployment(デプロイメント)は、以下の機能を提供します。

★KubernetesのDeployment(デプロイメント)が提供する機能★
・Podの監視を実施し、Podの数を調整
 → 起動中のPodが異常終了した場合、新しいPodを自動的に起動できる
・Podのローリングアップデート
 → 起動中のPodを徐々に新しいPodに入れ替える
・Podのロールバック
 → アップデート前(1つ前など)のPodへ戻すことができる



KubernetesのDeployment(デプロイメント)を利用することで、Kubernetes上で起動したPodの数が減った場合、下図のように自動的に新しいPodを作成してくれます。
 

KubernetesのDeployment(デプロイメント)とは、何か?



また、KubernetesのDeployment(デプロイメント)を利用することで、Podのローリングアップデートができます。
 

KubernetesのDeployment(デプロイメント)とは、何か?



KubernetesのDeployment(デプロイメント)による「Podのローリングアップデート」は、下図のように「新しいPodの数を徐々に増やしていき、変更前のPod数を徐々に減らしていく」のように処理されます。
 

KubernetesのDeployment(デプロイメント)とは、何か?


 

「作成したPodの世代管理をしたい」や「負荷分散を考慮し、Podの数を常に一定に保ちたい」を実現したい方は、KubernetesのDeployment経由でPodをKubernetes上に作成しましょう。



以上が、「KubernetesのDeployment(デプロイメント)とは、何か?」となります。
 

Kubernetesでは、Podだけで起動することはほぼありません。DeploymentやReplicaSetなどの管理用リソースを通してPodをKubernetes上で起動します。


 

KubernetesのDeploymentでPodを作成するための準備

KubernetesのDeploymentでPodを作成するための準備


「KubernetesのDeploymentでPodを作成するための準備」に関してご説明します。

★KubernetesのDeploymentでPodを作成するための準備の流れ★
手順1:Kubernetesクラスタを構築
手順2:構築したKubernetesクラスタの状態確認



上記の流れで、「KubernetesのDeploymentでPodを作成するための準備」ができます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年6月3日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)


以降で、上記「KubernetesのDeploymentでPodを作成するための準備の流れ」の各手順に関してご説明します。
 

手順1:Kubernetesクラスタを構築

「手順1:Kubernetesクラスタを構築」に関してご説明します。
 

KubernetesのDeploymentでPodを作成するために、Kubernetesクラスタを構築しましょう。



「Kubernetesクラスタの構築手順」に関しては、以下の記事をご覧ください。
 



上記手順を実施することで、以下のKubernetesクラスタを構築できます。
 

手順1:Kubernetesクラスタを構築



以降の手順では、上図のKubernetesクラスタを想定として手順を解説します。
  

既にKubernetesクラスタを構築済みである場合、本手順を省略してください。



以上で、「手順1:Kubernetesクラスタを構築」は完了です。
 

手順2:構築したKubernetesクラスタの状態確認

「手順2:構築したKubernetesクラスタの状態確認」に関してご説明します。
 

構築したKubernetesにおいて、Deploymentを用いてPodを作成できる状態になっているかを確認しましょう。



「構築したKubernetesクラスタの状態確認」に関しては、以下の記事「手順2:構築したKubernetesクラスタの状態確認」をご覧ください。
 



以上で、「手順2:構築したKubernetesクラスタの状態確認」は完了です。
 

上記の流れで、KubernetesのDeploymentでPodを作成するための準備ができました。

 
 

KubernetesのDeploymentでPodを作成する手順

KubernetesのDeploymentでPodを作成する手順


「KubernetesのDeploymentでPodを作成する手順」に関してご紹介します。

★KubernetesのDeploymentでPodを作成する流れ★
手順1:KubernetesのDeployment経由で起動したいコンテナイメージを作成
手順2:Kubernetes上でPodを作成するためのDeploymentを作成
手順3:Deployment経由でKubernetes上にPodを作成
手順4:Deployment経由で作成したKubernetesのPodの動作確認



上記手順を実施することで、Deployment経由でKubernetes上にPodを作成できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年6月3日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)



以降で、上記「KubernetesのDeploymentでPodを作成する流れ」の各手順に関してご説明します。
 

手順1:KubernetesのDeployment経由で起動したいコンテナイメージを作成

「手順1:KubernetesのDeployment経由で起動したいコンテナイメージを作成」に関してご説明します。
 

KubernetesのDeployment経由で起動したいDockerのコンテナイメージを作成しましょう。



「KubernetesのDeployment経由で起動したいコンテナイメージを作成する手順」に関しては、以下の記事をご覧ください。
 



以上で、「手順1:KubernetesのDeployment経由で起動したいコンテナイメージを作成」は完了です。
 

手順2:Kubernetes上でPodを起動するためのDeploymentを作成【書き方を解説】

「手順2:Kubernetes上でPodを起動するためのDeploymentを作成」に関してご説明します。
 

Deploymentの書き方に関して、サンプルを交えながらご紹介しますね。



Deployment経由でKubernetes上にPodを作成するために、以下の定義ファイルを作成しましょう。下記サンプル定義ファイル内の「適宜変更」と書いてある部分は、自分用に書き換えてください。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: fastapi-deployment # Deploymentリソースの名前を指定
spec:
  replicas: 2 # 作成するPodの数を指定
  selector:
    matchLabels:
      app: fastapi # replicasの設定をどのラベルに適用するかを指定
  template:
    metadata:
      labels:
        app: fastapi # 起動するPodの名前を指定
    spec:
      containers: # Deployment経由で起動したいコンテナイメージの設定
        - name: fastapi-pod
          image: docker.io/herokakedashi/fastapi
          # ↑↑ Deployment経由で起動したいコンテナイメージを指定
          #    docker.io/<DockerHubのアカウント名>/<リポジトリ名>の形式で記載(適宜変更) ↑↑
          ports:
          - containerPort: 8000 # Pod内部において外部に公開したいポートを指定
            name: "fastapi"



上記の定義を「deployment.yaml」というファイル名で保存しましょう。

以上で、「手順2:Kubernetes上でPodを起動するためのDeploymentを作成」は完了です。
 

手順3:Deployment経由でKubernetes上にPodを作成

「手順3:Deployment経由でKubernetes上にPodを作成」に関してご説明します。
 

手順2で作ったDeployment経由でKubernetes上にPodを作成してみましょう。



Deployment経由でKubernetes上にPodを作成するために、マスターで以下のコマンドを順に実行してください。

# kubectl create -f deployment.yaml
deployment.apps/fastapi-deployment created
# kubectl get po
NAME                                  READY   STATUS      RESTARTS   AGE
fastapi-deployment-5fcb78cf48-gxf7p   1/1     Running     0          58s
fastapi-deployment-5fcb78cf48-wqnkp   1/1     Running     0          58s
#



コマンド実行後、「Running」が2つ表示された場合、「Deployment経由でKubernetes上にPodを作成できた」と判断できます。

以上で、「手順3:Deployment経由でKubernetes上にPodを作成」は完了です。
 

手順4:Deployment経由で作成したKubernetesのPodの動作確認

「手順4:Deployment経由で作成したKubernetesのPodの動作確認」に関してご説明します。
 

Podの数が一定数保たれるかを検証してみましょう。



Deployment経由で作成したPodを1つ削除するために、マスターで以下のコマンドを実行してください。コマンド内の「適宜変更」と書いてある部分は、自分用に書き換えてください。

# ↓fastapi-deployment-5fcb78cf48-gxf7pは適宜変更↓
# kubectl delete po fastapi-deployment-5fcb78cf48-gxf7p
pod "fastapi-deployment-5fcb78cf48-gxf7p" deleted
# 



コマンド実行後、Podが自動的に起動され、Podの数が一定数保たれているかを確認するために、マスターで以下のコマンドを実行してください。

# kubectl get po
NAME                                  READY   STATUS      RESTARTS   AGE
fastapi-deployment-5fcb78cf48-wqnkp   1/1     Running     0          10m
fastapi-deployment-5fcb78cf48-wtc2n   1/1     Running     0          41s
# 



コマンド実行後、新しいPodが起動されていた場合、「KubernetesのDeployment機能が正常に稼働している」と判断できます。

以上で、「手順4:Deployment経由で作成したKubernetesのPodの動作確認」は完了です。
 

上記の流れで、Deployment経由でKubernetesにPodを作成できました。




ちなみに、「Kubernetesのアーキテクチャを体系的に学びたい」や「定義ファイルの書き方やサンプルを知りたい」方は、以下の参考書がオススメです。


動画で「Kubernetesのアーキテクチャを体系的に学びたい」や「定義ファイルの書き方やサンプルを知りたい」を学びたいという方には、以下がオススメです。

Kubernetes入門@udemy

 
 

【まとめ】KubernetesのDeploymentでPodを作成する手順

【サンプル有】KubernetesのDeploymentでPodを作成する手順


今回の記事を通して、「KubernetesのDeploymentでPodを作成する手順」をご紹介することで、以下の悩みを解消しました。

★悩み★
・Deploymentを用いてKubernetesにPodを作成する手順を知りたい。
・Deploymentの書き方を知りたい。もしくは、サンプルが欲しい。
・そもそもKubernetesのDeployment(デプロイメント)とは、何ですか?



「Deploymentの書き方やサンプルを知りたい」や「Deployment経由でKubernetes上にPodを作成する手順は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

コメント

タイトルとURLをコピーしました