Kubernetes の Deployment を作るために必要な yaml ファイルの書き方
Jan 14, 2021
Kubernetes では Pod を単体で使うことは少ない。
複数の Pod を管理するときは Deployment オブジェクトを使う。
記述例
apiVersion: apps/v1
kind: Deployment
metadata:
name: posts-depl
spec:
replicas: 1
selector:
matchLabels:
app: posts
template:
metadata:
labels:
app: posts
spec:
containers:
- name: posts
image: mitomex/posts:0.0.1
apiVersion
apiVersion は表示させたい Kubernetes Object のセットを指定する。
kind
kind は apiVersion で指定した Kubernetes Object セットの中から使いたいタイプを指定する。
metadata
metadata はオブジェクトの情報を指定する。名前など。
spec
spec はオブジェクトに適用するものを指定する。
spec は specification の略で、仕様書の意味。
replicas
replicas は何個の Pod を実行するかを指定する。
selector
selector にどの Pod を管理するか指定する。
selector:
matchLabels:
app: posts
だと labels が app: posts の Pod を指定している。
app: posts
に特に意味はなく、指定したい Pod の label と一致していれば良い。
template
template は Deployment で作成する Pod の構成を指定する。
template の metadata に labels を指定。この labels と selector で指定した matchLabels を一致させる。
template:
metadata:
labels:
app: posts
template の spec に Pod に適用するものを指定する。
Deployment を Kubernetes に適用する
Deployment を Kubernetes に適用するには、posts-depl.yaml ファイルがあるディレクトリで以下のコマンドを実行する。
kubectl apply -f posts-depl.yaml