見習いインフラエンジニアがkubernetesを本気で勉強してみている話 その3デプロイメント編Deployment
前回に引き続きDockerから更に発展してkubernetesを学んでいるので、学んだことをつれづれなるまゝに自分の整理の為にも綴っておこうと思います。
前回はこちら
デプロイメントとは?
デプロイメントは、Kubernetesにおいてアプリケーションをデプロイ、更新、スケーリングするためのリソースです!
一言でいうと デプロイメント その名の通りKubernetesにデプロイメントするもののことです!!
デプロイメントを使用すると、アプリケーションをクラスタに簡単にその名の通りデプロイ展開できるだけでなく、アプリケーションの更新やロールバックも容易に行うことができます。
デプロイメントの利点
・スケーリングや自動ロールバックが可能になる!
How to use
ざっくりうデプロイメントリソースを用いるにはまずはそのマニフェストファイルをyaml形式で記載し、それをKubernetesクラスタに適応します
試しにNgnix Webサーバのデプロイメントを作成するマニフェストは下記の通りです~
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
!ポイント!
・kind: を Deploymentとすることでデプロイメントのマニフェストとして機能します。
・デプロイメントは、フィールドでインスタンスの数を指定し、フィールドで適用するポッドを選択できます。replicasselector
今回のフィールドでは、ポッドのテンプレートが定義されており、ここではNginxのコンテナイメージが使用されます。template
そしてこれを次のコマンドでKubernetesクラスタにデプロイメントを適用します。
kubectl apply -f nginx-deployment.yaml
このことにより、NgnixのデプロイメントがKubernetesクラスタに展開されます。
!確認!
kubectl get deployments
このコマンドでデプロイメントのリストが表示されます~