Contents
概要
KubernetesでDeploymentを使用したCentOSコンテナを実行し、Deploymentの機能を確認します。Deploymentの機能は主にオートヒーリング、ローリングアップデート等です。
手順
Podの作成
Manifestの作成
Manifestを作成します。これはDeploymentでCentOSを実行する為の最小限の内容です。replicasは2としました。これにより常時2つのPodが稼働するように維持されます(オートヒーリング)。
root@k8s-01:~# vim /root/k8s/yaml/centos-dep.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: centos-dep-pod
spec:
replicas: 2
selector:
matchLabels:
app: centos
template:
metadata:
labels:
app: centos
spec:
containers:
- name: centos
image: centos
command:
- "/sbin/init"
Manifestの実行
ManifestからPodを作成します。
root@k8s-01:~# kubectl create -f /root/k8s/yaml/centos-dep.yaml
deployment.apps/centos-dep-pod created
Podのステータス確認
Podのステータスを確認します。replicasを2としているので2つのPodが作成されています。READYはコンテナ数を示しています。
root@k8s-01:~# kubectl get pod
NAME READY STATUS RESTARTS AGE
centos-dep-pod-5c9db444c5-srx8v 1/1 Running 0 85s
centos-dep-pod-5c9db444c5-zx79r 1/1 Running 0 85s
Deploymentのステータス確認
Deploymentのステータスを確認します。READYはPod数を示しています。
root@k8s-01:~# kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
centos-dep-pod 2/2 2 2 4m20s
Replicasetのステータス確認
Deploymentを使用するとReplicasetも必ず作成されます。Replicasetのステータスを確認します。READYはPod数を示しています。
root@k8s-01:~# kubectl get replicaset
NAME DESIRED CURRENT READY AGE
centos-dep-pod-5c9db444c5 2 2 2 5m14s
Deploymentの機能確認
オートヒーリング
下記の通り、Deploymentから作成されたPodは削除してもreplicasで指定した数を維持するように自動生成されます。
root@k8s-01:~# kubectl get pod NAME READY STATUS RESTARTS AGE centos-dep-pod-5c9db444c5-srx8v 1/1 Running 0 85s centos-dep-pod-5c9db444c5-zx79r 1/1 Running 0 85s root@k8s-01:~# kubectl delete pod centos-dep-pod-5c9db444c5-srx8v pod "centos-dep-pod-5c9db444c5-srx8v" deleted root@k8s-01:~# kubectl get pod NAME READY STATUS RESTARTS AGE centos-dep-pod-5c9db444c5-vclwc 1/1 Running 0 40s centos-dep-pod-5c9db444c5-zx79r 1/1 Running 0 10m
削除する場合はDeploymentから削除する必要があります。
root@k8s-01:~# kubectl delete deployment centos-dep-pod
deployment.apps "centos-dep-pod" deleted
Kubernetes Deploymentを使用したCentOSコンテナ