๐Ÿ“‚
Amazon EKS
  • Amazon EKS
  • ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ƒ์„ฑํ•˜๊ธฐ
    • Cloud9 IDE ํ™˜๊ฒฝ ๊ตฌ์„ฑ
    • IAM ์—ญํ•  ์ƒ์„ฑ
    • SSH & CMK Key ์ƒ์„ฑํ•˜๊ธฐ
  • EKS ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์ถ•
    • EKS ํด๋Ÿฌ์Šคํ„ฐ ๋งŒ๋“ค๊ธฐ
  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋Œ€์‹œ๋ณด๋“œ ๋ฐฐํฌ
    • Kubernetes ๊ณต์‹ ๋Œ€์‹œ๋ณด๋“œ ๋ฐฐํฌ
  • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ
    • ์˜ˆ์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ
    • ์„œ๋น„์Šค ์Šค์ผ€์ผ(Scaling)
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ •๋ฆฌํ•˜๊ธฐ
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ - Helm
    • HELM ์„ค์น˜
    • Helm์œผ๋กœ Nginx ๋ฐฐํฌ
    • Helm์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ
    • ์ •๋ฆฌํ•˜๊ธฐ
  • ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ - POD ๋ฐฐ์น˜
    • NodeSelector
    • Affinity and Anti-affinity
    • ๋” ์‹ค์šฉ์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€
    • ์ •๋ฆฌํ•˜๊ธฐ
  • ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ - Health Checks
    • Liveness ํ”„๋กœ๋ธŒ ๊ตฌ์„ฑ
    • Readiness ํ”„๋กœ๋ธŒ ๊ตฌ์„ฑ
    • ์ •๋ฆฌํ•˜๊ธฐ
  • ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ - AutoScaling
    • HPA ๊ตฌ์„ฑํ•˜๊ธฐ
    • CA ๊ตฌ์„ฑํ•˜๊ธฐ
    • ์ •๋ฆฌํ•˜๊ธฐ
  • ๋„คํŠธ์›Œํ‚น - ์„œ๋น„์Šค ๋…ธ์ถœ
    • ์„œ๋น„์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—ฐ๊ฒฐ
    • ์„œ๋น„์Šค์— ์ ‘๊ทผํ•˜๊ธฐ
    • ์„œ๋น„์Šค ๋…ธ์ถœ
    • Ingress
    • Ingress Controller
    • ์ •๋ฆฌํ•˜๊ธฐ
  • ๋„คํŠธ์›Œํฌ - Calico ์ •์ฑ…
    • Calico ์„ค์น˜ํ•˜๊ธฐ
    • Stars Policy Demo
    • ์ •๋ฆฌํ•˜๊ธฐ
  • Updating ๊ถŒํ•œ์„ค์ • - RBAC
    • ํ…Œ์ŠคํŠธ POD ์„ค์น˜
    • ์‚ฌ์šฉ์ž ์ƒ์„ฑ ๋ฐ ๋งตํ•‘
    • ์—ญํ• ๊ณผ ๋ฐ”์ธ๋”ฉ
    • ์ •๋ฆฌํ•˜๊ธฐ
  • Updating ๊ถŒํ•œ์„ค์ • - IAM ๊ทธ๋ฃน
    • IAM Role, Group & User ์ƒ์„ฑํ•˜๊ธฐ
    • RBAC ์„ค์ •ํ•˜๊ธฐ
    • EKS ์—‘์„ธ์Šค ํ…Œ์ŠคํŠธ
    • ์ •๋ฆฌํ•˜๊ธฐ
  • Updating ๊ถŒํ•œ์„ค์ • - Service account
    • OIDC ์ž๊ฒฉ ์ฆ๋ช… ๊ณต๊ธ‰์ž ์ƒ์„ฑํ•˜๊ธฐ
    • IAM ์—ญํ•  ์ƒ์„ฑ ๋ฐ ์ง€์ •
    • ์ƒ˜ํ”Œ POD ๋ฐฐํฌ
    • ์ •๋ฆฌํ•˜๊ธฐ
  • Updating - ๋„คํŠธ์›Œํฌ - POD Security Group
    • SG ์ƒ์„ฑํ•˜๊ธฐ
    • RDS ์ƒ์„ฑํ•˜๊ธฐ
    • CNI ๊ตฌ์„ฑํ•˜๊ธฐ
    • SG ์ •์ฑ…
    • Pod ๋ฐฐํฌํ•˜๊ธฐ
    • ์ •๋ฆฌํ•˜๊ธฐ
  • Updating - ๋ชจ๋‹ˆํ„ฐ๋ง - Prometheus and Grafana
    • Prometheus ๋ฐฐํฌํ•˜๊ธฐ
    • Grafana ๋ฐฐํฌํ•˜๊ธฐ
    • ์ •๋ฆฌํ•˜๊ธฐ(Optional)
  • Updating ๋ชจ๋‹ˆํ„ฐ๋ง - X-Ray
    • X-Ray DaemonSet ๋ฐฐํฌํ•˜๊ธฐ
    • ์ƒ˜ํ”Œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐฐํฌ
    • X-Ray console ํ™•์ธ
    • ์ •๋ฆฌํ•˜๊ธฐ(Optional)
  • Updating ๋ชจ๋‹ˆํ„ฐ๋ง - Container Insights
    • ์‚ฌ์ „ ์ค€๋น„
    • Container Insights ๊ตฌ์„ฑํ•˜๊ธฐ
    • ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ
    • Container Insights ํ™•์ธํ•˜๊ธฐ
    • ์ •๋ฆฌํ•˜๊ธฐ(Optional)
  • Updating CD - Gitops with Flux
    • ์‚ฌ์ „ ์ค€๋น„
    • Codepipeline
    • EKS์— ๋ฐฐํฌ
    • ์ •๋ฆฌํ•˜๊ธฐ
  • Updating Argo Rollouts
  • Updating Service Mesh - AWS App Mesh
    • Fargate ๋ฐ OBSERVABILITY ๊ตฌ์„ฑ
    • Product Catalog App ๋ฐฐํฌ
    • APP MESH ์„ค์น˜
    • Porting to APP MESH
    • Virtual Gateway ๊ตฌ์„ฑ
    • Canary
    • Observability
  • Updating ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ - EKS Cluster
    • Upgrade EKS control Plane
    • Upgrade EKS CORE ADD-ONs
    • Upgrade Managed Node Group
