๐ŸŒŒ [์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•„ํ‚คํ…์ฒ˜] 3. API ํ˜ธ์ถœ

์ด๋Œ€ํ˜„ยท2021๋…„ 2์›” 17์ผ
1

42SEOUL

๋ชฉ๋ก ๋ณด๊ธฐ
25/27
post-thumbnail

44BIT๋‹˜์˜ [์ดˆ๋ณด๋ฅผ ์œ„ํ•œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•ˆ๋‚ด์„œ] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•„ํ‚คํ…์ฒ˜ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

1. API ํ˜ธ์ถœ ๋ฐฉ๋ฒ•

์›ํ•˜๋Š” ์ƒํƒœ(desired stats)๋ฅผ ๋‹ค์–‘ํ•œ ์˜ค๋ธŒ์ ํŠธ(objects)๋กœ ์ •์˜(spec)ํ•˜๊ณ  API ์„œ๋ฒ„์— yaml ํ˜•์‹์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค.

2. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํ๋ฆ„ ์š”์•ฝ

์œ„ ๊ทธ๋ฆผ์€ ์ง€๋‚œ ๊ธ€์—์„œ ๋ฐฐ์šด ReplicaSet์„ ์ƒ์„ฑํ•˜๋Š” ํ๋ฆ„์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋Š”๋ฐ, ์‚ฌ์‹ค ์ด ๊ณผ์ •์ด ์ฟ ๋ฒ„๋„คํ‹ฐํŠธ์˜ ์ „๋ถ€๋ผ๊ณ  ๋ด๋„ ๋œ๋‹ค. ์ด ๊ณผ์ • ์†์—์„œ ์–ด๋–ค ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์žˆ๊ณ , ์–ด๋–ค ์ŠคํŽ™์ด ์žˆ๋Š”์ง€, ๊ทธ๋ž˜์„œ ๋„์šฐ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€๋ฅผ ์ดํ•ดํ•˜๋ฉด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

3. ์˜ค๋ธŒ์ ํŠธ YAML ๋ช…์„ธ ์ž‘์„ฑ๋ฒ•

์˜ˆ๋ฅผ ๋“ค์–ด pod ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋„์šฐ๊ณ  ์‹ถ์„ ๋•Œ spec์„ ์–ด๋–ป๊ฒŒ yaml ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

apiVersion: v1
kind: Pod
metadata:
	name: example
spec:
	containers:
	- name: busybox
		image: busybox:1.25

key:value ํ˜•์‹์œผ๋กœ ์ด๋ ‡๊ฒŒ ๋ช…์„ธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด, API ์„œ๋ฒ„๊ฐ€ ์ด ๋ช…์„ธ๋ฅผ ๋ณด๊ณ  ectd์— ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฐ ์ปจํŠธ๋กค๋Ÿฌ๋“ค์ด ๋™์ž‘์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฒŒ์‹œ๊ธ€ ์ตœ์ƒ๋‹จ์˜ ๊ทธ๋ฆผ์€ ReplicaSet์˜ ์ŠคํŽ™์„ ์ž‘์„ฑํ•˜๋Š” ์˜ˆ์‹œ์ด๋‹ค.

์•„๋ž˜๋Š” ArgoCD ๋ผ๋Š” ์ปค์Šคํ…€ ๋ฆฌ์†Œ์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ํ˜ธ์ถœํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์˜ˆ์‹œ์ธ๋ฐ, ์–ด๋–ค ์˜ค๋ธŒ์ ํŠธ์ด๋˜์ง€ apiVersion, kind, metadata ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋™์ผํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ข…๋ฅ˜์— ๋”ฐ๋ผ spec ์„ ๊ทธ์— ๋งž๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์„ธ ์ข…๋ฅ˜์˜ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ดค๋Š”๋ฐ, ๋ณด๋‹ค์‹œํ”ผ ํ˜•์‹ ์ž์ฒด๋Š” ๋™์ผํ•˜๋‹ค. spec ๋งŒ ๊ฐ ์˜ค๋ธŒ์ ํŠธ์˜ ์ŠคํŽ™์œผ๋กœ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

4. ์š”์•ฝ ๋ฐ ์ •๋ฆฌ

yaml ํฌ๋งท์— ๋“ค์–ด๊ฐ€๋Š” ๋‚ด์šฉ์„ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์ž.

  • apiVersion : ์ข…๋ฅ˜๊ฐ€ ๋งŽ์„ ์ˆ˜ ์žˆ๋‹ค. ๋ฐฐํฌ ๋ฒ„์ „, ์•ฑ์˜ ๋ฒ„์ „, ๋„คํŠธ์›Œํฌ ๋ฒ„์ „...๋“ฑ๋“ฑ
  • kine : ์˜ค๋ธŒ์ ํŠธ์˜ ์ข…๋ฅ˜๋ฅผ ์ ์–ด์ค€๋‹ค. Pod, Depolyment, Service, Ingress..
  • metadata : name, namespace, label์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • spec : ๊ฐ์ข… ์„ค์ •์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š”๋ฐ, ์–ด๋–ค ์˜ค๋ธŒ์ ํŠธ๋ƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ์ข…๋ฅ˜์˜ ์ŠคํŽ™์„ ๋ณด๊ณ  ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
  • status : ๊ฐ์ข… ์„ค์ •์˜ ํ˜„์žฌ ์ตœ์‹  ์ƒํƒœ๋ฅผ read-only๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ•ญ๋ชฉ์ด๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํ˜„์žฌ์ƒํƒœ๋ฅผ ์กฐํšŒํ•  ๋•Œ ์ด status ๋ฅผ ํ™•์ธํ•œ๋‹ค.

์ด์ œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•ˆ๋‚ด์„œ์˜ ์›Œ๋“œํ”„๋ ˆ์Šค ๋ฐฐํฌ ์‹ค์Šต์„ ํ•ด๋ณด๋ฉด ์กฐ๊ธˆ ๋” ๊ฐ์ด ์˜ฌ ๊ฒƒ ๊ฐ™๋‹ค.

profile
์‚ฝ์งˆ์˜ ๊ธฐ๋ก๋“ค ๐Ÿ‘จโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€