๐ Docker ์ ๋ฌธ 6 - Kubernetes
๐ Docker ์
๋ฌธ 6 - Kubernetes
๐
ใ๊ทธ๋ฆผ๊ณผ ์ค์ต์ผ๋ก ๋ฐฐ์ฐ๋ Docker & Kubernetesใ๋ฅผ ์ฝ๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
Kubernetes๋?
Kubernetes๋ ์คํ์์ค๋ก,Container Orchestration๋๊ตฌ์ ์ผ์ข ์ด๋ค.- ์ฌ๋ฌ ๊ฐ์
Container๋ฅผ ์งํํ๋ ๋๊ตฌ๋ฅผ ๋งํ๋ฉฐ,K8S๋ผ๊ณ ์ค์ฌ์ฐ๊ธฐ๋ ํ๋ค. - ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋จธ๊ฐ
Kubernetes๋ฅผ ํ๋ฐํ๊ฒ ์ฌ์ฉํ ์ผ์ ๋ง์ง ์๋ค. - ์๋ํ๋ฉด
Kubernetes๋ ์ฌ๋ฌ ๋์Container๊ฐ ์ฌ๋ฌ ๊ฐ์ ์๋ฒ์ ๊ฑธ์ณ ์คํ๋๋ ๊ฒ์ ์ ์ ๋ก ํ๊ธฐ ๋๋ฌธ์ด๋ค. - ๋ค๋ง
Kubernetes๋ก ์ด๋ค ์ผ์ ํ ์ ์๋ ์ง ํ์ตํ๋ค๋ฉด ์์คํ ์ ๊ฐ๋ฐํ ๋ ์ ์ฉํ ์ ์๋ค. - ์ฌ๋ฌ ๋์ ์๋ฒ์์ ์ผ์ผ์ด
Container๋ฅผ ์คํํ๊ณ ๊ด๋ฆฌํ๊ธฐ๋ ์ฌ์ด ์ผ์ด ์๋๋ค. - 20๊ฐ์
Container๋ฅผ ๋ง๋ค๋ ค๋ฉดยdocker runย ๋ช ๋ น์ด๋ฅผ 20๋ฒ ์คํํด์ผ ํ๋๋ฐ,Kubernetes๋ ์ด๋ฅผ ํธ๋ฆฌํ๊ฒ ํด์ค๋ค. Kubernetes๋Docker Engine๊ณผ๋ ๋ณ๊ฐ์ ์ํํธ์จ์ด์ด๋ค.Kubernetes๋ ๊ณต์ ์ํํธ์จ์ด๊ฐ ์๋๋ฐ๋Third-party Software๊ฐ ์ฌ๋ฟ ๋์จ๋ค.- ๊ณต์ ์ํํธ์จ์ด๊ฐ ์ฃผ๋ก ๋ง์ด ์ฐ์ด๊ณ , ์ง์ ๊ตฌ์ถํ๊ธฐ๋ ๊น๋ค๋กญ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก๋ย
AWSย ๋ฑ์ ํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์คEC2,ยFargate(Worker Node),ยEKS(Master Node)๋ฅผ ์ฌ์ฉํด ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค.
Master Node์ Worker Node
Master Node๋Worker Node์์ ์คํ๋๋Container๋ฅผ ๊ด๋ฆฌํ๋ค.Worker Node๋Container๊ฐ ์ค์ ๋์ํ๋ ์๋ฒ์ด๋ค.Master Node์Worker Node๋ก ๊ตฌ์ฑ๋ ์ผ๊ตฐ์Kubernetes์์คํ ์ยCluster๋ผ๊ณ ํ๋ค.Cluster๋ ์ฌ๋์ด ๊ฐ์ ํ์ง ์์๋Master Node์ ์ค์ ๋ ๋ด์ฉ์ ๋ฐ๋ผWorker Node๊ฐ ๊ด๋ฆฌ๋๋ฉฐ ์์จ์ ์ผ๋ก ๋์ํ๋ค.Master Node์๋Container๋ฑ์ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํดยetcd๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ค์น๋๋ค.Worker Node์๋Docker Engine๊ฐ์Container Engine์ด ํ์ํ๋ค.Master Node๋ ์ ์ดํ ์ญํ ์ ํ๋Control Plain์ ํตํดWorker Node๋ฅผ ๊ด๋ฆฌํ๋ค.
Control Plain ๊ตฌ์ฑ
kube-apiserver:ยkubectl์์ ๋ช ๋ น์ ์ ๋ฌ ๋ฐ์ ์ธ๋ถ์ ํต์ ํ๋ ํ๋ก์ธ์คkube-controller-manager: ์ปจํธ๋กค๋ฌ๋ฅผ ํตํฉ, ๊ด๋ฆฌ, ์คํํ๋ค.kube-scheduler:POD๋ฅผWorker Node์ ํ ๋นํ๋ค.cloud-controller-manager: ํด๋ผ์ฐ๋ ์๋น์ค์ ์ฐ๋ํด ์๋น์ค๋ฅผ ์์ฑํ๋ค.etcd:Cluster๊ด๋ จ ์ ๋ณด ์ ๋ฐ์ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค.
Worker Node ๊ตฌ์ฑ
kube-let:Master Node์ยkube-scheduler์ ์ฐ๋ํ์ฌWorker Node์POD๋ฅผ ๋ฐฐ์น ๋ฐ ์คํํ๋ค.- ์คํ ์ค์ธ
POD์ ์ํ๋ฅผ ์ ๊ธฐ์ ์ผ๋กMonitoringํ์ฌยkube-scheduler์ ํต์งํ๋ค. kube-proxy:Networkํต์ ์Routing๋ฉ์ปค๋์ฆ
Kubernetes๋ ํญ์ โ๋ฐ๋์งํ ์ํโ๋ฅผ ์ ์งํ๋ค.
"Container๋ 4๊ฐ, ๋ณผ๋ฅจ์ 4๊ฐ๋ก ๊ตฌ์ฑํ๋ผ"์ ๊ฐ์ด ์ด๋ค โ๋ฐ๋์งํ ์ํโ๋ฅผยYAMLย ํ์ผ์ ์ ์ํ๊ณ , ์๋์ผ๋กContainer๋ฅผ ์์ฑํ๊ฑฐ๋ ์ญ์ ํ๋ฉด์ ์ด ์ํ๋ฅผ ๋ง๋ค๊ณ ์ ์งํ๋ค.Kubernetes์ ์ ์ ํ์ผ์ ๋ช ๋ น์ด๋ก ์์ ์ด ๊ฐ๋ฅํ๋ฉฐ,ยetcdย ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ด๋ฆฌ๋๋ค.- ๋ฐ๋ฉด
Docker-compose๋Monitoring๊ธฐ๋ฅ์ด ์์ด์Container๋ง๋ค ๋ ์ธ์๋ ๊ด์ฌํ์ง๋ ์๊ณ , ๋ช ๋ น์ด๋ก ์์ ๋ ๋ถ๊ฐํ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ด๋ฆฌํ์ง๋ ์๋๋ค. Kubernetes๊ฐ ์ ์ ํ์ผ์ ์ฝ์ด ๋ค์ธ ํ ๋ช ๋ น์ด๋ก ์ง์ ์ฒ๋ฆฌ๋ฅผ ํ๋ฉด ๊ฐ๊ณ ์๋ ์ ์ ํ์ผ๊ณผยetcd์ ์ ์ฅ๋ ์ ๋ณด๊ฐ ์ผ์นํ์ง ์์ผ๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค.Containerํ๋๊ฐ ๋ง๊ฐ์ง๋ฉด ํด๋นContainer๋ฅผ ์๋ ์ญ์ ํ๊ณ ์Container๋ก ๋์ฒดํ๋ค.Container๋ฅผ ํ๋ ์ค์ด๊ณ ์ถ๋ค๋ฉด ์ญ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ ๊ฒ ์๋๋ผ ํ์ผ์์ โ๋ฐ๋์งํ ์ํโ๋ฅผ ์์ ํด์ผ ํ๋ค.- ์ง์ ์ญ์ ํ ์๋ ์์ผ๋
Docker๋ช ๋ น์ด๋ฅผ ์จ์ ์ญ์ ํ๋ฉดKubernetes๊ฐContainer๊ฐ ํ๋ ๋ถ์กฑํ๋ค๋ ๊ฒ์ ํ์งํ๊ณContainer๋ฅผ ๋ณด์ถฉํด๋ฒ๋ฆฐ๋ค. - ๊ทธ๋ฌ๋ฏ๋ก
Kubernetes๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์ฌ๋์ด ๊ฐ์ ํด์Container๋ฅผ ๊ด๋ฆฌํด์๋ ์ ๋๋ค.
Load Balancer์ Cloud Computing
โ
Load Balancer
- ํ ๋์ ์๋ฒ์ ๋ชจ๋ ์์ฒญ์ด ์ง์ค๋์ง ์๋๋ก ์ฌ๋ฌ ๋์ ์๋ฒ๋ฅผ ๊ฐ์ถ๊ณ ์์ฒญ์ ๊ฐ ์๋ฒ์ ๋ถ์ฐํ๋ ์ฅ์น
- ์๋ฒ์ ๋ค์ด์ค๋ ์์ฒญ์ ๋ง์ ๋๋ ์๊ณ ์ ์ ๋๋ ์๋ค.
- ์์ฒญ์ด ๋ง์ ๋ ๊ฐ์ถฐ ๋์ ์๋ฒ๊ฐ ์์ฒญ์ด ์ ์ ๋์๋ ๊ทธ๋งํผ ๋๊ฒ ๋๊ธฐ ๋๋ฌธ์ ๋น์ฉ์ด ๋ญ๋น๋๋ค.
- ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ฃผ๋ ๊ฒ์ด
Docker,Kubernetes,Cloud Computing์๋น์ค๋ค.
โ
Cloud Computing
Cloud Computing์๋น์ค์๋ยAWS,ย์ ์ ,ยGCP์ด ์๋ค.- ์์ฒญ์ด ๋ง์ ๊ธฐ๊ฐ์
Cloud์์ ์๋ฒ๋ฅผ ๋๋ฆฌ๋ ์ฒด์ ๋ฅผ ๊ฐ์ถ๋ฉด ๋๋ค. - ์ด๋ ๊ฒ ์๋ฒ๋ฅผ ์ฝ๊ฒ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ์ ์๋ ๊ตฌ์กฐ๋ฅผย ํ์ฅ์ฑ์ด ์ข๋ค๊ณ ๋งํ๋ค.
Kubernetes์ ๊ตฌ์ฑ
Kubernetes์์Container๋ยPOD๋ผ๋ ๋จ์๋ก ๊ด๋ฆฌ๋๋ค.POD๋Container์ ๋ณผ๋ฅจ์ ํจ๊ป ๋ฌถ์ ๊ฒ์ผ๋ก, ๊ธฐ๋ณธ์ ์ผ๋กPODํ๋๊ฐContainerํ๋์ง๋งContainer๊ฐ ์ฌ๋ฌ ๊ฐ์ธPOD๋ ์์ ์ ์๋ค.POD๋ฅผ ๋ชจ์ ๊ฒ์ดยService์ธ๋ฐ,Load Balancer์ญํ ์ ์ํํ๋ค.- ๊ฐ
Service๋ ์๋์ ์ผ๋ก ๊ณ ์ ๋ยIPย ์ฃผ์(Cluster IP)๋ฅผ ๋ถ์ฌ ๋ฐ์ ์ด ์ฃผ์๋ก ๋ค์ด์ค๋ ํต์ ์ ์ฒ๋ฆฌํ๋ค. - ๋ด๋ถ์
POD๊ฐ ์ฌ๋ฌ ๊ฐ ์์ด๋ ๋ฐ์์๋ ํ๋์ ์ฃผ์๋ง ์กด์ฌํ๋ฉฐ ์ด ์ฃผ์๋ก ๋ค์ด์ค๋ ์์ฒญ์Service๊ฐ ์ ์ ํ ๋ถ๋ฐฐํ๋ฉฐ,Service๊ฐ ๋ถ๋ฐฐํ๋ ํต์ ์ ํWorker Node์์ผ๋ก ๊ตญํ๋๋ค. - ์์ธ์ ์ผ๋ก ์ฌ๋ฌ ๊ฐ์
Worker Node์ ๊ฑธ์ณ ์คํ๋๋๋ผ๋ ๋์ผ ๊ตฌ์ฑ์POD๋ ํ๋์ ์๋น์ค๊ฐ ๊ด๋ฆฌํ๋ค. - ์ฌ๋ฌ
Worker Node๊ฐ์ ๋ถ๋ฐฐ๋ ์ค์ Load Balancer๋๋Ingress๊ฐ ๋ด๋นํ๋๋ฐ, ์ด๋ค์Master Node๋Worker Node๋ ์๋ ๋ณ๋์Node์์ ๊ตฌ๋๋๊ฑฐ๋ ๋ฌผ๋ฆฌ์ ์ธ ์ ์ฉ ํ๋์จ์ด์ด๋ค. Replicaย Sets๋POD์ ์๋ฅผ ๊ด๋ฆฌํ๋ค.- ์ฅ์ ๋ฑ์ ์ด์ ๋ก
POD๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ ์ ์ ํ์ผ์ ์ ์๋POD์ ์๊ฐ ๊ฐ์ํ๋ฉด ์ค์ ๋กPOD์ ์๋ฅผ ์กฐ์ ํ๋ค. Replicaย Sets๊ฐ ๊ด๋ฆฌํ๋ ๋์ผํ ๊ตฌ์ฑ์POD๋ฅผยReplica๋ผ๊ณ ํ๋ค.- ๊ทธ๋ฌ๋ฏ๋ก
POD์ ์๋ฅผ ์กฐ์ ํ๋ ๊ฒ์Replica์ ์๋ฅผ ์กฐ์ ํ๋ค๊ณ ํ๋ค. Replicaย Sets๋ ๋จ๋ ์ผ๋ก ์ฐ์ด๋ ๊ฒฝ์ฐ๊ฐ ๋๋ฌผ๊ณ ยDeployment์ ํจ๊ป ์ฐ์ผ ๋๊ฐ ๋ง๋ค.Deployment๋POD๊ฐ ์ฌ์ฉํ๋Image๋ฑPOD์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๋ค.POD, ์๋น์ค,Replicaย Sets,Deployment๋ฑ์ยResource๋ผ๊ณ ํ๋ค.Resource๋ ๋ชจ๋ 50 ์ฌ ์ข ๋ฅ๊ฐ ์๋๋ฐ ์ธ์ธ ํ์ ์์ด ํ์์ ์ํด ํ์ตํ๋ฉด ๋๋ค.
Object์ Instance
Resource๊ฐยetcd์ ๋ฑ๋ก๋ ์ํ์์๋ โโโ Objectโ ํํ๋ก ๊ด๋ฆฌ๋๋ค.- ๊ทธ๋์
Resource๋ฅผยObject๋ผ๊ณ ๋ ํ๋ค. Kubernetes๋ยetcd์ ๋ฑ๋ก๋ ๋ด์ฉ์ ๋ฐ๋ผ ์ค์ POD๋Service๋ฅผ ์์ฑํ๋๋ฐ, ์ด๋ ์ค์ ๋ก ์์ฑ๋ ๊ฒ์ยInstance๋ผ๊ณ ํ๋ค.
์๋ฒ ํ ๋๋ก๋ Kubernetes๋ฅผ ์ฌ์ฉํ ์ ์์๊น?
- ์๊ท๋ชจ ์๋น์ค๋ผ๊ณ
Kubernetes๊ฐ ๋ถํ์ํ์ง๋ ์๋ค. POD๊ฐ ์ฅ์ ๋ฑ์ผ๋ก ๋ง๊ฐ์ง ๊ฒฝ์ฐ ์๋์ผ๋กPOD๋ฅผ ์์ฑํด ๋์ฒดํ๋ฏ๋ก ๊ด๋ฆฌ๊ฐ ํธํด์ง๋ค.- ํนํ
Cloudํ๊ฒฝ์์๋ ๊ด๋ฆฌ ์์๊ฐ ์ค์ด ๋ค์ด ์ด๋ฐ ์ฅ์ ์ด ๊ทน๋ํ ๋๋ค.
Kubernetes ํ์ต ํ๊ฒฝ
Kubernetes๋ ๋ณธ๋ ๋๊ท๋ชจ ์์คํ ์ด ์ ์ ์กฐ๊ฑด์ด๋ค.- ๋ฐ๋ผ์
Master Node์Worker Node๋ ๋ณ๋์ ๋ฌผ๋ฆฌ์ ์ปดํจํฐ๋ก ์ค์ ํ์ง๋ง,Docker Desktop์ ๋ด์ฅ๋Kubernetes์๋ ์ปดํจํฐ ํ ๋์Master Node์Worker Node๋ฅผ ๋ชจ๋ ๊ตฌ์ถํ๋ค. - ํ์ต ํ๊ฒฝ์์๋ ์ด๋ฅผ ์ฌ์ฉํ๋ค.
- ํ์ง๋ง
Desktop๋ด์ฅKubernetes๋ฅผ ์ฌ์ฉํด ๋ช ๋ น์ด๋ ์ ์ ํ์ผ ์์ฑ ์ฐ์ต์ ๊ฐ๋ฅํ์ง๋ง ์ค์ ํ๊ฒฝ๊ณผ ์ฐจ์ด๊ฐ ํฌ๊ธฐ ๋๋ฌธ์Kubernetes๋ฅผ ๋ชจ๋ ์ตํ๊ธฐ ์ด๋ ต๋ค. Kubernetes๋ ์ปดํจํฐ์Resource๋ฅผ ์๋ชจํ๋ฏ๋ก ์ฌ์ฉํ์ง ์์ ๋๋ ํ์ ์์ ์ ์ง์ฅ์ ์ค ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ์ง ์์ผ๋ฉดKubernetes๋ฅผ ๋นํ์ฑํ ํด์ผ ํ๋ค.
Manifest File
Kubernetes๋Manifest File์ ๊ธฐ์ฌ๋ ๋ด์ฉ์ ๋ฐ๋ผPOD๋ฅผ ์์ฑํ๋ค.Manifest File์ ๋ด์ฉ์Kubernetes์ ์ ๋ก๋ํ๋ฉดยetcd์ โ๋ฐ๋์งํ ์ํโ๋ก ๋ฑ๋ก๋์ด ์๋ฒ ํ๊ฒฝ์ ์ด ์ํ๋ก ์ ์งํ๋ค.Manifest File์ยYAMLย ๋๋ยJSONย ํ์์ผ๋ก ๊ธฐ์ฌํ๋ค.JSONย ํ์์ ์ปดํจํฐ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ฏ๋ก ์ฌ๋์ด ์ค์ ํ์ผ์ ์ฝ๊ณ ์ด๋ค๋ฉดยYAMLย ํ์ผ์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.Manifest File๋ช ์ ๋ฐ๋ก ์ ํด์ ธ ์์ง ์์ง๋งย ๋ค๋ฅธ ์ฌ๋๋ ์ดํดํ ์ ์๋ ์ด๋ฆ์ผ๋ก ์ง๋๋ก ํ์.
Manifest File์ Resource ๋จ์๋ก ์์ฑํ๋ค.
PODํญ๋ชฉ์Kubernetes์ต๋ ์ฅ์ ์ธ ์๋์ผ๋ก ์ค์ ๋ ๊ฐ์๋ฅผ ์ ์งํ๋ ๊ธฐ๋ฅ์ด ์๊ณ ์ ๋งPOD๋ง์ ๋ง๋ค ๋ ์ฌ์ฉํ๋ ํญ๋ชฉ์ด๋ฏ๋ก ์์ฑํ์ง ์๋๋ค.POD๋Replicaย Sets์Deployment๋ฅผ ํตํด ๊ด๋ฆฌ๋๋๋ฐ,Replicaย Sets์ญ์Deployment์ ์ํด ๊ฐ์๊ฐ ๊ด๋ฆฌ๋๋ฏ๋ก ์์ฑํ์ง ์๋๋ค.- ์์ฝํ์๋ฉด
Deploymentํญ๋ชฉ์ผ๋กReplicaย Sets์POD๋ฅผ ๊ด๋ฆฌํ๋ค. Manifest File์Resource๋จ์๋ก ๋ถํ ํด ์์ฑํด๋ ๋๊ณ , ํ ํ์ผ์ ํฉ์ณ ์์ฑํด๋ ๋๋ค.- ํ ํ์ผ๋ก ์์ฑํ ๋๋ ๊ฐ
Resource๋ฅผย---๋ก ๊ตฌ๋ถํ๋ค.
Manifest File ์์ฑ
- ์ฃผ ํญ๋ชฉ์๋ย
APIย ๊ทธ๋ฃน ๋ฐ ์ ํ ๋ฑ์Resource์ค์ ๊ณผMeta Data,Spec์ ์์ฑํ๋ค. POD๋Service๊ฐ์Resource์ ์ํ๋Label์ ๋ถ์ผ ์๋ ์๋ค.Label์ ๋ถ์ฌํ๋ฉดSelector๊ธฐ๋ฅ์ ์ฌ์ฉํด ํน์ Label์ด ๋ถ์ฌ๋POD๋ง์ ๋ฐฐํฌํ ์ ์๋ค.
POD ์์ Volume
POD์์Volume์POD๋ฐ์์๋ ์ ๊ทผํ ์ ์์ผ๋ฏ๋กContainer๊ฐ์ ๋ฐ์ดํฐ ๊ณต์ ๋ฅผ ์ํด ์ฃผ๋ก ์ฌ์ฉ๋๋ค.- ์๋ฅผ ๋ค์ด ์ฃผ ํ๋ก๊ทธ๋จ์ด ๋ค์ด ์๋
Container์Log Monitoring Program์ด ๋ค์ด์๋Container๋ฅผ ํ๋์POD๋ก ๊ตฌ์ฑํ์ฌLog๋ฅผ ์ถ๋ ฅํVolume์ ๋ง๋ค์ด ์ดVolume์ ๊ณต์ ํ๊ฒ ํ๋ฉด ๋Container๊ฐLog์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์๋ค.
POD์ Manifest File ์์ฑ
- ์ค์ ๋ก๋
POD์Manifest File์ ์์ฑํ๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
apiVersion: v1
kind: Pod
metadata:
name: ์ปจํ
์ด๋๋ช
labels:
app: ๋ ์ด๋ธ๋ช
spec:
containers:
- name: ์ปจํ
์ด๋๋ช
image: httpd
ports:
- containerPort: 80
Deployment์ Manifest File ์์ฑ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
apiVersion: apps/v1
kind: Deployment
metadata:
name: ์ปจํ
์ด๋๋ช
spec:
selector:
matchLabels:
app: ๋ ์ด๋ธ๋ช
replicas: 3
template:
metadata:
labels:
app: ๋ ์ด๋ธ๋ช
spec:
containers:
- name: ์ปจํ
์ด๋๋ช
image: ์ด๋ฏธ์ง๋ช
ports:
- containerPort: 80
Service์ Manifest File ์์ฑ
1
2
3
4
5
6
7
8
9
10
11
12
13
apiVersion: v1
kind: Service
metadata:
name: ์ปจํ
์ด๋๋ช
spec:
type: NodePort
ports:
- port: 8099
targetPort: 80
protocol: TCP
nodePort: 30080
selector:
app: ๋ ์ด๋ธ๋ช
Deployment์์๋Selector์matchLabelsํญ๋ชฉ์ ์ฌ์ฉํ์ง๋งService์์๋ ์ฌ์ฉํ๋ฉด ์ ๋๋ค.Deployment์matchLabelsํญ๋ชฉ์ ํด๋น ์กฐ๊ฑด์ ๋ถํฉํ ๊ฒฝ์ฐ๋ฅผ ํฌํจํ์ง๋ง ๋ด๋ถ ๋์์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์Service์์๋ ์ง์ Resource๋ฅผ ์ง์ ํ๋ค.
Kubernetes ๋ช
๋ น์ด
1
kubectl ์ปค๋งจ๋ ์ต์
- ์ผ๋ฐ์ ์ธ ํ์์ ์์ ๊ฐ๋ค.
- ๋ช
๋ น์ ํ๋ ํ๋ ์คํํ๋ฉฐ ๋ฐ์ํ๋
Docker์ ๋ฌ๋ฆฌKubernetes๋Manifest File๋ด์ฉ์ ๋ฐ๋ผ ํ ๋ฒ์ ๋ชจ๋Resource๋ฅผ ์์ฑํ๋ค. - ์ฆ โ๋ฐ๋์งํ ์ํโ๋ฅผ
Kubernetes๊ฐ ์ง์ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์์์ ์ผ๋ก ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ์ผ์ ๋๋ฌผ๋ค.
Manifest File๋ก POD/Service ์์ฑ ์ค์ต
โ
POD ์์ฑ
1
kubectl apply -f ํ์ผ๊ฒฝ๋ก๋ช
โ ์์ฑ ์ฌ๋ถ ํ์ธ
Deployment์Manifest File๋ก ์์ฑ๋๋ ๊ฒ์POD์ด๋ฏ๋ก ์ง์ ์ ๊ทผํด ๋์์ ํ์ธํ ์ ์๋ค.- ์ด๊ฒ์ด ๊ฐ๋ฅํ ๊ฒ์
Service๋ถํฐ๋ค. - ๋์ ๋ค์๊ณผ ๊ฐ์ด
POD/Service์ ๋ชฉ๋ก์ ํ์ธํ ์ ์๋ค.
1
2
3
4
5
# POD ๋ชฉ๋ก ํ์ธ
kubectl get pods
# Service ๋ชฉ๋ก ํ์ธ
kubectl get services
โ ์ ๋ฆฌ
1
2
3
4
5
6
7
8
9
10
11
# Deployment ์ญ์
kubectl delete -f ํ์ผ๊ฒฝ๋ก๋ช
# Deployment ๋ชฉ๋ก ํ์ธ
kubectl get deployment
# Service ์ญ์
kubectl delete -f ํ์ผ๊ฒฝ๋ก๋ช
# Service ๋ชฉ๋ก ํ์ธ
kubectl get service
ํ๊ณ
- ์ฑ
์ ๋๊น์ง ์ฝ์ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ผ๋ก ๋๊น์ง ์ ๋ฆฌํด๋ณด์์ง๋ง,
Kubernetes๋ ์ฌ์ค ์ค์ต์ ํ๋ฉด์๋ ๋ด์ฉ์ด ํฌ๊ฒ ์๋ฟ์ง ์์๋๋ฐ, ์ถํ ํ๋ก์ ํธ์ ์ ์ฉํ๋ฉด์ ๊ณต๋ถํ๋ ์๊ฐ์ด ํ์ํ ๊ฒ ๊ฐ๋ค.
This post is licensed under CC BY 4.0 by the author.