Powered by GitBook
On this page

Was this helpful?

  1. ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ - POD ๋ฐฐ์น˜

Affinity and Anti-affinity

nodeSelector๋Š” ํŠน์ • ๋ ˆ์ด๋ธ”์ด ์žˆ๋Š” ๋…ธ๋“œ๋กœ ํŒŒ๋“œ๋ฅผ ์ œํ•œํ•˜๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Affinity / anti-affinity ๊ธฐ๋Šฅ์€ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ œ์•ฝ ์œ ํ˜•์„ ํฌ๊ฒŒ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ฐœ์„  ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์–ธ์–ด๊ฐ€ ๋” ํ‘œํ˜„๋ ฅ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค (๋‹จ์ˆœ โ€œAND of ์ •ํ™•ํžˆ ์ผ์น˜โ€๊ฐ€ ์•„๋‹˜)

  • ๊ทœ์น™์ด ์—„๊ฒฉํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์•„๋‹ˆ๋ผ โ€œ์†Œํ”„ํŠธโ€/ โ€œ๊ธฐ๋ณธ ์„ค์ •โ€์ž„์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ด๋ฅผ ์ถฉ์กฑ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ํŒŒ๋“œ๋Š” ๊ณ„์† ์˜ˆ์•ฝ ๋ฉ๋‹ˆ๋‹ค.

  • ๋…ธ๋“œ ์ž์ฒด์˜ ๋ ˆ์ด๋ธ”์ด ์•„๋‹Œ ๋…ธ๋“œ (๋˜๋Š” ๋‹ค๋ฅธ ํ† ํด๋กœ์ง€ ๋„๋ฉ”์ธ)์—์„œ ์‹คํ–‰์ค‘์ธ ๋‹ค๋ฅธ ํŒŒ๋“œ์˜ ๋ ˆ์ด๋ธ”์— ๋Œ€ํ•ด ์ œํ•œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํŒŒ๋“œ๊ฐ€ ํ•จ๊ป˜ ๋ฐฐ์น˜ ๋  ์ˆ˜ ์žˆ๊ณ  ๋ฐฐ์น˜ ๋  ์ˆ˜ ์—†๋Š” ๊ทœ์น™์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

