ํค์ด ํ๋ธ๋ฅด!
์ฌ๋ฆ์ด ๋๋ ๋ฌด๋ ต, ์ฐ๋ฆฌ๋ ์ด ์ฃผ์ ์ ๋ํด ๊ณ์ํด์ ์ฐ๊ตฌํ๊ณ ์์์ ์๊ธฐ์ํค๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ XNUMX์ ์ด์ ์ด ํ๋ก์ ํธ์ ์ํฉ์ ๋ณด์ฌ์ฃผ๋ Stackoverflow์ ๊ธฐ์ฌ๋ฅผ ๊ฒ์ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.

๋
์๋ฅผ ์ฆ๊ธฐ์ญ์์ค!
์ด ๊ธ์ ์ฐ๋ ์์ ์์ ์ฟ ๋ฒ๋คํฐ์ค์ ์๋๋ ๋๋ต XNUMX๋
์ ๋๋ค. , ๊ทธ๋ฆฌ๊ณ ์ง๋ XNUMX๋
๋์ ์ธ๊ธฐ๊ฐ ๋๋ฌด ๋์์ ธ ๊พธ์คํ ์์๊ถ์ ๋ญํฌ๋์์ต๋๋ค. ํ๋ซํผ. ์ฟ ๋ฒ๋คํฐ์ค๋ ์ฌํด XNUMX์๋ฅผ ์ฐจ์งํ์ต๋๋ค. ์์ฝํ์๋ฉด, Kubernetes๋ ์ปจํ
์ด๋ํ๋ ์ํฌ๋ก๋๋ฅผ ์คํํ๊ณ ์กฐ์ ํ๊ธฐ ์ํด ์ค๊ณ๋ ํ๋ซํผ์
๋๋ค.
์ปจํ ์ด๋๋ ์๋ ๊ณต์ ์ ๊ฒฉ๋ฆฌํ๊ธฐ ์ํ ํน์ ์ค๊ณ์์ ์ ๋๋์์ต๋๋ค. Linux2007๋ ๋ถํฐ ์ปจํ ์ด๋์๋ ๋ค์์ด ํฌํจ๋์์ต๋๋ค. , 2002๋ ์ดํ โ ๋ค์์คํ์ด์ค. ์ปจํ ์ด๋๋ 2008๋ ์ ์ถ์๋๋ฉด์ ํจ์ฌ ๋ ์ข๊ฒ ์ค๊ณ๋์์ต๋๋ค. , Google์ ๋ค์๊ณผ ๊ฐ์ ์์ฒด ๋ด๋ถ ๊ธฐ์ ๋ฉ์ปค๋์ฆ์ ๊ฐ๋ฐํ์ต๋๋ค. , ์ฌ๊ธฐ์ "๋ชจ๋ ์์ ์ ์ปจํ ์ด๋์์ ์ํ๋ฉ๋๋ค." 2013๋ ์๋ Docker๊ฐ ์ฒ์ ์ถ์๋์๊ณ ์ปจํ ์ด๋๊ฐ ๋ง์นจ๋ด ์ธ๊ธฐ ์๋ ๋๋ ์๋ฃจ์ ์ด ๋์์ต๋๋ค. ๋น์ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์ ์ํ ์ฃผ์ ๋๊ตฌ๋ , ๊ทธ๋ ํฐ ์ธ๊ธฐ๋ฅผ ์ป์ง๋ ๋ชปํ์ง๋ง. Kubernetes๋ 2015๋ ์ ์ฒ์ ์ถ์๋ ํ ์ด ๋๊ตฌ๊ฐ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋ถ์ผ์ ์ฌ์ค์ ํ์ค์ด ๋์์ต๋๋ค.
Kubernetes๊ฐ ์ธ๊ธฐ ์๋ ์ด์ ๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ง๋ฌธ์ ๋ตํด ๋ณด๊ฒ ์ต๋๋ค. ๊ฐ๋ฐ์๋ค์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๋์ ํ๊ฒฝ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ง์ง๋ง์ผ๋ก ํฉ์ํ ๋๋ ์ธ์ ์์ต๋๊น? ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ฅผ ์๊ณ ์๋ ๊ฐ๋ฐ์๋ ๋ช ๋ช ์ ๋๊น? ์ค๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ ๋ฐฉ์์ ์ดํดํ์ง ๋ชปํ๋ ํด๋ผ์ฐ๋ ๊ด๋ฆฌ์๊ฐ ์ผ๋ง๋ ๋ฉ๋๊น? ์ด ๊ธฐ์ฌ์์๋ ์ด๋ฌํ ์ง๋ฌธ์ ๋ํ ๋ต์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
YAML๋ก์์ ์ธํ๋ผ
Puppet๊ณผ Chef์์ Kubernetes๋ก ์ ํํ ์ธ๊ณ์์ ๊ฐ์ฅ ํฐ ๋ณํ ์ค ํ๋๋ "์ฝ๋๋ก์์ ์ธํ๋ผ"์์ ํนํ YAML๊ณผ ๊ฐ์ "๋ฐ์ดํฐ๋ก์์ ์ธํ๋ผ"๋ก์ ์ด๋์ด์์ต๋๋ค. ํฌ๋, ๊ตฌ์ฑ, ๋ฐฐํฌ๋ ์ธ์คํด์ค, ๋ณผ๋ฅจ ๋ฑ์ ํฌํจํ๋ Kubernetes์ ๋ชจ๋ ๋ฆฌ์์ค๋ YAML ํ์ผ์์ ์ฝ๊ฒ ์ค๋ช ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด:
apiVersion: v1
kind: Pod
metadata:
name: site
labels:
app: web
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80์ด ๋ณด๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด DevOps ๋๋ SRE ์ ๋ฌธ๊ฐ๊ฐ Python ๋๋ Javascript์ ๊ฐ์ ์ธ์ด๋ก ์ฝ๋๋ฅผ ์์ฑํ์ง ์๊ณ ๋ ์ํฌ๋ก๋๋ฅผ ์๋ฒฝํ๊ฒ ํํํ ์ ์์ต๋๋ค.
์ธํ๋ผ๋ฅผ ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ด์ ์ด ์์ต๋๋ค.
- GitOps ๋๋ Git Operations ๋ฒ์ ์ ์ด. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ Kubernetes YAML ํ์ผ์ git ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ณด๊ดํ ์ ์์ผ๋ฏ๋ก ์ธ์ ๋ณ๊ฒฝํ๋์ง, ๋๊ฐ ๋ณ๊ฒฝํ๋์ง, ์ ํํ ๋ฌด์์ด ๋ณ๊ฒฝ๋์๋์ง ์ถ์ ํ ์ ์์ต๋๋ค. ์ด๋ ํนํ ์ง์๋ค์ด ํ์ํ ๋ฆฌ์์ค๋ฅผ ์ฐพ์์ผ ํ๋ ๊ณณ์์ ๋ชจํธ์ฑ์ ์ ๊ฑฐํจ์ผ๋ก์จ ์กฐ์ง ์ ์ฒด์ ์ด์ ํฌ๋ช ์ฑ์ ๋์ด๊ณ ์ด์ ํจ์จ์ฑ์ ํฅ์์ํต๋๋ค. ๋์์ ๊ฐ๋จํ ํ ์์ฒญ์ ๋ณํฉํ์ฌ Kubernetes ๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๋ ์ฌ์์ก์ต๋๋ค.
- ํ์ฅ์ฑ. ๋ฆฌ์์ค๊ฐ YAML๋ก ์ ์๋๋ฉด ํด๋ฌ์คํฐ ์ด์์๊ฐ Kubernetes ๋ฆฌ์์ค์์ ํ๋ ๋๋ ๋ ๊ฐ์ ์ซ์๋ฅผ ๋ณ๊ฒฝํ์ฌ ํ์ฅ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๋งค์ฐ ์ฌ์์ง๋๋ค. Kubernetes๋ ๋ฎ์ ์์ค๊ณผ ๋์ ์์ค์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํน์ ๋ฐฐํฌ ๊ตฌ์ฑ์ ํ์ํ ์ต์ ๋ฐ ์ต๋ ํฌ๋ ์๋ฅผ ํธ๋ฆฌํ๊ฒ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ํฌ๋์ ์ํ ์๋ ํฌ๊ธฐ ์กฐ์ ์ ์ํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํธ๋ํฝ ๊ธ์ฆ์ผ๋ก ์ธํด ์ถ๊ฐ ์ฉ๋์ด ํ์ํ ๊ตฌ์ฑ์ ๋ฐฐํฌํ ๊ฒฝ์ฐ maxReplicas๋ฅผ 10์์ 20์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: myapp
namespace: default
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp-deployment
minReplicas: 1
maxReplicas: 20
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50- ๋ณด์ ๋ฐ ๊ด๋ฆฌ. YAML์ Kubernetes์์ ์ฌ๋ฌผ์ด ๋ฐฐํฌ๋๋ ๋ฐฉ์์ ํ๊ฐํ๋ ๋ฐ ์ ํฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฃผ์ ๋ณด์ ๋ฌธ์ ๋ ์ํฌ๋ก๋๊ฐ ๊ด๋ฆฌ์๊ฐ ์๋ ์ฌ์ฉ์๋ก ์คํ๋๋์ง ์ฌ๋ถ์ ๊ด๋ จ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๋๊ตฌ๊ฐ ํ์ํ ์ ์์ต๋๋ค. , YAML/JSON ์ ํจ์ฑ ๊ฒ์ฌ๊ธฐ ๋ฐ , ์ปจํ ์คํธ๋ฅผ ํ์ธํ๋ ์ ์ฑ ์ ํจ์ฑ ๊ฒ์ฌ๊ธฐ ์ํฌ๋ก๋์์ ์ปจํ ์ด๋๊ฐ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํ๋๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค. ์ด๊ฒ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ์๋ ๊ฐ๋จํ ์ ์ฑ ์ ์ ์ฉํ ์ ์์ต๋๋ค. , ์ด๋ ๊ฒ :
package main
deny[msg] {
input.kind = "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot = true
msg = "Containers must not run as root"
}- ํด๋ผ์ฐ๋ ์ ๊ณต์
์ฒด์์ ํตํฉ ์ต์
. ์ค๋๋ ์ฒจ๋จ ๊ธฐ์ ์์ ๊ฐ์ฅ ์ฃผ๋ชฉํ ๋งํ ์ถ์ธ ์ค ํ๋๋ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ์ ๊ณต์
์ฒด์์ ์ํฌ๋ก๋๋ฅผ ์คํํ๋ ๊ฒ์
๋๋ค. ๊ตฌ์ฑ ์์ ์ฌ์ฉ Kubernetes๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ํด๋ฌ์คํฐ๊ฐ ์คํ๋๋ ํด๋ผ์ฐ๋ ๊ณต๊ธ์์ ํตํฉ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ AWS์ Kubernetes์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๊ณ ์๋น์ค๋ฅผ ํตํด ํด๋น ์ ํ๋ฆฌ์ผ์ด์
์ ๋
ธ์ถํ๋ ค๋ ๊ฒฝ์ฐ ํด๋ผ์ฐ๋ ๊ณต๊ธ์๋ ์๋์ผ๋ก ์๋น์ค๋ฅผ ์์ฑํ๋๋ก ๋์ต๋๋ค.
LoadBalancer์๋์ผ๋ก ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ํธ๋ํฝ์ ์ ํ๋ฆฌ์ผ์ด์ ํฌ๋๋ก ๋ฆฌ๋๋ ์ ํฉ๋๋ค.
ํ์ฅ์ฑ
Kubernetes๋ ํ์ฅ์ฑ์ด ๋งค์ฐ ๋ฐ์ด๋๋ฉฐ ๊ฐ๋ฐ์๋ค์ ์ด๋ฅผ ์ข์ํฉ๋๋ค. Pod, ๋ฐฐํฌ ๋ฑ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฆฌ์์ค ์ธํธ๊ฐ ์์ต๋๋ค. StatefulSets, ๋น๋ฐ, ConfigMaps, ๋ฑ. ์ฌ์ค, ์ฌ์ฉ์์ ๊ฐ๋ฐ์๋ ์์์ ๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. .
์๋ฅผ ๋ค์ด ๋ฆฌ์์ค๋ฅผ ์ ์ํ๋ ค๋ ๊ฒฝ์ฐ CronTab, ๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์์ต๋๋ค:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: crontabs.my.org
spec:
group: my.org
versions:
- name: v1
served: true
storage: true
Schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
cronSpec:
type: string
pattern: '^(d+|*)(/d+)?(s+(d+|*)(/d+)?){4}$'
replicas:
type: integer
minimum: 1
maximum: 10
scope: Namespaced
names:
plural: crontabs
singular: crontab
kind: CronTab
shortNames:
- ct
๋์ค์ ๋ค์๊ณผ ๊ฐ์ CronTab ๋ฆฌ์์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
apiVersion: "my.org/v1"
kind: CronTab
metadata:
name: my-cron-object
spec:
cronSpec: "* * * * */5"
image: my-cron-image
replicas: 5
Kubernetes์ ํ์ฅ์ฑ์ ์ํ ๋ ๋ค๋ฅธ ์ต์ ์ ๊ฐ๋ฐ์๊ฐ ์์ ์ ๋ช ๋ น๋ฌธ์ ์์ฑํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. "์ ๋ฐ๋ผ ์๋ํ๋ Kubernetes ํด๋ฌ์คํฐ์ ํน์ ํ๋ก์ธ์ค์ ๋๋ค." ์ด์์์ ๋์์ผ๋ก ์ฌ์ฉ์๋ Kubernetes API์ ์ ๋ณด๋ฅผ ๊ตํํ์ฌ CRD(์ฌ์ฉ์ ์ ์ ๋ฆฌ์์ค ์ ์) ๊ด๋ฆฌ๋ฅผ ์๋ํํ ์ ์์ต๋๋ค.
์ปค๋ฎค๋ํฐ์๋ ๊ฐ๋ฐ์๊ฐ ์์ ๋ง์ ์ฐ์ฐ์๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ ์ฌ๋ฌ ๋๊ตฌ๊ฐ ์์ต๋๋ค. ๊ทธ ์ค - ๊ณผ . ์ด SDK๋ ๊ฐ๋ฐ์๊ฐ ์ ์ํ๊ฒ ์ฐ์ฐ์ ์์ฑ์ ์์ํ ์ ์๋ ๊ธฐ๋ฐ์ ์ ๊ณตํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ช ๋ น์ค์์ ์์ํ ์ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
$ operator-sdk new my-operator --repo github.com/myuser/my-operator๊ทธ๋ฌ๋ฉด YAML ํ์ผ ๋ฐ Golang ์ฝ๋๋ฅผ ํฌํจํ์ฌ ์ด์์๋ฅผ ์ํ ๋ชจ๋ ์์ฉ๊ตฌ ์ฝ๋๊ฐ ์์ฑ๋ฉ๋๋ค.
.
|____cmd
| |____manager
| | |____main.go
|____go.mod
|____deploy
| |____role.yaml
| |____role_binding.yaml
| |____service_account.yaml
| |____operator.yaml
|____tools.go
|____go.sum
|____.gitignore
|____version
| |____version.go
|____build
| |____bin
| | |____user_setup
| | |____entrypoint
| |____Dockerfile
|____pkg
| |____apis
| | |____apis.go
| |____controller
| | |____controller.go๊ทธ๋ฐ ๋ค์ ๋ค์๊ณผ ๊ฐ์ด ํ์ํ API์ ์ปจํธ๋กค๋ฌ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
$ operator-sdk add api --api-version=myapp.com/v1alpha1 --kind=MyAppService
$ operator-sdk add controller --api-version=myapp.com/v1alpha1 --kind=MyAppService๊ทธ๋ฐ ๋ค์ ๋ง์ง๋ง์ผ๋ก ์ฐ์ฐ์๋ฅผ ์กฐํฉํ์ฌ ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ๋ก ๋ณด๋ ๋๋ค.
$ operator-sdk build your.container.registry/youruser/myapp-operator ๊ฐ๋ฐ์๊ฐ ๋ ๋ง์ ์ ์ด๋ฅผ ์ํ๋ ๊ฒฝ์ฐ Go ํ์ผ์ ์์ฉ๊ตฌ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ปจํธ๋กค๋ฌ์ ์ธ๋ถ ์ฌํญ์ ์์ ํ๋ ค๋ฉด ํ์ผ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. controller.go.
๋ ๋ค๋ฅธ ํ๋ก์ ํธ ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ธ์ YAML ํ์ผ๋ง ์ฌ์ฉํ์ฌ ๋ช ๋ น๋ฌธ์ ์์ฑํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Apache Kafka์ ์ฐ์ฐ์๋ ๋๋ต์ ์ผ๋ก ์ ์๋ฉ๋๋ค. . ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ช ๊ฐ์ง ๋ช ๋ น๋ง์ผ๋ก Kubernetes ์์ Kafka ํด๋ฌ์คํฐ๋ฅผ ์ค์นํ ์ ์์ต๋๋ค.
$ kubectl kudo install zookeeper
$ kubectl kudo install kafka๊ทธ๋ฐ ๋ค์ ๋ค๋ฅธ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํฉ๋๋ค.
$ kubectl kudo install kafka --instance=my-kafka-name
-p ZOOKEEPER_URI=zk-zookeeper-0.zk-hs:2181
-p ZOOKEEPER_PATH=/my-path -p BROKER_CPUS=3000m
-p BROKER_COUNT=5 -p BROKER_MEM=4096m
-p DISK_SIZE=40Gi -p MIN_INSYNC_REPLICAS=3
-p NUM_NETWORK_THREADS=10 -p NUM_IO_THREADS=20
ํ์
์ง๋ ๋ช ๋ ๋์ ์ฃผ์ Kubernetes ๋ฆด๋ฆฌ์ค๋ ๋ช ๋ฌ๋ง๋ค ์ถ์๋์์ต๋๋ค. ์ฆ, ์ฐ๊ฐ XNUMX~XNUMX๊ฐ์ ์ฃผ์ ๋ฆด๋ฆฌ์ค๊ฐ ์ถ์๋์์ต๋๋ค. ๊ฐ๊ฐ์ ๋์ ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์๋ ์ค์ด๋ค์ง ์์ต๋๋ค. ๋์ฑ์ด, ์ด ์ด๋ ค์ด ์๊ธฐ์๋ ๋ํ๋ ์กฐ์ง์ ๋ณด์ด์ง ์์ต๋๋ค. ํ์ฌ ์ํฉ์ ์ดํด๋ณด์ญ์์ค. .
์๋ก์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ค์ํ ์ํฌ๋ก๋ ์ ๋ฐ์ ๊ฑธ์ณ ์์ ์ ๋ณด๋ค ์ ์ฐํ๊ฒ ํด๋ฌ์คํฐ๋งํ ์ ์์ต๋๋ค. ๋ํ ํ๋ก๊ทธ๋๋จธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๋์ ์ ์ง์ ๋ฐฐํฌํ ๋ ๋ ํฐ ์ ์ด๋ ฅ์ ๋๋ฆด ์ ์์ต๋๋ค.
์ปค๋ฎค๋ํฐ
Kubernetes ์ธ๊ธฐ์ ๋ ๋ค๋ฅธ ์ฃผ์ ์ธก๋ฉด์ ์ปค๋ฎค๋ํฐ์ ๊ฐ์ ์ ๋๋ค. 2015๋ ๋ฒ์ 1.0์ด ์ถ์๋์ Kubernetes๋ ๋ค์์ ํ์์ ๋ฐ์์ต๋๋ค. .
๋ค์ํ ์ปค๋ฎค๋ํฐ๋ ์์ด์ (Special Interest Groups)์ ํ๋ก์ ํธ๊ฐ ๋ฐ์ ํจ์ ๋ฐ๋ผ Kubernetes์ ๋ค์ํ ์์ญ์์ ์์ ํ๋ ๋ฐ ์ค์ ์ ๋์์ต๋๋ค. ์ด๋ฌํ ๊ทธ๋ฃน์ ์ง์์ ์ผ๋ก ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ Kubernetes ์์ ์ ๋์ฑ ํธ๋ฆฌํ๊ณ ํธ๋ฆฌํ๊ฒ ๋ง๋ค๊ณ ์์ต๋๋ค.
Cloud Native Foundation์ ๋ํ ์ด ๊ธ์ ์ฐ๋ ์์ ์ ์ธ๊ณ ์ต๋ ๊ท๋ชจ์ ์คํ ์์ค ์ปจํผ๋ฐ์ค์ธ CloudNativeCon/KubeCon์ ์ฃผ์ตํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก XNUMX๋ ์ XNUMXํ ๊ฐ์ต๋๋ ์ด ํ์ฌ์๋ Kubernetes์ ์ํ๊ณ๋ฅผ ๊ฐ์ ํ๊ณ XNUMX๊ฐ์๋ง๋ค ๋ํ๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ฐฐ์ฐ๊ณ ์ ํ๋ ์์ฒ ๋ช ์ ์ ๋ฌธ๊ฐ๊ฐ ๋ชจ์ ๋๋ค.
๊ฒ๋ค๊ฐ Cloud Native Foundation์ , SIG์ ํจ๊ป ์ ๊ท ๋ฐ ๊ธฐ์กด ๊ฒํ ํด๋ผ์ฐ๋ ์ํ๊ณ์ ์ด์ ์ ๋ง์ถ ์๊ธ์ ๋๋ค. ์ด๋ฌํ ํ๋ก์ ํธ์ ๋๋ถ๋ถ์ Kubernetes์ ๊ฐ์ ์ ํฅ์ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์ฌ๋๋ค์ด ํจ๊ป ๋ญ์น๋ฉด์ ๋์์ ์๋ก์ด ์ฌ๋๋ค์ ํ์ํ๋ ์ ์ฒด ์ปค๋ฎค๋ํฐ์ ์์์ ์ธ ๋ ธ๋ ฅ์ด ์์๋ค๋ฉด Kubernetes๋ ์ง๊ธ์ฒ๋ผ ์ฑ๊ณตํ์ง ๋ชปํ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ต๋๋ค.
๋ฏธ๋
์์ผ๋ก ๊ฐ๋ฐ์๊ฐ ์ฒ๋ฆฌํด์ผ ํ ์ฃผ์ ๊ณผ์ ์ค ํ๋๋ ์ฝ๋๊ฐ ์คํ๋๋ ์ธํ๋ผ๊ฐ ์๋ ์ฝ๋ ์์ฒด์ ์ธ๋ถ ์ฌํญ์ ์ง์คํ ์ ์๋ ๋ฅ๋ ฅ์ ๋๋ค. ์ด๋ฌํ ํธ๋ ๋์ ๋ถํฉํ๋ , ์ด๋ ์ค๋๋ ์ต๊ณ ์ ๊ฒ ์ค ํ๋์ ๋๋ค. ๊ณ ๊ธ ํ๋ ์์ํฌ๊ฐ ์ด๋ฏธ ์กด์ฌํฉ๋๋ค. ะธ , Kubernetes๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๋ก๋ถํฐ ์ธํ๋ผ๋ฅผ ์ถ์ํํฉ๋๋ค.
์ด ๊ธฐ์ฌ์์ ์ฐ๋ฆฌ๋ Kubernetes์ ํ์ฌ ์ํ๋ฅผ ํ๋ฉด์ ์ผ๋ก๋ง ์ดํด๋ณด์์ต๋๋ค. ์ฌ์ค ์ด๋ ๋น์ฐ์ ์ผ๊ฐ์ ๋ถ๊ณผํฉ๋๋ค. Kubernetes ์ฌ์ฉ์๋ ์ํ๋ ๋๋ก ๋ค์ํ ๋ฆฌ์์ค, ๊ธฐ๋ฅ ๋ฐ ๊ตฌ์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : habr.com
