DeamonSetとは
- ReplicaSetと似てる
- 各ノードにPodを1つづつ確実に配置する
- ReplicaSetでは指定した数上がってればよくてどのノードで起動するかはk8sがよしなに決める
- 1ノードに2Podずつの配置もできる
- Podを配置したくないNodeがあるときはnodeSelector,Node Anti-Affinityを使う
コンフィグファイル
sample-ds.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: sample-ds
spec:
selector:
matchLabels:
app: sample-app
template:
metadata:
labels:
app: sample-app
spec:
containers:
- name: nginx-container
image: nginx:1.12
deploy
kubectl apply -f sample-ds.yaml
各ノードへきれいにばらけて配置される
ノードは2つ
kubectl get nodes
出力結果
NAME STATUS ROLES AGE VERSION
ip-172-16-109-200.ec2.internal Ready <none> 4h48m v1.11.10-eks-17cd81
ip-172-16-117-100.ec2.internal Ready <none> 4h48m v1.11.10-eks-17cd81
kubectl get pods sample-ds-sr6gh -o wide
Podその1
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
sample-ds-sr6gh 1/1 Running 0 112s 172.16.112.125 ip-172-16-117-100.ec2.internal <none> <none>
Podその2
kubectl get pods sample-ds-txhrv -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
sample-ds-txhrv 1/1 Running 0 2m46s 172.16.109.101 ip-172-16-109-200.ec2.internal <none> <none>