Affinity ๊ธฐ๋Šฅ์€ โ€œ๋…ธ๋“œ affinityโ€ ๋ฐ โ€œํŒŒ๋“œ ๊ฐ„ affinity / anti-affinityโ€์˜ ๋‘ ๊ฐ€์ง€ affinity ์œ ํ˜•์œผ๋กœ ๊ตฌ์„ฑ ๋ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ affinity๋Š” ๊ธฐ์กด์˜ โ€˜nodeSelectorโ€™์™€ ๋น„์Šทํ•˜์ง€๋งŒ (์œ„์— ๋‚˜์—ด๋œ ์ฒ˜์Œ ๋‘ ๊ฐ€์ง€ ์ด์ ์ด ์žˆ์Œ) ์œ„์— ๋‚˜์—ด๋œ ์„ธ ๋ฒˆ์งธ ํ•ญ๋ชฉ์— ์„ค๋ช…๋ฐ๋กœ ํŒŒ๋“œ ๊ฐ„ Affinity / anti-affinity๋Š” ๋…ธ๋“œ ๋ ˆ์ด๋ธ”์ด ์•„๋‹Œ ํŒŒ๋“œ ๋ ˆ์ด๋ธ”์— ๋Œ€ํ•ด ์ œํ•œ ํ•ฉ๋‹ˆ๋‹ค.

1. Node Affinity

Node affinity๋Š” ๊ฐœ๋…์ ์œผ๋กœ โ€˜nodeSelectorโ€™์™€ ์œ ์‚ฌํ•˜๋‚˜ ๋…ธ๋“œ์˜ ๋ผ๋ฒจ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒŒ๋“œ๋ฅผ ์˜ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์ œํ•œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ โ€˜requiredDuringSchedulingIgnoredDuringExecutionโ€™๊ณผ โ€˜preferredDuringSchedulingIgnoredDuringExecutionโ€™์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๋…ธ๋“œ ์„ ํ˜ธ๋„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ž๋Š” ๋…ธ๋“œ์—์„œ ํŒŒ๋“œ๋ฅผ ์˜ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด ์ถฉ์กฑ ํ•ด์•ผํ•˜๋Š” ๊ทœ์น™์„ ์ง€์ • ํ•œ๋‹ค๋Š” ์ ์—์„œ ๊ฐ๊ฐ โ€œํ•˜๋“œโ€ ๋ฐ โ€œ์†Œํ”„ํŠธโ€๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (nodeSelector์™€ ๋น„์Šท ํ•˜์ง€๋งŒ ๋ณด๋‹ค ํ‘œํ˜„์ ์ธ ๊ตฌ๋ฌธ ์‚ฌ์šฉ). ํ›„์ž๋Š” ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ ์šฉํ•˜๋ ค๊ณ  ํ•˜์ง€๋งŒ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š๋Š” ๊ธฐ๋ณธ ์„ค์ •์„ ์ง€์ • ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฆ„์˜ โ€œIgnoredDuringExecutionโ€ ๋ถ€๋ถ„์€ nodeSelector๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋…ธ๋“œ์˜ ๋ ˆ์ด๋ธ”์ด ๋Ÿฐํƒ€์ž„์‹œ ๋ณ€๊ฒฝ๋˜์–ด ํŒŒ๋“œ์˜ affinity ๊ทœ์น™์ด ๋” ์ด์ƒ ์ถฉ์กฑ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํŒŒ๋“œ๊ฐ€ ๋…ธ๋“œ์—์„œ ๊ณ„์† ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ โ€˜requiredDuringSchedulingIgnoredDuringExecutionโ€™์˜ ์˜ˆ๋Š” โ€˜Intel CPU๊ฐ€ ์žˆ๋Š” ๋…ธ๋“œ์—์„œ๋งŒ ํŒŒ๋“œ ์‹คํ–‰โ€™์ด๊ณ  โ€˜preferredDuringSchedulingIgnoredDuringExecutionโ€™์˜ ์˜ˆ๋Š” โ€˜๊ฐ€์šฉ ์˜์—ญ XYZ์—์„œ ์ด ํŒŒ๋“œ ์ง‘ํ•ฉ์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€๋งŒ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ผ๋ถ€๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์‹คํ–‰ ๋˜๋„๋ก ํ—ˆ์šฉ ํ•˜์‹ญ์‹œ์˜ค.

