๐Ÿงฑ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ: Pod, Deployment, Service ์ดํ•ดํ•˜๊ธฐ

โœจ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์—ฌ๋Ÿฌ๋ถ„, ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ‘‹

์ด ๊ธ€์€ Pod, Deployment, Service๋ผ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํ•ต์‹ฌ ๊ฐœ๋… 3๊ฐ€์ง€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์™œ ํ•„์š”ํ•œ์ง€, ๋ฌด์Šจ ์—ญํ• ์„ ํ•˜๋Š”์ง€, ์–ด๋–ค ์‹์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š”์ง€๋ฅผ ์‰ฝ๊ณ  ์ž์„ธํžˆ ์•Œ๋ ค์ฃผ๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.

๐Ÿ“š ์ด ๊ธ€์„ ์ฝ์œผ๋ฉด, ๋งˆ์น˜ ๋ ˆ๊ณ  ๋ธ”๋ก์ฒ˜๋Ÿผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์กฐ๋ฆฝํ•˜๋“ฏ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์–ด์š”!


๐Ÿงฉ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ž€?

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ด๋Ÿฐ ๊ฑธ ์ž๋™์œผ๋กœ ํ•ด์ค˜์š”:

| ๊ธฐ๋Šฅ | ์„ค๋ช… | |โ€”โ€”|โ€”โ€”| | ๋ฐฐํฌ | ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„œ๋ฒ„์— ์ž๋™์œผ๋กœ ๋ฐฐ์น˜ํ•ด์คŒ | | ํ™•์žฅ | ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์ž๋™์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ์ˆ˜ ๋Š˜๋ฆผ | | ๋ณต๊ตฌ | ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ์ปจํ…Œ์ด๋„ˆ๋Š” ์ž๋™์œผ๋กœ ์žฌ์‹œ์ž‘ | | ์—ฐ๊ฒฐ | ์‚ฌ์šฉ์ž์™€ ์ปจํ…Œ์ด๋„ˆ, ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ์—ฐ๊ฒฐ์„ ์ž๋™์œผ๋กœ ์„ค์ • |


๐Ÿ”น 1. Pod๋ž€ ๋ฌด์—‡์ผ๊นŒ?

โ€œPod๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์•ฑ์ด ์‹ค์ œ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์˜ˆ์š”.โ€

๐Ÿ“ฆ ์‰ฝ๊ฒŒ ๋งํ•ด:

๐ŸŽจ ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ

image

๐Ÿ’ก ์™œ Pod๊ฐ€ ํ•„์š”ํ• ๊นŒ?


๐Ÿ”น 2. Deployment๋ž€?

โ€œDeployment๋Š” ์—ฌ๋Ÿฌ Pod๋ฅผ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋งค๋‹ˆ์ €์˜ˆ์š”.โ€

๐Ÿ“ฆ ์‰ฝ๊ฒŒ ๋งํ•ด:

๐ŸŽจ ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ

image

โœ… Deployment๊ฐ€ ํ•ด์ฃผ๋Š” ์ผ

| ๊ธฐ๋Šฅ | ์„ค๋ช… | |โ€”โ€”|โ€”โ€”| | ์ž๋™ ์ƒ์„ฑ | ์›ํ•˜๋Š” ์ˆ˜๋งŒํผ Pod ์ƒ์„ฑ | | ๋ณต๊ตฌ | ์ฃฝ์€ Pod ์ž๋™ ์žฌ์ƒ์„ฑ | | ์—…๋ฐ์ดํŠธ | ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋กœ ๊ต์ฒด ๊ฐ€๋Šฅ (๋กค๋ง ์—…๋ฐ์ดํŠธ) | | ๋กค๋ฐฑ | ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ |


๐Ÿ”น 3. Service๋ž€?

โ€œService๋Š” ์™ธ๋ถ€์—์„œ Pod์—๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ฌธ์ง€๊ธฐ์˜ˆ์š”.โ€

๐Ÿ“ฆ ์‰ฝ๊ฒŒ ๋งํ•ด:

๐ŸŽจ ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ

image

โœ… Service์˜ ์ข…๋ฅ˜

| ์ข…๋ฅ˜ | ์„ค๋ช… | |โ€”โ€”|โ€”โ€”| | ClusterIP | ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ (๊ธฐ๋ณธ๊ฐ’) | | NodePort | ์™ธ๋ถ€์—์„œ ํŠน์ • ํฌํŠธ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ | | LoadBalancer | ํด๋ผ์šฐ๋“œ์—์„œ ์™ธ๋ถ€ IP ๋ถ€์—ฌ |


๐Ÿง  ์„ธ ๊ฐ€์ง€ ๊ตฌ์„ฑ์š”์†Œ ์š”์•ฝ ๋น„๊ต

ํ•ญ๋ชฉ Pod Deployment Service
์—ญํ•  ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ๋‹จ์œ„ Pod ์ž๋™ ๊ด€๋ฆฌ ์ ‘๊ทผ & ์—ฐ๊ฒฐ ๋‹ด๋‹น
๊ตฌ์„ฑ ์ˆ˜ 1๊ฐœ ์ด์ƒ ์ปจํ…Œ์ด๋„ˆ ์—ฌ๋Ÿฌ Pod ์—ฌ๋Ÿฌ Pod์— ์—ฐ๊ฒฐ
์ž๋™ํ™” ์—†์Œ ์žˆ์Œ ์žˆ์Œ
์™ธ๋ถ€ ๋…ธ์ถœ ์•ˆ ๋จ ์•ˆ ๋จ ๋จ

๐Ÿ›  ์˜ˆ์‹œ ์‹ค์Šต: ์›น ์„œ๋ฒ„ ๋ฐฐํฌ ํ๋ฆ„ ๋ณด๊ธฐ

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-web-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-web
  template:
    metadata:
      labels:
        app: my-web
    spec:
      containers:
      - name: web
        image: nginx
        ports:
        - containerPort: 80
apiVersion: v1
kind: Service
metadata:
  name: my-web-svc
spec:
  type: NodePort
  selector:
    app: my-web
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30080

์œ„ ๋‘ ํŒŒ์ผ์„ ์ ์šฉํ•˜๋ฉด 3๊ฐœ์˜ ์›น์„œ๋ฒ„ Pod๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ , ์™ธ๋ถ€์—์„œ 30080 ํฌํŠธ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์š”.


๐Ÿ“š ๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ

์ด ์„ธ ๊ฐ€์ง€๊ฐ€ ํ•ฉ์ณ์ ธ์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค!


๐Ÿ“Ž ์ฐธ๊ณ ์ž๋ฃŒ: