"Kubernetes์ OpenShift์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น?" โ ์ด ์ง๋ฌธ์ ๋ถ๋ฌ์ํ ๋งํผ ์ผ๊ด์ฑ์ ๊ฐ์ง๊ณ ๋ฐ์ํฉ๋๋ค. ์ค์ ๋ก ์ด๊ฒ์ ์๋์ฐจ๊ฐ ์์ง๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ๋ฌป๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๋น์ ๋ฅผ ๊ณ์ํ๋ฉด ์๋์ฐจ๋ ์์ ํ์ด๋ฏ๋ก ๋ฌธ์ ๊ทธ๋๋ก ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๊ณ ๊ฐ ์ ์์ต๋๋ค. ๋ฐ๋ฉด, ์์ง์ด ๋น์ ์ ์ด๋๊ฐ๋ก ๋ฐ๋ ค๊ฐ๋ ค๋ฉด, ๊ถ๊ทน์ ์ผ๋ก ๊ฐ์ ์ฐจ๋ฅผ ์ป๊ธฐ ์ํด์๋ ๋จผ์ ๋ค๋ฅธ ๋ง์ ๊ฒ๋ค์ด ๋ณด์๋์ด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ Kubernetes๋ OpenShift ๋ธ๋๋ ์๋์ฐจ(ํ๋ซํผ)๊ฐ ์กฐ๋ฆฝ๋์ด ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋๋ก ๋์์ฃผ๋ ์์ง์
๋๋ค.
์ด ๊ธ์์๋ ๋ค์๊ณผ ๊ฐ์ ํต์ฌ ์ฌํญ์ ์ข ๋ ์์ธํ ์ดํด๋ณด๊ณ ์ ํฉ๋๋ค.
- Kubernetes๋ OpenShift ํ๋ซํผ์ ํต์ฌ์ด๋ฉฐ 100% ์ธ์ฆ๋ Kubernetes์ด๋ฉฐ ์์ ํ ์คํ ์์ค์ด๋ฉฐ ๋
์ ํน์ฑ์ด ์ ํ ์์ต๋๋ค. ๊ฐ๋จํ:
- OpenShift ํด๋ฌ์คํฐ API๋ XNUMX% Kubernetes์ ๋๋ค.
- ์ปจํ ์ด๋๊ฐ ๋ค๋ฅธ Kubernetes ์์คํ ์์ ์คํ๋๋ ๊ฒฝ์ฐ ๋ณ๊ฒฝ ์์ด OpenShift์์ ์คํ๋ฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
- OpenShift๋ Kubernetes์ ์ ์ฉํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ฟ๋ง ์๋๋ผ ์๋์ฐจ์ ๋ง์ฐฌ๊ฐ์ง๋ก OpenShift๋ ์์์์ ๊บผ๋ด์๋ง์ ์ฆ์ ์์ฐ์ ํฌ์ ๋ ์ ์์ผ๋ฉฐ, ์๋์์ ๋ณผ ์ ์๋ฏ์ด ๊ฐ๋ฐ์์ ์ถ์ ํจ์ฌ ๋ ์ฝ๊ฒ ๋ง๋ค์ด ์ค๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก OpenShift๊ฐ ๋ ์ฌ๋์ผ๋ก ํตํฉ๋ ์ด์ ์ ๋๋ค. ๊ฐ๋ฐ์์ ๊ด์ ์์ ๋ณด๋ฉด ์ฑ๊ณต์ ์ด๊ณ ์ ์๋ ค์ง ์ํฐํ๋ผ์ด์ฆ๊ธ PaaS ํ๋ซํผ์ ๋๋ค. ๋์์ ์ฐ์ ์ด์ ๊ด์ ์์ ๋ณผ ๋ ๋งค์ฐ ์์ ์ ์ธ ์๋น์คํ ์ปจํ ์ด๋ ์๋ฃจ์ ์ ๋๋ค.
OpenShift๋ 100% CNCF ์ธ์ฆ์ ๋ฐ์ Kubernetes์ ๋๋ค.
OpenShift๋ ๋ค์์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
์๋ง๋ OC๋ผ๋ OpenShift์ ๋ช ๋ น์ค ์ ํธ๋ฆฌํฐ์ ๋ํด ๋ค์ด๋ณด์ จ์ ๊ฒ์ ๋๋ค. kubectl๊ณผ ์๋ฒฝํ๊ฒ ๋ช ๋ น ํธํ๋๋ฉฐ, ์ฌ๋ฌ ์์ ์ ์ํํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์ ์ฉํ ๋์ฐ๋ฏธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ์ง๋ง ๋จผ์ OC์ kubectl์ ํธํ์ฑ์ ๋ํด ์ข ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
kubectl ๋ช
๋ น
OC ํ
kubectl์ ํฌ๋๋ฅผ ์ป์
oc ํฌ๋ ๊ฐ์ ธ์
kubectl์ ๋ค์์คํ์ด์ค๋ฅผ ์ป์ต๋๋ค.
oc ๋ค์์คํ์ด์ค ๊ฐ์ ธ์ค๊ธฐ
kubectl create -f ๋ฐฐํฌ.yaml
oc ์์ฑ -f ๋ฐฐํฌ.yaml
OpenShift API์์ kubectl์ ์ฌ์ฉํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โข kubectl get pods โ ์์๋๋ก Pod๋ฅผ ๋ฐํํฉ๋๋ค.
โข kubectl get ๋ค์์คํ์ด์ค โ ์์๋๋ก ๋ค์์คํ์ด์ค๋ฅผ ๋ฐํํฉ๋๋ค.
kubectl create -f mydeployment.yaml ๋ช
๋ น์ ์๋ ๋น๋์ค์ ํ์๋ ๊ฒ์ฒ๋ผ ๋ค๋ฅธ Kubernetes ํ๋ซํผ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก kubernetes ๋ฆฌ์์ค๋ฅผ ์์ฑํฉ๋๋ค.
์ฆ, ๋ชจ๋ Kubernetes API๋ 100% ํธํ์ฑ์ ์ ์งํ๋ฉด์ OpenShift์์ ์๋ฒฝํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์
OpenShift๋ Kubernetes์ ์ ์ฉํ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
Kubernetes API๋ OpenShift์์ 100% ์ฌ์ฉํ ์ ์์ง๋ง ํ์ค Kubernetes ์ ํธ๋ฆฌํฐ kubectl์๋ ๊ธฐ๋ฅ๊ณผ ํธ์์ฑ์ด ๋ถ๋ช ํ ๋ถ์กฑํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก Red Hat์ด OC(OpenShift ํด๋ผ์ด์ธํธ์ ์ฝ์ด) ๋ฐ ODO(OpenShift DO, ์ด ์ ํธ๋ฆฌํฐ๋ ๊ฐ๋ฐ์๋ฅผ ๋์์ผ๋ก ํจ)์ ๊ฐ์ ์ ์ฉํ ๊ธฐ๋ฅ๊ณผ ๋ช ๋ น์ค ๋๊ตฌ๋ฅผ Kubernetes์ ์ถ๊ฐํ ์ด์ ์ ๋๋ค.
1. OC ์ ํธ๋ฆฌํฐ - Kubectl์ ๋์ฑ ๊ฐ๋ ฅํ๊ณ ํธ๋ฆฌํ ๋ฒ์
์๋ฅผ ๋ค์ด kubectl๊ณผ ๋ฌ๋ฆฌ ์๋ก์ด ๋ค์์คํ์ด์ค๋ฅผ ์์ฑํ๊ณ ์ปจํ ์คํธ๋ฅผ ์ฝ๊ฒ ์ ํํ ์ ์์ผ๋ฉฐ, ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ ์์ค ์ฝ๋๋ ๋ฐ์ด๋๋ฆฌ์์ ์ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๋ฑ(Source-to-image, Source-to-image, s2i).
OC ์ ํธ๋ฆฌํฐ์ ๋ด์ฅ ๋์ฐ๋ฏธ์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ด ์ผ์ ์์ ์ ๋จ์ํํ๋ ๋ฐ ์ด๋ป๊ฒ ๋์์ด ๋๋์ง ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฒซ ๋ฒ์งธ ์๋ ๋ค์์คํ์ด์ค ๊ด๋ฆฌ์ ๋๋ค. ๊ฐ Kubernetes ํด๋ฌ์คํฐ์๋ ํญ์ ์ฌ๋ฌ ๊ฐ์ ๋ค์์คํ์ด์ค๊ฐ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ฐ ๋ฐ ํ๋ก๋์ ํ๊ฒฝ์ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋์ง๋ง, ์๋ฅผ ๋ค์ด ๊ฐ ๊ฐ๋ฐ์์๊ฒ ๊ฐ์ธ ์๋๋ฐ์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ค์ ๋ก kubectl์ ํ์ฌ ๊ณต๊ฐ์ ์ปจํ ์คํธ์์ ์คํ๋๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๋ ๋ค์์คํ์ด์ค ๊ฐ์ ์์ฃผ ์ ํํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ kubectl์ ๊ฒฝ์ฐ ์ด๋ฅผ ์ํด ํฌํผ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ํ์ง๋ง OC๋ฅผ ์ฌ์ฉํ ๋๋ ์ํ๋ ๊ณต๊ฐ์ผ๋ก ์ ํํ๋ ค๋ฉด "oc ํ๋ก์ ํธ ๋ค์์คํ์ด์ค"๋ผ๊ณ ๋งํ๋ฉด ๋ฉ๋๋ค.
ํ์ํ ๋ค์์คํ์ด์ค๊ฐ ๋ฌด์์ธ์ง ๊ธฐ์ตํ์ง ๋ชปํ์๋์? ๋ฌธ์ ์์ต๋๋ค. "oc get projects"๋ฅผ ์ ๋ ฅํ๋ฉด ์ ์ฒด ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค. ํด๋ฌ์คํฐ์ ์๋ ์ ํ๋ ๋ค์์คํ์ด์ค ํ์ ์งํฉ์๋ง ์ก์ธ์คํ ์ ์๋ ๊ฒฝ์ฐ ์ด๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ ์ง ๊ถ๊ธํ์ญ๋๊น? ๊ธ์, kubectl์ RBAC๊ฐ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๊ณต๊ฐ์ ๋ณผ ์ ์๋๋ก ํ์ฉํ๊ณ ๋๊ท๋ชจ ํด๋ฌ์คํฐ์์๋ ๋ชจ๋ ์ฌ๋์๊ฒ ๊ทธ๋ฌํ ๊ถํ์ด ๋ถ์ฌ๋์ง ์๋ ๊ฒฝ์ฐ์๋ง ์ด ์์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ๋๋ตํฉ๋๋ค. OC์ ๊ฒฝ์ฐ ์ด๋ ์ ํ ๋ฌธ์ ๊ฐ ๋์ง ์์ผ๋ฉฐ ๊ทธ๋ฌํ ์ํฉ์์ ์ ์ฒด ๋ชฉ๋ก์ ์ฝ๊ฒ ์์ฑํ ๊ฒ์ ๋๋ค. Openshift์ ๊ธฐ์ ์งํฅ์ฑ๊ณผ ์ฌ์ฉ์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ธก๋ฉด์์ ์ด ํ๋ซํผ์ ์ฐ์ํ ํ์ฅ์ฑ์ ๊ตฌ์ฑํ๋ ๊ฒ์ ์ด๋ฌํ ์์ ๊ฒ๋ค์ ๋๋ค.
2. ODO - ๊ฐ๋ฐ์๋ฅผ ์ํ kubectl์ ํฅ์๋ ๋ฒ์
Kubernetes์ ๋นํด Red Hat OpenShift๊ฐ ๊ฐ์ ๋ ๋ ๋ค๋ฅธ ์๋ ODO ๋ช ๋ น์ค ์ ํธ๋ฆฌํฐ์ ๋๋ค. ๊ฐ๋ฐ์๋ฅผ ์ํด ์ค๊ณ๋์์ผ๋ฉฐ ์๊ฒฉ OpenShift ํด๋ฌ์คํฐ์ ๋ก์ปฌ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๋ํ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋น๋, ๋ฑ๋ก ๋ฐ ์ฌ๋ฐฐํฌํ ํ์ ์์ด ๋ชจ๋ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฒฉ OpenShift ํด๋ฌ์คํฐ์ ์ปจํ ์ด๋์ ์ฆ์ ๋๊ธฐํํ์ฌ ๋ด๋ถ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ ์ ์์ต๋๋ค.
OC์ ODO๊ฐ ์ด๋ป๊ฒ ์ปจํ ์ด๋์ Kubernetes ์์ ์ ๋ ์ฝ๊ฒ ๋ง๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
kubectl์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ๊ฒฝ์ฐ์ OC ๋๋ ODO๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๋ช ๊ฐ์ง ์ํฌํ๋ก๋ฅผ ๋น๊ตํด ๋ณด์ธ์.
โข YAML์ ๊ตฌ์ฌํ์ง ๋ชปํ๋ ์ฌ์ฉ์๋ฅผ ์ํด OpenShift์ ์ฝ๋ ๋ฐฐํฌ:
์ฟ ๋ฒ๋คํฐ์ค/kubectl
$>git ํด๋ก
1- ์ฝ๋์์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ Dockerfile ๋ง๋ค๊ธฐ
-----
๋
ธ๋์์
WORKDIR /usr/src/app
COPY ํจํค์ง*.json ./
๋ณต์ฌ index.js ./
๋ณต์ฌ ./app ./app
npm ์ค์น ์คํ
๋
ธ์ถ 3000
CMD [ โnpmโ, โ์์โ ] โโโโโ
2- ์ด๋ฏธ์ง๋ฅผ ๊ตฌ์ถํฉ๋๋ค
$>ํฌ๋๋งจ ๋น๋...
3- ๋ ์ง์คํธ๋ฆฌ์ ๋ก๊ทธ์ธ
ํ๋งจ ๋ก๊ทธ์ธ...
4- ๋ ์ง์คํธ๋ฆฌ์ ์ด๋ฏธ์ง ๋ฐฐ์น
ํฌ๋๋งจ ํธ์
5- ์ ํ๋ฆฌ์ผ์ด์
๋ฐฐํฌ๋ฅผ ์ํ yaml ํ์ผ ์์ฑ(deployment.yaml, service.yaml, ingress.yaml) - ์ด๋ ์ ๋ ์ต์๊ฐ์
๋๋ค.
6- ๋งค๋ํ์คํธ ํ์ผ ๋ฐฐํฌ:
Kubectl ์ ์ฉ -f .
์คํ์ํํธ/oc
$> oc ์ ์ฑ
์คํ์ํํธ/odo
$>git ํด๋ก
$> odo ๊ตฌ์ฑ ์์ nodejs myapp ๋ง๋ค๊ธฐ
$>์ค๋ ํธ์
โข ์ปจํ ์คํธ ์ ํ: ์์ ๋ค์์คํ์ด์ค ๋๋ ์์ ํด๋ฌ์คํฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค/kubectl
1- "myproject" ํ๋ก์ ํธ์ ๋ํด kubeconfig์์ ์ปจํ
์คํธ๋ฅผ ์์ฑํฉ๋๋ค.
2- kubectl ์ธํธ ์ปจํ
์คํธโฆ
์คํ์ํํธ/oc
oc ํ๋ก์ ํธ โmyprojectโ
ํ์ง ๊ด๋ฆฌ: โํ ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ๊ธฐ๋ฅ์ด ์์ง ์ํ ๋ฒ์ ์ผ๋ก ์ฌ๊ธฐ์ ๋ํ๋ฌ์ต๋๋ค. ์ด์ฉ๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์์ฐ์ ํฌ์ ํ ์ ์์๊น์?โ
๊ฒฝ์ฃผ์ฉ ์๋์ฐจ์ ์์ ๋ค์๊ณผ ๊ฐ์ ๋ง์ ๋ฃ๋๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. "์ฐ๋ฆฌ๋ ์๋ก์ด ์ ํ์ ๋ธ๋ ์ดํฌ๋ฅผ ์ค์นํ๋๋ฐ ์์งํ ๋งํด์ ๋ธ๋ ์ดํฌ์ ์ ๋ขฐ์ฑ์ ์์ง ๊ด์ฐฎ์ง ์์ต๋๋ค... ํ์ง๋ง ๊ฑฑ์ ํ์ง ๋ง์ญ์์ค. ์ฝ์ค ์ค์ ์ ๊ทน์ ์ผ๋ก ๊ฐ์ ํ ๊ฒ์ ๋๋ค. ์ฑํผ์ธ์ญ์.โ ์ด ์ ๋ง์ด ๋ง์์ ๋์๋์? Red Hat์ ์๋ ์ฐ๋ฆฌ๋ ์ ์ง ๋ณ๋ก ํ๋ณตํ์ง ์์ต๋๋ค. ๐
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ํ ๋ฒ์ ์ด ์ถฉ๋ถํ ์ฑ์๋๊ณ ์ฒ ์ ํ ์ ํฌ ํ
์คํธ๋ฅผ ๊ฑฐ์ณ ์ฌ์ฉํ๊ธฐ์ ์์ ํ๋ค๊ณ ๋๋ ๋๊น์ง ์ํ ๋ฒ์ ์ ๋ณด๋ฅํ๋ ค๊ณ ๋
ธ๋ ฅํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ Dev Preview ๋จ๊ณ๋ฅผ ๋จผ์ ๊ฑฐ์น ๋ค์
์ ๊ทธ๋ฐ ๊ฒ๋๊น? ๋ค๋ฅธ ์ํํธ์จ์ด ๊ฐ๋ฐ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Kubernetes์ ๋ชจ๋ ์ด๊ธฐ ์์ด๋์ด๊ฐ ์ต์ข ๋ฆด๋ฆฌ์ค์ ๋๋ฌํ๋ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋ ๋ชฉํ์ ๋๋ฌํ๊ณ ์๋ํ ๊ธฐ๋ฅ์ ์ ์งํ์ง๋ง ๊ตฌํ์ด ์ํ ๋ฒ์ ์ ๊ตฌํ๊ณผ ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฆ ๋๋ค. ๋ฏธ์ ํฌ๋ฆฌํฐ์ปฌ ์ํฌ๋ก๋๋ฅผ ์ง์ํ๊ธฐ ์ํด OpenShift๋ฅผ ์ฌ์ฉํ๋ ์๋ง์ Red Hat ๊ณ ๊ฐ๊ณผ ํจ๊ป ์ฐ๋ฆฌ๋ ํ๋ซํผ์ ์์ ์ฑ๊ณผ ์ฅ๊ธฐ์ ์ธ ์ง์์ ํนํ ์ค์ ์ ๋๊ณ ์์ต๋๋ค.
Red Hat์ OpenShift๋ฅผ ์์ฃผ ์ถ์ํ๊ณ ํจ๊ป ์ ๊ณต๋๋ Kubernetes ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ์ต์ ์ ๋คํ๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด ๊ธ์ ์ฐ๋ ์์ ์ OpenShift 4.3์ ํ์ฌ GA ๋ฆด๋ฆฌ์ค์๋ Kubernetes 1.16์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ Kubernetes ์ ์คํธ๋ฆผ ๋ฒ์ ๋ฒํธ 1.17๋ณด๋ค ํ ๋จ์๋ง ๋ค์ฒ์ง๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๊ณ ๊ฐ์๊ฒ ์ํฐํ๋ผ์ด์ฆ๊ธ Kubernetes๋ฅผ ์ ๊ณตํ๊ณ OpenShift์ ์ ๋ฒ์ ์ ์ถ์ํจ์ ๋ฐ๋ผ ์ถ๊ฐ์ ์ธ ํ์ง ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ํํธ์จ์ด ์์ : โ์ฐ๋ฆฌ๊ฐ ํ๋ก๋์ ์ ์๋ Kubernetes ๋ฒ์ ์ ๊ตฌ๋ฉ์ด ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธ ๊ฐ์ง ๋ฒ์ ์ ์ ๋ฐ์ดํธํด์ผ๋ง ๋ซ์ ์ ์์ต๋๋ค. ์๋๋ฉด ์ด๋ค ์ต์ ์ด ์๋์?
Kubernetes ์คํ ์์ค ํ๋ก์ ํธ์์ ์ํํธ์จ์ด ์์ ์ฌํญ์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ ๋ฆด๋ฆฌ์ค์ ์ผ๋ถ๋ก ๋ฆด๋ฆฌ์ค๋๋ฉฐ ๋๋ก๋ ์ด์ ๋ง์ผ์คํค ๋ฆด๋ฆฌ์ค ํ๋ ๋๋ ๋ ๊ฐ๋ฅผ ํฌํจํ์ฌ 6๊ฐ์ ์ ๋์ ๋ฒ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
Red Hat์ ๋ค๋ฅธ ์
์ฒด๋ณด๋ค ๋จผ์ ์ค์ํ ์์ ์ฌํญ์ ์ถ์ํ๊ณ ํจ์ฌ ๋ ์ค๋ซ๋์ ์ง์์ ์ ๊ณตํ๋ค๋ ์ ์ ์๋ถ์ฌ์ ๊ฐ๊ณ ์์ต๋๋ค. Kubernetes ๊ถํ ์์น ์ทจ์ฝ์ (
ํด์์,
OpenShift์ Red Hat์ด Kubernetes๋ฅผ ๋ฐ์ ์ํค๋ ๋ฐฉ๋ฒ
Red Hat์ Google์ ์ด์ด ์คํ์์ค Kubernetes ํ๋ก์ ํธ์ ๋ ๋ฒ์งธ๋ก ํฐ ์ํํธ์จ์ด ๊ธฐ์ฌ์์ด๋ฉฐ, ๊ฐ์ฅ ๋ง์ ์ฑ๊ณผ๋ฅผ ๋ด๋ ๊ฐ๋ฐ์ 3๋ช ์ค 5๋ช ์ด Red Hat ์ถ์ ์ ๋๋ค. ์ ์๋ ค์ง์ง ์์ ๋ ๋ค๋ฅธ ์ฌ์ค: ํนํ Red Hat์ ์ฃผ๋๋ก Kubernetes์ ๋ค์๊ณผ ๊ฐ์ ๋ง์ ์ค์ํ ๊ธฐ๋ฅ์ด ๋ฑ์ฅํ์ต๋๋ค.
- RBAC. Kubernetes์๋ Red Hat ์์ง๋์ด๊ฐ ์ถ๊ฐ OpenShift ๊ธฐ๋ฅ์ด ์๋ ํ๋ซํผ ์์ฒด์ ์ผ๋ถ๋ก RBAC ๊ธฐ๋ฅ(ClusterRole, ClusterRoleBinding)์ ๊ตฌํํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ธฐ ์ ๊น์ง๋ RBAC ๊ธฐ๋ฅ์ด ์์์ต๋๋ค. Red Hat์ Kubernetes ๊ฐ์ ์ ๋๋ ค์ํฉ๋๊น? ๋ฌผ๋ก ๊ทธ๋ ์ง ์์ต๋๋ค. ์๋ํ๋ฉด Red Hat์ ์คํ ์์ค ์์น์ ์๊ฒฉํ๊ฒ ๋ฐ๋ฅด๊ณ Open Core ๊ฒ์์ ํ๋ ์ดํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ ์ ์ปค๋ฎค๋ํฐ๊ฐ ์๋ ๊ฐ๋ฐ ์ปค๋ฎค๋ํฐ๊ฐ ์ฃผ๋ํ๋ ๊ฐ์ ๊ณผ ํ์ ์ ๋ ์คํ ๊ฐ๋ฅํ๊ณ ๋ ๋๋ฆฌ ์ฑํ๋ฉ๋๋ค. ์ด๋ ์คํ ์์ค ์ํํธ์จ์ด๋ฅผ ๊ณ ๊ฐ์๊ฒ ๋ ์ ์ฉํ๊ฒ ๋ง๋ค๊ฒ ๋ค๋ ์ฐ๋ฆฌ์ ํต์ฌ ๋ชฉํ์ ์ ๋ถํฉํฉ๋๋ค.
- ํฌ๋์ ๋ํ ๋ณด์ ์ ์ฑ (ํฌ๋ ๋ณด์ ์ ์ฑ ). ํฌ๋ ๋ด์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ๊ฒ ์คํํ๋ ์ด๋ฌํ ๊ฐ๋ ์ ์๋ OpenShift์์ SCC(Security Context Constraints)๋ผ๋ ์ด๋ฆ์ผ๋ก ๊ตฌํ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ์์์์ ๊ฐ์ด Red Hat์ ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉํ ์ ์๋๋ก ์ด๋ฌํ ๊ฐ๋ฐ์ ์คํ ์ฟ ๋ฒ๋คํฐ์ค ํ๋ก์ ํธ์ ๋์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ด ์ผ๋ จ์ ์์๋ ๊ณ์๋ ์ ์์ง๋ง Red Hat์ด Kubernetes๋ฅผ ๊ฐ๋ฐํ๊ณ ๋ชจ๋๋ฅผ ์ํด ๋ ๋์ ํ๊ฒฝ์ ๋ง๋ค๊ธฐ ์ํด ์ง์ฌ์ผ๋ก ๋ ธ๋ ฅํ๊ณ ์์์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์์ต๋๋ค.
OpenShift๊ฐ Kubernetes๋ผ๋ ๊ฒ์ ๋ถ๋ช ํฉ๋๋ค. ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น? ๐
์ง๊ธ๊น์ง ์ฝ์ผ๋ฉด์ Kubernetes๊ฐ OpenShift์ ํต์ฌ ๊ตฌ์ฑ ์์๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฃผ์ํ ๊ฒ์ด์ง๋ง ์ ์ผํ ๊ฒ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ์ต๋๋ค. ์ฆ, ๋จ์ํ Kubernetes๋ฅผ ์ค์นํ๋ค๊ณ ํด์ ์ํฐํ๋ผ์ด์ฆ๊ธ ํ๋ซํผ์ด ์ ๊ณต๋๋ ๊ฒ์ ์๋๋๋ค. ์ธ์ฆ, ๋คํธ์ํน, ๋ณด์, ๋ชจ๋ํฐ๋ง, ๋ก๊ทธ ๊ด๋ฆฌ ๋ฑ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ๋ํ ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ง์ ๋๊ตฌ ์ค์์ ์ด๋ ค์ด ์ ํ์ ํด์ผ ํฉ๋๋ค(์ํ๊ณ์ ๋ค์์ฑ์ ์ดํดํ๋ ค๋ฉด ํ ๋ฒ ์ดํด๋ณด์ธ์).
๊ทธ๋ฌ๋ OpenShift์ ๊ฒฝ์ฐ Red Hat์ ์ด๋ฌํ ๋ชจ๋ ๋ณต์ก์ฑ์ ์ค์ค๋ก ํด๊ฒฐํ๊ณ Kubernetes ์์ฒด๋ฟ๋ง ์๋๋ผ Kubernetes๋ฅผ ์ค์ ์ํฐํ๋ผ์ด์ฆ๊ธ์ผ๋ก ์ ํํ๋ ๋ฐ ํ์ํ ์ ์ฒด ์คํ ์์ค ๋๊ตฌ ์ธํธ๋ฅผ ํฌํจํ๋ ๊ธฐ๋ฅ์ ์ผ๋ก ์์ ํ ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค. ์ฆ๊ฐ์ ์ด๊ณ ์๋ฒฝํ๊ฒ ์ฐจ๋ถํ๊ฒ ํ๋ก๋์ ์ ์์ํ ์ ์๋ ์๋ฃจ์ ์ ๋๋ค. ๋ฌผ๋ก , ์์ฒด ๊ธฐ์ ์คํ์ด ์๋ ๊ฒฝ์ฐ OpenShift๋ฅผ ๊ธฐ์กด ์๋ฃจ์ ์ ํตํฉํ ์ ์์ต๋๋ค.
์์ ๊ทธ๋ฆผ์ ์ดํด๋ณด์ญ์์ค. Kubernetes ์ง์ฌ๊ฐํ ์ธ๋ถ์ ์๋ ๋ชจ๋ ๊ฒ์ Red Hat์ด Kubernetes๊ฐ ์ค๊ณ์ ๊ฐ๊ณ ์์ง ์์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ณณ์ ๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์์ญ์ ์ฃผ์ ๋ถ๋ถ์ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
1. ๊ฐ๋ ฅํ ๊ธฐ๋ฐ OS: RHEL CoreOS ๋๋ RHEL
Red Hat์ 20๋ ๋๊ฒ ๋น์ฆ๋์ค ํฌ๋ฆฌํฐ์ปฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ Linux ๋ฐฐํฌํ์ ๊ณต๊ธํด ์จ ์ ๋์ ์ฒด์ ๋๋ค. ์ด ๋ถ์ผ์์ ์ถ์ ๋๊ณ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ๊ฒฝํ์ ํตํด ์ฐ๋ฆฌ๋ ์ปจํ ์ด๋์ ์ฐ์ ์ด์์ ์ํ ์ง์ ์ผ๋ก ์ ๋ขฐํ ์ ์๋ ๊ธฐ๋ฐ์ ์ ๊ณตํ ์ ์์ต๋๋ค. RHEL CoreOS๋ RHEL๊ณผ ๋์ผํ ์ปค๋์ ์ฌ์ฉํ์ง๋ง ์ฃผ๋ก ์ปจํ ์ด๋ ์คํ ๋ฐ Kubernetes ํด๋ฌ์คํฐ ์คํ๊ณผ ๊ฐ์ ์์ ์ ์ต์ ํ๋์ด ์์ต๋๋ค. ํฌ๊ธฐ๊ฐ ์ค์ด๋ค๊ณ ๋ถ๋ณ์ฑ์ด ์์ผ๋ฏ๋ก ํด๋ฌ์คํฐ ์ค์ , ์๋ ํฌ๊ธฐ ์กฐ์ , ํจ์น ๋ฐฐํฌ ๋ฑ์ด ๋ ์ฌ์์ง๋๋ค. ์ด๋ฌํ ๋ชจ๋ ๊ธฐ๋ฅ์ ํตํด ๋ฒ ์ด๋ฉํ๋ถํฐ ํ๋ผ์ด๋น ๋ฐ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๊น์ง ๊ด๋ฒ์ํ ์ปดํจํ ํ๊ฒฝ์์ OpenShift๋ฅผ ํตํด ๋์ผํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํ ์ด์์ ์ธ ๊ธฐ๋ฐ์ ๋๋ค.
2. IT ์ด์ ์๋ํ
์ค์น ํ๋ก์ธ์ค ๋ฐ 4์ผ์ฐจ ์์ (์ฆ, ์ผ์์ ์ธ ์์ )์ ์๋ํ๋ OpenShift์ ์ฅ์ ์ผ๋ก, ์ต๊ณ ์์ค์์ ์ปจํ ์ด๋ ํ๋ซํผ์ ์ฑ๋ฅ์ ํจ์ฌ ์ฝ๊ฒ ๊ด๋ฆฌ, ์ ๋ฐ์ดํธ ๋ฐ ์ ์ง ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ OpenShift XNUMX ์ปค๋ ์์ค์์ Kubernetes ์ด์์ ์ง์์ ํตํด ๋ฌ์ฑ๋ฉ๋๋ค.
OpenShift 4๋ ๋ํ Red Hat ์์ฒด์ ํ์ฌ ํํธ๋๊ฐ ๊ฐ๋ฐํ Kubernetes ์ด์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์๋ฃจ์
์ ์ ์ฒด ์์ฝ์์คํ
์
๋๋ค(์ฐธ์กฐ:
ํตํฉ OpenShift 4 ์นดํ๋ก๊ทธ์๋ 180๊ฐ ์ด์์ Kubernetes ์ด์์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
3. ๊ฐ๋ฐ์ ๋๊ตฌ
2011๋
๋ถํฐ OpenShift๋ ๊ฐ๋ฐ์์ ์ถ์ ํจ์ฌ ์ฝ๊ฒ ๋ง๋ค๊ณ , ์ฝ๋ฉ์ ์ง์คํ๋๋ก ๋๊ณ , Java, Node.js์ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ๊ธฐ๋ณธ ์ง์์ ์ ๊ณตํ๋ PaaS(Platform-as-a-Service) ํ๋ซํผ์ผ๋ก ์ ๊ณต๋์์ต๋๋ค. , PHP, Ruby, Python, Go๋ ๋ฌผ๋ก CI/CD ์ง์์ ํตํฉ ๋ฐ ์ ๋ฌ ์๋น์ค, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ์ ์ ๊ณตํฉ๋๋ค. OpenShift 4๋ ๋ค์์ ์ ๊ณตํฉ๋๋ค.
Kubernetes์ ๋ฌ๋ฆฌ OpenShift 4์๋ ์ ์ฉ GUI(
๋ํ OpenShift๋ ํนํ ๋ค์๊ณผ ๊ฐ์ Codeready ๊ฐ๋ฐ ๋๊ตฌ ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Kubernetes/OpenShift ํ๋ซํผ์์ ํจ์จ์ ์ธ ๊ฐ๋ฐ์ ์ํ ์๋น์ค๋ก์์ ํตํฉ IDE
OpenShift๋ ์ปจํ
์ด๋ํ๋ Jenkins ๋ฐ ํ๋ฌ๊ทธ์ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ฆ์ ์ ์ฒด CI/CD ์์คํ
์ ์ ๊ณตํฉ๋๋ค.
4. ์ ์ฉ ๋๊ตฌ
OpenShift๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด์ ์ํ ์ ์ฅ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ง์ดํฌ๋ก์๋น์ค ๋๋ ์๋ฒ๋ฆฌ์ค์ ๊ฐ์ ์๋ก์ด ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋ฃจ์ ์ ๋ชจ๋ ๋ฐฐํฌํ ์ ์์ต๋๋ค. OpenShift Service Mesh ์๋ฃจ์ ์ Istio, Kiali ๋ฐ Jaeger์ ๊ฐ์ ๋ง์ดํฌ๋ก์๋น์ค ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ํ ์ฃผ์ ๋๊ตฌ์ ํจ๊ป ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. OpenShift Serverless ์๋ฃจ์ ์๋ Knative๋ฟ๋ง ์๋๋ผ OpenShift ํ๋ซํผ์์ Azure ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํด Microsoft์์ ๊ณต๋ ์ด๋์ ํฐ๋ธ์ ์ผ๋ถ๋ก ๋ง๋ค์ด์ง Keda์ ๊ฐ์ ๋๊ตฌ๋ ํฌํจ๋์ด ์์ต๋๋ค.
ํตํฉ ์๋ฃจ์
OpenShift ServiceMesh(Istio, Kiali, Jaeger)๋ ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ๋ฐ ์ ์ ์ฉํฉ๋๋ค.
๋ ๊ฑฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ปจํ ์ด๋ ๊ฐ์ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ๊ธฐ ์ํด OpenShift๋ ์ด์ ์ปจํ ์ด๋ ๋ค์ดํฐ๋ธ ๊ฐ์ํ(ํ์ฌ TechPreview์ ์์)๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋จธ์ ์ OpenShift ํ๋ซํผ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ฌ ํ์ด๋ธ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์คํํ๊ณ ํ๋ผ์ด๋น ๋ฐ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ๊ฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ด์งํฉ๋๋ค.
์ปจํ
์ด๋ ๋ค์ดํฐ๋ธ ๊ฐ์ํ๋ฅผ ํตํด OpenShift์์ ์คํ๋๋ Windows 2019 ๊ฐ์ ๊ฐ์ ๋จธ์ (ํ์ฌ ๊ธฐ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฒ์ )
5. ํด๋ฌ์คํฐ์ฉ ๋๊ตฌ
๋ชจ๋ ์ํฐํ๋ผ์ด์ฆ๊ธ ํ๋ซํผ์๋ ๋ชจ๋ํฐ๋ง ๋ฐ ์ค์ ์ง์ค์ ๋ก๊น ์๋น์ค, ๋ณด์ ๋ฉ์ปค๋์ฆ, ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ, ๋คํธ์ํฌ ๊ด๋ฆฌ ๋๊ตฌ๊ฐ ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ OpenShift๋ ์ด ๋ชจ๋ ๊ฒ์ ์ฆ์ ์ ๊ณตํ๋ฉฐ ElasticSearch, Prometheus, Grafana์ ๊ฐ์ ์๋ฃจ์ ์ ํฌํจํ์ฌ ๋ชจ๋ 100% ์คํ ์์ค์ ๋๋ค. ์ด๋ฌํ ๋ชจ๋ ์๋ฃจ์ ์๋ Red Hat์ ๊ด๋ฒ์ํ ํด๋ฌ์คํฐ ๋ชจ๋ํฐ๋ง ์ ๋ฌธ ์ง์์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ ๊ตฌ์ถ ๋ฐ ๊ตฌ์ฑ๋ ๋์๋ณด๋, ์งํ ๋ฐ ๊ฒฝ๊ณ ๊ฐ ํจ๊ป ์ ๊ณต๋๋ฏ๋ก ์ฒ์๋ถํฐ ํ๋ก๋์ ํ๊ฒฝ์ ํจ๊ณผ์ ์ผ๋ก ์ ์ดํ๊ณ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
OpenShift๋ ๋ํ ๋ด์ฅ๋ oauth ๊ณต๊ธ์๋ฅผ ํตํ ์ธ์ฆ, LDAP, ActiveDirectory, OpenID Connect ๋ฑ์ ํฌํจํ ์๊ฒฉ ์ฆ๋ช ๊ณต๊ธ์์์ ํตํฉ๊ณผ ๊ฐ์ด ๊ธฐ์ ๊ณ ๊ฐ์ ์ํ ์ค์ํ ๊ธฐ๋ฅ์ ํ์ค์ผ๋ก ์ ๊ณตํฉ๋๋ค.
OpenShift ํด๋ฌ์คํฐ ๋ชจ๋ํฐ๋ง์ ์ํด ์ฌ์ ๊ตฌ์ฑ๋ Grafana ๋์๋ณด๋
OpenShift ํด๋ฌ์คํฐ ๋ชจ๋ํฐ๋ง์ ์ํด ์ฌ์ ๊ตฌ์ฑ๋ 150๊ฐ ์ด์์ Prometheus ์งํ ๋ฐ ๊ฒฝ๊ณ
๊ณ์ํ๊ธฐ
์๋ฃจ์
์ ํ๋ถํ ๊ธฐ๋ฅ๊ณผ Red Hat์ ์ฟ ๋ฒ๋คํฐ์ค ๋ถ์ผ์์์ ๊ด๋ฒ์ํ ๊ฒฝํ์ ์๋ ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ์ด OpenShift๊ฐ ์์ฅ์์ ์ง๋ฐฐ์ ์ธ ์์น๋ฅผ ์ฐจ์งํ ์ด์ ์
๋๋ค.
โRed Hat์ ํ์ฌ 44%์ ์ ์ ์จ๋ก ์์ฅ์ ์ ๋ํ๊ณ ์์ต๋๋ค.
ํ์ฌ๋ ๋จผ์ ๊ธฐ์
๊ฐ๋ฐ์๋ฅผ ์ปจ์คํ
ํ๊ณ ๊ต์กํ ๋ค์ ๊ธฐ์
์ด ์ปจํ
์ด๋๋ฅผ ํ๋ก๋์
์ ๋ฐฐํฌํ๊ธฐ ์์ํ๋ฉด์ ์์ตํ๋ก ์ ํํ๋ ๊ณ ๊ฐ ์ค์ฌ ์์
์ ๋ต์ ์ด์ ์ ๋๋ฆฌ๊ณ ์์ต๋๋ค.โ
(์ถ์ฒ :
์ด ๊ธฐ์ฌ๊ฐ ์ฆ๊ฑฐ์ ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด ์๋ฆฌ์ฆ์ ํฅํ ๊ฒ์๋ฌผ์์๋ ์ฌ๊ธฐ์์ ๋
ผ์๋ ๊ฐ ๋ฒ์ฃผ์์ Kubernetes์ ๋นํด OpenShift์ ์ฅ์ ์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ถ์ฒ : habr.com