03.3.kubernetes - yojulab/learn_DevOps GitHub Wiki
ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๊ธฐ์ ์ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ์ ํจ๋ฌ๋ค์์ ๋ณํ์ํค๊ณ ์์ต๋๋ค. ๋ณธ ๋ฌธ์๋ CNCF(Cloud Native Computing Foundation)๊ฐ ์ฃผ๋ํ๋ ์ํ๊ณ์ Kubernetes๋ฅผ ์ค์ฌ์ผ๋ก ํ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๊ธฐ์ ์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
CNCF๋ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ํ๋ก์ ํธ์ ๋ฐ์ ๋จ๊ณ๋ฅผ 4๋จ๊ณ๋ก ๋ถ๋ฅํ์ฌ ์ํ๊ณ ์ฐธ์ฌ์๋ค์ด ํ๋ก์ ํธ์ ์์ ์ฑ๊ณผ ์ฑํ ์์ค์ ๋ช ํํ ์ดํดํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
graph TD
A[Sandbox Projects] --> B[Incubating Projects]
B --> C[Graduated Projects]
C --> D[Archived Projects]
A1[์ต์ฒจ๋จ ์คํ์ ๊ธฐ์ <br/>ํ๋ก๋์
๋ฏธ๊ฒ์ฆ] --> A
B1[์์ ํ๋ก๋์
์ฌ์ฉ<br/>๊ฑด๊ฐํ ๊ธฐ์ฌ์ ํ] --> B
C1[์์ ์ , ๊ด๋ฒ์ ์ฑํ<br/>ํ๋ก๋์
์ค๋น ์๋ฃ<br/>์์ฒ๋ช
๊ธฐ์ฌ์] --> C
D1[์ฌ์ฉ ์ค๋จ<br/>๋ ์ด์ ํ๋ฐํ์ง ์์] --> D
| ๋จ๊ณ | ์ค๋ช | ํน์ง | ์์ ํ๋ก์ ํธ |
|---|---|---|---|
| Graduated | ์์ ์ ์ด๊ณ ๊ด๋ฒ์ํ๊ฒ ์ฑํ๋จ ํ๋ก๋์ ์ค๋น ์๋ฃ |
โข ์์ฒ ๋ช
์ ๊ธฐ์ฌ์ โข ์ ๊ณ ํ์ค ์ง์ โข ๋์ ์์ ์ฑ |
Kubernetes, Helm, Prometheus, Grafana |
| Incubating | ํ๋ก๋์ ์์ ์ฑ๊ณต์ ์ฌ์ฉ ์ค | โข ์์์ ํ๋ก๋์
์ฌ์ฉ์ โข ๊ฑด๊ฐํ ๊ธฐ์ฌ์ ํ โข ์ฑ์ฅ ์ ์ฌ๋ ฅ ๋์ |
Thanos |
| Sandbox | ์คํ์ ์ต์ฒจ๋จ ๊ธฐ์ | โข ํ๋ก๋์
๋ฏธ๊ฒ์ฆ โข ์ด๊ธฐ ๊ฐ๋ฐ ๋จ๊ณ โข ํ์ ์ ์์ด๋์ด |
๋ค์ํ ์คํ ํ๋ก์ ํธ |
| Archived | ์ฌ์ฉ ์ค๋จ๋ ํ๋ก์ ํธ | โข ํ๋ฐํ์ง ์์ โข ์ง์ ์ข ๋ฃ |
- |
Kubernetes๋ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ, ์ค์ผ์ผ๋ง ๋ฐ ๊ด๋ฆฌ๋ฅผ ์๋ํํ๊ธฐ ์ํ ์คํ ์์ค ์์คํ ์ ๋๋ค. Google์ 15๋ ๊ฐ์ ์ด์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๊ตฌ์ถ๋์ด ์ ๊ณ ํ์ค์ผ๋ก ์๋ฆฌ๋งค๊นํ์ต๋๋ค.
mindmap
root((Kubernetes<br/>ํต์ฌ ๊ธฐ๋ฅ))
์๋ํ
์๋ํ๋ ๋กค์์/๋กค๋ฐฑ
์๋ ๋น ํจํน
์์ฒด ๋ณต๊ตฌ
๋คํธ์ํน
์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ
๋ก๋ ๋ฐธ๋ฐ์ฑ
DNS ๊ด๋ฆฌ
์ค์ผ์ผ๋ง
์ํ ์ค์ผ์ผ๋ง
CPU ๊ธฐ๋ฐ ์ค์ผ์ผ๋ง
UI/๋ช
๋ น ๊ธฐ๋ฐ ์ ์ด
์คํ ๋ฆฌ์ง
์คํ ๋ฆฌ์ง ์ค์ผ์คํธ๋ ์ด์
๋ค์ค ์คํ ๋ฆฌ์ง ์ง์
์๋ ๋ง์ดํธ
๋ณด์/๊ตฌ์ฑ
์ํฌ๋ฆฟ ๊ด๋ฆฌ
๊ตฌ์ฑ ๊ด๋ฆฌ
์ด๋ฏธ์ง ์ฌ๊ตฌ์ถ ๋ถํ์
| ๊ธฐ๋ฅ | ์ค๋ช | ์ฅ์ |
|---|---|---|
| ์๋ํ๋ ๋กค์์/๋กค๋ฐฑ | ์ ํ๋ฆฌ์ผ์ด์ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ง์ ์ผ๋ก ์ ์ฉํ๊ณ ๋ฌธ์ ์ ์๋ ๋กค๋ฐฑ | ๋ฌด์ค๋จ ๋ฐฐํฌ, ์ํ ์ต์ํ |
| ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ & ๋ก๋๋ฐธ๋ฐ์ฑ | Pod์ IP ์ฃผ์์ DNS ์ด๋ฆ ์ ๊ณต, ํธ๋ํฝ ๋ถ์ฐ | ์๋ํ๋ ๋คํธ์ํฌ ๊ด๋ฆฌ |
| ์คํ ๋ฆฌ์ง ์ค์ผ์คํธ๋ ์ด์ | ๋ก์ปฌ, ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋, ๋คํธ์ํฌ ์คํ ๋ฆฌ์ง ์๋ ๋ง์ดํธ | ์คํ ๋ฆฌ์ง ์ถ์ํ |
| ์ํฌ๋ฆฟ & ๊ตฌ์ฑ ๊ด๋ฆฌ | ์ด๋ฏธ์ง ์ฌ๊ตฌ์ถ ์์ด ์ํฌ๋ฆฟ๊ณผ ์ค์ ๋ฐฐํฌ/์ ๋ฐ์ดํธ | ๋ณด์์ฑ, ์ด์ ํจ์จ์ฑ |
| ์๋ ๋น ํจํน | ๋ฆฌ์์ค ์๊ตฌ์ฌํญ์ ๋ฐ๋ฅธ ์ต์ ์ปจํ ์ด๋ ๋ฐฐ์น | ๋ฆฌ์์ค ํจ์จ์ฑ ๊ทน๋ํ |
| ์์ฒด ๋ณต๊ตฌ | ์ฅ์ ์ปจํ ์ด๋ ์ฌ์์, Pod ๊ต์ฒด, ๋ ธ๋ ์์ค ๋ณต๊ตฌ | ๊ณ ๊ฐ์ฉ์ฑ, ์ด์ ์๋ํ |
| ์ํ ์ค์ผ์ผ๋ง | ๋ช ๋ น/UI/CPU ์ฌ์ฉ๋ ๊ธฐ๋ฐ ์๋ ํ์ฅ/์ถ์ | ํ๋ ฅ์ ๋ฆฌ์์ค ๊ด๋ฆฌ |
์ ์ฐ์ฑ๊ณผ ์ด์์ฑ: "๋ก์ปฌ์์ ํ ์คํธํ๋ ๊ธ๋ก๋ฒ ์ํฐํ๋ผ์ด์ฆ๋ฅผ ์ด์ํ๋ , Kubernetes์ ์ ์ฐ์ฑ์ ๋ณต์ก์ฑ์ ๊ด๊ณ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๊ด๋๊ณ ์ฝ๊ฒ ์ ๊ณตํ ์ ์๋๋ก ๋น์ ๊ณผ ํจ๊ป ์ฑ์ฅํฉ๋๋ค."
์ธํ๋ผ ์์ ๋: "์จํ๋ ๋ฏธ์ค, ํ์ด๋ธ๋ฆฌ๋ ๋๋ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ์ธํ๋ผ๋ฅผ ํ์ฉํ ์์ ๋ฅผ ์ ๊ณต"
ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ํ๊ณ๋ ๋ค์ํ ์์ญ์ ์ ๋ฌธ ๋๊ตฌ๋ค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
ํด๋ผ์ฐ๋ ๋น์ฉ ์ต์ ํ์ ๊ฐ์์ฑ์ ์ ๊ณตํ๋ ์๋ฃจ์ ๋ค
| ๋๊ตฌ | ์ค๋ช |
|---|---|
| Kubecost | Kubernetes ํ์ ์ํ ์ค์๊ฐ ๋น์ฉ ๊ฐ์์ฑ ๋ฐ ํต์ฐฐ๋ ฅ ์ ๊ณต |
| gMaestro | ํด๋ผ์ฐ๋ ๋น์ฉ ์ต์ ํ |
| Finout | ๋น์ฉ ๋ถ์ ๋ฐ ๊ด๋ฆฌ |
| ScaleOps | ์๋ํ๋ ๋ฆฌ์์ค ์ต์ ํ |
| PerfectScale | ์ง๋ฅํ ์ค์ผ์ผ๋ง |
| CAST.AI | AI ๊ธฐ๋ฐ ๋น์ฉ ์ต์ ํ |
ํด๋ฌ์คํฐ ์์ ์ฑ๊ณผ ๋ฌธ์ ํด๊ฒฐ์ ์ํ ๋๊ตฌ๋ค
| ๋๊ตฌ | ์ค๋ช |
|---|---|
| Komodor | ์๋ํ๋ ํ๋ ์ด๋ถ๊ณผ ์ปจํ ์คํธ ํต์ฐฐ๋ ฅ์ผ๋ก K8s ๋ฌธ์ ํด๊ฒฐ ํ๋ซํผ |
| Robusta | Kubernetes ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ํ |
| K8sGPT | AI ๊ธฐ๋ฐ Kubernetes ์ง๋จ |
| Kamaji | ๋ฉํฐ ํ ๋์ ์ ์ด ํ๋ ์ธ ๊ด๋ฆฌ |
ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๋ณด์๊ณผ ์ ์ฑ ๊ด๋ฆฌ
| ๋๊ตฌ | ์ค๋ช |
|---|---|
| Kubescape | NSA-CISA, MITRE ATT&CK ํ๋ ์์ํฌ ๊ธฐ๋ฐ ๋ณด์ ์ค์บ |
| Kyverno | Kubernetes ๋ฆฌ์์ค๋ก ๊ด๋ฆฌ๋๋ ์ ์ฑ ์์ง |
| Calico | ๋คํธ์ํฌ ๋ณด์ ๋ฐ ์ ์ฑ ๊ด๋ฆฌ |
| Paralus | ์ ๋ก ํธ๋ฌ์คํธ ์ก์ธ์ค ๊ด๋ฆฌ |
์์คํ ๊ฐ์์ฑ๊ณผ ๋ชจ๋ํฐ๋ง์ ์ํ ๋๊ตฌ๋ค
graph LR
A[์ ํ๋ฆฌ์ผ์ด์
] --> B[๋ฉํธ๋ฆญ ์์ง]
B --> C[Prometheus]
C --> D[Thanos]
D --> E[์ฅ๊ธฐ ์ ์ฅ์]
B --> F[Grafana]
F --> G[์๊ฐํ & ๋์๋ณด๋]
A --> H[๋ก๊ทธ ์์ง]
H --> I[๋ก๊ทธ ๋ถ์]
A --> J[ํธ๋ ์ด์ฑ]
J --> K[์๋น์ค ์์กด์ฑ ๋งต]
| ๋๊ตฌ | ์ค๋ช |
|---|---|
| Grafana | ๋ฉํธ๋ฆญ ์ฟผ๋ฆฌ, ์๊ฐํ, ๊ฒฝ๊ณ ์์คํ |
| Thanos | ๋ฌด์ ํ ์คํ ๋ฆฌ์ง ์ฉ๋์ ๊ณ ๊ฐ์ฉ์ฑ ๋ฉํธ๋ฆญ ์์คํ (CNCF ์ธํ๋ฒ ์ดํ ) |
| Kubeshark | API ํธ๋ํฝ ๋ถ์ |
| Caretta | ์๋น์ค ์ข ์์ฑ ๋งคํ |
์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน๊ณผ ํต์ ๊ด๋ฆฌ
| ๋๊ตฌ | ์ค๋ช |
|---|---|
| Linkerd | ๋ณต์ก์ฑ ์์ด ๋ณด์, ์ต์ ๋ฒ๋น๋ฆฌํฐ, ์์ ์ฑ ์ถ๊ฐ (CNCF ํธ์คํ ) |
| Kong | API ๊ฒ์ดํธ์จ์ด ๋ฐ ์๋น์ค ์ฐ๊ฒฐ ํ๋ซํผ |
| Emissary-ingress | Kubernetes ๋ค์ดํฐ๋ธ API ๊ฒ์ดํธ์จ์ด |
CI/CD ํ์ดํ๋ผ์ธ๊ณผ ๋ฐฐํฌ ์๋ํ
| ๋๊ตฌ | ์ค๋ช |
|---|---|
| Helm | Kubernetes ์ ํ๋ฆฌ์ผ์ด์ ํจํค์ง ๊ด๋ฆฌ์ |
| Flux | CD, Rollouts, CAPI ๊ด๋ฆฌ๋ฅผ ์ํ CNCF ์กธ์ ํ๋ก์ ํธ |
| Tekton Pipelines | Kubernetes ๋ค์ดํฐ๋ธ CI/CD ํ์ดํ๋ผ์ธ |
| Devtron | ํตํฉ DevOps ํ๋ซํผ |
OCI๋ ์ปจํ ์ด๋ ํ์ ๋ฐ ๋ฐํ์์ ๋ํ ๊ฐ๋ฐฉํ ์ฐ์ ํ์ค์ ๋ง๋ค๊ธฐ ์ํ ๊ฐ๋ฐฉํ ๊ฑฐ๋ฒ๋์ค ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
graph TB
A[OCI ํ์ค] --> B[Runtime Specification]
A --> C[Image Specification]
A --> D[Distribution Specification]
B --> B1[์ปจํ
์ด๋ ์คํ ๋ฐฉ์ ์ ์]
C --> C1[์ปจํ
์ด๋ ์ด๋ฏธ์ง ํ์ ์ ์]
D --> D1[์ด๋ฏธ์ง ๋ฐฐํฌ ๋ฐฉ์ ์ ์]
sequenceDiagram
participant R as OCI Runtime
participant I as OCI Image
participant B as Runtime Bundle
participant C as Container
I->>B: ์ด๋ฏธ์ง ์์ถ ํด์
Note over I,B: OCI ์ด๋ฏธ์ง โ ๋ฐํ์ ๋ฒ๋ค ๋ณํ
B->>R: ๋ฒ๋ค ์ ๋ฌ
R->>C: ์ปจํ
์ด๋ ์คํ
| ์ฌ์ | ๋ฒ์ | ๋ฆด๋ฆฌ์ค ๋ ์ง |
|---|---|---|
| Image Specification | v1.1 | 2024๋ 2์ 15์ผ |
| Distribution Specification | v1.1 | 2024๋ 2์ 15์ผ |
| Runtime Specification | v1.2 | 2024๋ 2์ 18์ผ |
graph TD
A[Docker Engine] --> B[containerd]
B --> C[์ค๋
์ทํฐ<br/>Snapshotters]
C --> D[์ด๋ฏธ์ง ์ ์ฅ์]
C --> E[์ปจํ
์ด๋ ๋ฐ์ดํฐ]
F[OCI ํ์ค] --> B
G[๊ธฐ๋ณธ: overlayfs] --> C
- containerd: ์ฐ์ ํ์ค ์ปจํ ์ด๋ ๋ฐํ์์ผ๋ก Docker Engine์ ํต์ฌ ๊ตฌ์ฑ์์
- ์ค๋ ์ทํฐ: ์ด๋ฏธ์ง ๋ฐ ์ปจํ ์ด๋ ๋ฐ์ดํฐ ์ ์ฅ์ ์ํ ๋ฉ์ปค๋์ฆ
- ์คํ์ ๊ธฐ๋ฅ: containerd ์ค๋ ์ทํฐ ์ฌ์ฉ ์ ๊ธฐ์กด ํด๋์ ์คํ ๋ฆฌ์ง ๋๋ผ์ด๋ฒ ์ด๋ฏธ์ง์ ์ผ์์ ํธํ์ฑ ์ด์ ๊ฐ๋ฅ
- ๊ธฐ๋ณธ ์ค์ : overlayfs containerd ์ค๋ ์ทํฐ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉ
mindmap
root((Kubernetes<br/>์ํ๊ณ))
๋น์ฉ ๊ด๋ฆฌ
Kubecost
CAST.AI
ScaleOps
PerfectScale
์์ ์ฑ
Komodor
Robusta
K8sGPT
Kamaji
๋ณด์
Kubescape
Kyverno
Calico
Paralus
์ต์ ๋ฒ๋น๋ฆฌํฐ
Grafana
Thanos
Kubeshark
Caretta
๋คํธ์ํน
Linkerd
Kong
Emissary-ingress
Skipper
CI/CD
Helm
Flux
Tekton
Devtron
์คํ ๋ฆฌ์ง
๋ค์ํ ์คํ ๋ฆฌ์ง ์๋ฃจ์
ML/AI
๋จธ์ ๋ฌ๋ ์ํฌ๋ก๋ ์ง์
- ์ฑ์ฅ์ ๋ฐ๋ฅธ ํ์ฅ: ๋ก์ปฌ ํ ์คํธ๋ถํฐ ๊ธ๋ก๋ฒ ์ํฐํ๋ผ์ด์ฆ๊น์ง ์ผ๊ด๋ ๊ฒฝํ
- ๋ณต์ก์ฑ ๊ด๋ฆฌ: ์ ํ๋ฆฌ์ผ์ด์ ๋ณต์ก์ฑ์ ๊ด๊ณ์์ด ์ฌ์ด ๋ฐฐํฌ
- ๋ฉํฐ ํด๋ผ์ฐ๋: ์จํ๋ ๋ฏธ์ค, ํ์ด๋ธ๋ฆฌ๋, ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ์ง์
- ๋ฒค๋ ์ข ์์ฑ ํํผ: ํ์คํ๋ ์ ๊ทผ ๋ฐฉ์
- ์๋ํ: ์๋ ์์ ์ต์ํ
- ์์ฒด ๋ณต๊ตฌ: ์ฅ์ ์ ์๋ ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ
- ๋ฆฌ์์ค ์ต์ ํ: ํจ์จ์ ์ธ ๋ฆฌ์์ค ํ์ฉ
- ๊ธฐ์ด ์ดํด: CNCF ํ๋ก์ ํธ ์ฑ์๋ ๋ชจ๋ธ ์์ง
- ํต์ฌ ๋๊ตฌ ๋์ : Kubernetes, Helm๊ณผ ๊ฐ์ ์กธ์ ํ๋ก์ ํธ๋ถํฐ ์์
- ์ํ๊ณ ํ์ฅ: ํน์ ์๊ตฌ์ฌํญ์ ๋ง๋ ์ ๋ฌธ ๋๊ตฌ ์ถ๊ฐ
- ํ์: Kubernetes, Helm (ํจํค์ง ๊ด๋ฆฌ)
- ๋ชจ๋ํฐ๋ง: Prometheus, Grafana
- ๋ณด์: Kyverno (์ ์ฑ ), Kubescape (์ค์บ)
- CI/CD: Flux, Tekton Pipelines
- ๋น์ฉ ์ต์ ํ: Kubecost
- OCI ํ์ค ์ค์ ๋๊ตฌ ์ ํ
- CNCF ์กธ์ /์ธํ๋ฒ ์ดํ ํ๋ก์ ํธ ์ฐ์ ๊ณ ๋ ค
- ๋ฒค๋ ์ค๋ฆฝ์ ์๋ฃจ์ ์ ํธ
ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ํ๊ณ๋ CNCF์ ์ฒด๊ณ์ ์ธ ํ๋ก์ ํธ ๊ด๋ฆฌ์ Kubernetes๋ฅผ ์ค์ฌ์ผ๋ก ํ ๊ฐ๋ ฅํ ์ค์ผ์คํธ๋ ์ด์ ๊ธฐ์ ์ ๋ฐํ์ผ๋ก ์ง์์ ์ผ๋ก ๋ฐ์ ํ๊ณ ์์ต๋๋ค. ๊ธฐ์ ๊ณผ ๊ฐ๋ฐ์๋ค์ ์ด๋ฌํ ํ์คํ๋ ๋๊ตฌ์ ํ๋ ์์ํฌ๋ฅผ ํ์ฉํ์ฌ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์์ ์ ์ธ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
์ฑ๊ณต์ ์ธ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ์ ์ํด์๋ ๋จ๊ณ์ ์ ๊ทผ๊ณผ ๊ฒ์ฆ๋ ๋๊ตฌ์ ์ ํ, ๊ทธ๋ฆฌ๊ณ ์ง์์ ์ธ ํ์ต์ด ํ์ํฉ๋๋ค. CNCF ์ํ๊ณ์ ํ๋ถํ ๋๊ตฌ๋ค์ ์ด๋ฌํ ์ฌ์ ์ ์ง์ํ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค.