π Labelμ λν κΈ°λ³Έ κ°λ
- νλμ κ°μ μ€λΈμ νΈμ 첨λΆλ ν€μ κ°μ μ
key:value- λ μ΄λΈμ ν΅ν΄ μ€λΈμ νΈμ νμ μ§ν© μ ν&κ΅¬μ± κ°λ₯
- λ μ΄λΈ μμ
"release" : "stable","release" : "canary"
"environment" : "dev","environment" : "qa","environment" : "production"
"tier" : "frontend","tier" : "backend","tier" : "cache"
"partition" : "customerA","partition" : "customerB"
"track" : "daily","track" : "weekly"- metadataλμ κΈ°λ‘
apiVersion: v1 kind: Pod metadata: name: label-demo labels: environment: production app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
π‘ Node Selector
- νλμ λ μ΄λΈ μ€μ νκΈ°
kubectl label nodes minikube disktype=ssd- νλμ λ μ΄λΈ μ‘°ννκΈ°
kubectl get pods --show-labels- specλμ κΈ°λ‘
apiVersion: v1 kind: Pod metadata: name: k8s spec: containers: # ~~ nodeSelector: disktype: ssd
π‘ node affinityλ? λ§ν¬ν μ€νΈ
- λ Έλμ λ ν°μ λΉμ·νκ² λ Έλμ λ μ΄λΈ κΈ°λ°μΌλ‘ νλλ₯Ό μ€μΌμ€λ§
- λ Έλμ΄νΌλν°μ λ Έλμ λ ν°λ₯Ό ν¨κ» μ€μ ν μ μμΌλ©° μ΄λλ λ Έλμ΄νΌν°λμ λ Έλμ λ ν°μ 쑰건μ λͺ¨λ λ§μ‘±νλ λ Έλμ νλλ₯Ό μ€μΌμ€λ§
- νλλ₯Ό kube-Schedulerμ μμ‘΄νμ§ μκ³ μμ§λμ΄ μλμ λ°λΌ νΉμ λ Έλμ λ°°ν¬ν μ μλλ‘ νΈλ€λ§νλ μ€μ
- λ°°ν¬μ‘°κ±΄/μ€νΌλ μ΄ν°/weightλ₯Ό νμ©ν΄ λ°°ν¬ μ€μΌμ€λ§μ μΈλΆμ μΌλ‘ νΈλ€λ§ ν μ μλ μ μ΄ nodeSelctorμμ μ°¨μ΄μ
λκ°μ§ νλ
β
requiredDuringSchedulingIgnoredDuringExecution: λ°λμ λ§μ‘±ν΄μΌ νλ 쑰건affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: disktype operator: In values: - ssdββββββββββββββββββββββββ
βpreferredDuringSchedulingIgnoredDuringExecution: λ§μ‘±νλ©΄ μ’μ 쑰건affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 10 preference: - matchExpressions: - key: disktype operator: In values: - hdd
key νλ κ° λ§ν¬ν μ€νΈ
key νλ κ° μ€λͺ In values[] νλμ μ€μ ν κ° μ€ λ μ΄λΈμ μλ κ°κ³Ό μΌμΉνλ κ²μ΄ νλλΌλ μλμ§ νμΈ NotIn Inκ³Ό λ°λλ‘ values[]μ μλ κ° λͺ¨λμ λ§μ§ μλ μ§ νμΈ Exists key νλμ μ€μ ν κ°μ΄ λ μ΄λΈμ μλμ§λ§ νμΈ (values[] νλX) DoseNotExist Existsμ λ°λλ‘ λ Έλμ λ μ΄λΈμ key νλ κ°μ΄ μλμ§λ§ νμΈ Gt Greater thanμ μ½μλ‘ values[] νλμ μ€μ λ κ°μ΄ μ€μ λ κ° λ³΄λ€ λ ν° μ«μν λ°μ΄ν° μΈμ§ νμΈ (values[] νλμλ κ°μ΄ νλλ§ μμ΄μΌ ν¨) Lt Lower thanμ μ½μλ‘ values[] νλμ μ€μ λ κ°μ΄ μ€μ λ κ° λ³΄λ€ λ μμ μ«μν λ°μ΄ν° μΈμ§ νμΈ (values[] νλμλ κ°μ΄ νλλ§ μμ΄μΌ ν¨)
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: blue
spec:
replicas: 3
selector:
matchLabels:
run: nginx
template:
metadata:
labels:
run: nginx
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: color
operator: In
values:
- blue
apiVersion: apps/v1
kind: Deployment
metadata:
name: red
spec:
replicas: 2
selector:
matchLabels:
run: nginx
template:
metadata:
labels:
run: nginx
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: Exists