Node affinity๋Š” PodSpec์—์„œ ํ•„๋“œ affinity์˜ nodeAffinity ํ•„๋“œ๋กœ ์ง€์ • ๋ฉ๋‹ˆ๋‹ค.

๋…ธ๋“œ ์„ ํ˜ธ๋„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ๋“œ์˜ ์˜ˆ๋ฅผ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ ์‹ค์Šต์—์„œ์™€ ๋™์ผํ•œ ๋…ธ๋“œ์— ๋‹ค๋ฅธ ๋ ˆ์ด๋ธ”์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

# export the first node name as a variable
export FIRST_NODE_NAME=$(kubectl get nodes -o json | jq -r '.items[0].metadata.name')

kubectl label nodes ${FIRST_NODE_NAME} azname=az1

Pod์— affinity๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

cat <<EoF > ~/environment/pod-with-node-affinity.yaml
apiVersion: v1
kind: Pod
metadata:
  name: with-node-affinity
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: azname
            operator: In
            values:
            - az1
            - az2
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: another-node-label-key
            operator: In
            values:
            - another-node-label-value
  containers:
  - name: with-node-affinity
    image: us.gcr.io/k8s-artifacts-prod/pause:2.0
EoF

์ด node affinity ๊ทœ์น™์€ ํ‚ค๊ฐ€ โ€˜aznameโ€™์ด๊ณ  ๊ฐ’์ด โ€˜az1โ€™๋˜๋Š” โ€˜az2โ€™์ธ ๋ผ๋ฒจ์ด์žˆ๋Š” ๋…ธ๋“œ์—๋งŒ ํŒŒ๋“œ๋ฅผ ๋ฐฐ์น˜ ํ•  ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•ด๋‹น ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜๋Š” ๋…ธ๋“œ ์ค‘์—์„œ ํ‚ค๊ฐ€ โ€˜another-node-label-keyโ€™์ด๊ณ  ๊ฐ’์ด โ€˜another-node-label-valueโ€™์ธ ๋ผ๋ฒจ์ด ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์„ ํ˜ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์ ์šฉํ•ด ๋ด…๋‹ˆ๋‹ค

kubectl apply -f ~/environment/pod-with-node-affinity.yaml

๊ทธ๋ฆฌ๊ณ  ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค.

kubectl get pods -o wide

ํŒŒ๋“œ๋ฅผ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ๋ฐฐ์น˜ ํ•  ๊ฒƒ์ด๋ฏ€๋กœ ๋จผ์ € ๋ ˆ์ด๋ธ”์„ ์ •๋ฆฌํ•˜๊ณ  ํŒŒ๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

kubectl delete -f ~/environment/pod-with-node-affinity.yaml

kubectl label nodes ${FIRST_NODE_NAME} azname-

์ด์ œ ๋ ˆ์ด๋ธ”์„ ๋‘ ๋ฒˆ์งธ ๋…ธ๋“œ์— ๋„ฃ์Šต๋‹ˆ๋‹ค.

export SECOND_NODE_NAME=$(kubectl get nodes -o json | jq -r '.items[1].metadata.name')

kubectl label nodes ${SECOND_NODE_NAME} azname=az1
kubectl apply -f ~/environment/pod-with-node-affinity.yaml

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ์ž‘๋™ ํ•˜๋Š”์ง€ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค.

kubectl get pods -o wide

์˜ˆ์ œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์ž In์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๋…ธ๋“œ affinity ๊ตฌ๋ฌธ์€ In,NotIn,Exists,DoesNotExist,Gt,Lt ์—ฐ์‚ฐ์ž๋ฅผ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค. NotIn ๋ฐ DoesNotExist๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋…ธ๋“œ anti-affinity ๋™์ž‘์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

nodeSelector์™€nodeAffinity๋ฅผ ๋ชจ๋‘ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ ํŒŒ๋“œ๊ฐ€ ํ›„๋ณด ๋…ธ๋“œ์— ์˜ˆ์•ฝ ๋˜๋ ค๋ฉด ๋‘˜ ๋‹ค ์ถฉ์กฑ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

nodeAffinity ์œ ํ˜•๊ณผ ์—ฐ๊ฒฐ๋œ ์—ฌ๋Ÿฌ nodeSelectorTerms๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ nodeSelectorTerms ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ถฉ์กฑ๋˜๋ฉด ๋…ธ๋“œ์— ํŒŒ๋“œ๋ฅผ ์˜ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

nodeSelectorTerms์™€ ์—ฐ๊ด€๋œ ์—ฌ๋ŸฌmatchExpressions๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  matchExpressions๋ฅผ ์ถฉ์กฑ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ํŒŒ๋“œ๋ฅผ ๋…ธ๋“œ์— ์˜ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ๋“œ๊ฐ€ ์˜ˆ์•ฝ ๋œ ๋…ธ๋“œ์˜ ๋ ˆ์ด๋ธ”์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋ฉด ํŒŒ๋“œ๊ฐ€ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์„ ํ˜ธ๋„ ์„ ํƒ์€ ํŒŒ๋“œ๋ฅผ ์˜ˆ์•ฝ ํ•  ๋•Œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

preferredDuringSchedulingIgnoredDuringExecution์˜ ๊ฐ€์ค‘์น˜ ํ•„๋“œ๋Š” 1-100 ๋ฒ”์œ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์Šค์ผ€์ค„๋ง ์š”๊ตฌ ์‚ฌํ•ญ (์ž์› ์š”์ฒญ, RequiredDuringScheduling ์„ ํ˜ธ๋„ ํ‘œํ˜„์‹ ๋“ฑ)์„ ์ถฉ์กฑํ•˜๋Š” ๊ฐ ๋…ธ๋“œ์— ๋Œ€ํ•ด ์Šค์ผ€์ค„๋Ÿฌ๋Š”์ด ํ•„๋“œ์˜ ์š”์†Œ๋ฅผ ๋ฐ˜๋ณตํ•˜๊ณ  ๋…ธ๋“œ๊ฐ€ ํ•ด๋‹น MatchExpressions๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ฉ๊ณ„์— โ€œ๊ฐ€์ค‘์น˜โ€๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ์ˆ˜๋Š” ๋…ธ๋“œ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์šฐ์„  ์ˆœ์œ„ ํ•จ์ˆ˜์˜ ์ ์ˆ˜์™€ ๊ฒฐํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋…ธ๋“œ๊ฐ€ ๊ฐ€์žฅ ์„ ํ˜ธ ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋‘ ํŒŒ๋“œ๋ฅผ ๋ชจ๋‘ ์‚ญ์ œ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

kubectl delete -f ~/environment/pod-nginx.yaml
kubectl delete -f ~/environment/pod-with-node-affinity.yaml
PreviousNodeSelectorNext๋” ์‹ค์šฉ์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€

Last updated 3 years ago

Was this helpful?