Kubernetes
Minikube
EBS ๋ณผ๋ฅจ ์ฌ์ด์ฆ ๋ณ๊ฒฝ
Minikube ์ค์น
ํด๋ฌ์คํฐ ์์ฑ
์คํ์ค์ธ Pod ํ์ธ
๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
์๋น์ค ์๋ํฌ์ธํธ ์์ฑ
์๋น์ค ์๋ํฌ์ธํธ ๋ฐ ํฌํธ ํ์ธ
์๋น์ค ์๋ํฌ์ธํธ๋ก ์ ์๋๋์ง ํ์ธ
ํด๋ฌ์คํฐ ์ญ์
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ์์ฑ
์ค์ต ํ๊ฒฝ ์์ฑ
์ธ์คํด์ค ์ ๋ณด ํ์ธ
SSH ๋น๋ฐ๋ฒํธ ํ์ธ
์๋ก์ด ํฐ๋ฏธ๋์ ์ด๊ณ ์ฒซ๋ฒ์งธ ์ปจํธ๋กค ํ๋ ์ธ ๋ ธ๋๋ก ์ฌ์ฉํ ์ธ์คํด์ค๋ก SSH ์ฐ๊ฒฐ
์์คํ ๊ตฌ๋์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
์ปจํ ์ด๋ ๋ฐํ์ ๊ตฌ๋์ ํ์ํ overlay์ br_netfilter ์ปค๋ ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ
์ปจํ ์ด๋ ๋ฐํ์ ๊ตฌ๋์ ํ์ํ ์ปค๋ ํ๋ผ๋ฏธํฐ ์ค์
containerd ์ค์น
์ฟ ๋ฒ๋คํฐ์ค ์ค์น ๋ฐ ๊ตฌ๋์ ํ์ํ ๋ฐ์ด๋๋ฆฌ ์ค์น
/etc/hosts
ํ์ผ์ ์๋์ ๊ฐ์ ๋ผ์ธ ์ถ๊ฐ - CP_IP_ADDRESS๋ CP ๋ ธ๋ IP์ฃผ์์๋ฅผ๋ค์ด CP์ IP์ฃผ์๊ฐ 123.45.67.89๋ผ๋ฉด ์๋์ฒ๋ผ ์ ๋ ฅ
ํด๋ฌ์คํฐ ์ค์ ํ์ผ ์์ฑ
์ปจํธ๋กค ํ๋ ์ธ ๋ ธ๋ ๊ตฌ์ฑ
kubeconfig ํ์ผ ๋ณต์ฌ
kubeconfig ํ์ผ ํ์ธ
์คํ์ค์ธ Pod ํ์ธ
Pending ์ํ์ Pod์ ์์ธ๋ด์ฉ ํ์ธ
๋ ธ๋ ๋ชฉ๋ก ํ์ธ
CP ๋ ธ๋ ์ํ ํ์ธ
kubelet ๋ก๊ทธ ํ์ธ
CNI ํ๋ฌ๊ทธ์ธ ์ค์น
์คํ์ค์ธ Pod ํ์ธ
CP ๋ ธ๋ ์ํ ํ์ธ
kubectl ๋ช ๋ น์ด์ ๋ํ bash completion ์ค์
์๋ก์ด ํฐ๋ฏธ๋์ ์ด๊ณ ์์ปค ๋ ธ๋๋ก ์ฌ์ฉํ ์ธ์คํด์ค๋ก SSH ์ฐ๊ฒฐ
์์คํ ๊ตฌ๋์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
์ปจํ ์ด๋ ๋ฐํ์ ๊ตฌ๋์ ํ์ํ overlay์ br_netfilter ์ปค๋ ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ
์ปจํ ์ด๋ ๋ฐํ์ ๊ตฌ๋์ ํ์ํ ์ปค๋ ํ๋ผ๋ฏธํฐ ์ค์
containerd ์ค์น
์ฟ ๋ฒ๋คํฐ์ค ์ค์น ๋ฐ ๊ตฌ๋์ ํ์ํ ๋ฐ์ด๋๋ฆฌ ์ค์น
/etc/hosts
ํ์ผ์ ์๋์ ๊ฐ์ ๋ผ์ธ ์ถ๊ฐ - CP_IP_ADDRESS๋ CP ๋ ธ๋ IP์ฃผ์์ปจํธ๋กค ํ๋ ์ธ ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋๋ก ์ด๋
Worker ๋ ธ๋ ์กฐ์ธ ๋ช ๋ น์ด ์์ฑ
Worker ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋๋ก ์ด๋ํด์ ์์ ๋ช ๋ น์ด๋ฅผ ์คํํ๊ณ ๋์จ ๋ช ๋ น์ด๋ฅผ ์คํ
์ปจํธ๋กค ํ๋ ์ธ ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋๋ก ์ด๋
๋ ธ๋ ์ํ ํ์ธ
์ํ ์ ํ๋ฆฌ์ผ์ด์
๋ฐฐํฌ
Deployment ์์ฑ
Deployment ์ํ ํ์ธ
Pod๊ฐ ์์ฑ๋์๋์ง ํ์ธ
์์ฑ๋ NGINX Deployment ์ํ ์์ธ ํ์ธ
ํด๋ฌ์คํฐ์ ๋ฐ์ํ ์ด๋ฒคํธ ํ์ธ
Deployment์ ์ํ๋ Pod ์ญ์
Pod๊ฐ ์กด์ฌํ๋์ง ํ์ธ
Service ์์ฑ
NGINX ์๋น์ค ํ์ธ
NGINX ์๋น์ค์ ์ฐ๊ฒฐ๋ Endpoints ํ์ธ
์คํ์ค์ธ Pod์ IP ์ฃผ์ ํ์ธ
์๋น์ค ์๋ํฌ์ธํธ ๋ฐ ํฌํธ ํ์ธ
NGINX ์๋น์ค์ ClusterIP์ HTTP ์์ฒญ
NGINX ์๋น์ค์ ์ฐ๊ฒฐ๋ Endpoints ์ฃผ์๋ก HTTP ์์ฒญ
NGINX Deployment์ Replica ๊ฐฏ์๋ฅผ 3๊ฐ๋ก ๋ณ๊ฒฝ
Pod๊ฐ ์ถ๊ฐ๋ก ์์ฑ๋๋์ง ํ์ธ
NGINX ์๋น์ค์ ์ฐ๊ฒฐ๋ Endpoints ํ์ธ
NGNIX ์๋น์ค๋ฅผ NodePort ํ์ ์ผ๋ก ๋ณ๊ฒฝ
NGINX Service ์๋ํฌ์ธํธ ๋ฐ ํฌํธ ํ์ธ
์น๋ธ๋ผ์ฐ์ ์์
ANY_NODE_IP:SERVICE_NODE_PORT
๋ก ์ ์๋๋์ง ํ์ธ - ์๋ ๋ช ๋ น์ด๋ก ์ฃผ์ ํ์ธ ๊ฐ๋ฅNGINX Deployment์ Replica ๊ฐฏ์๋ฅผ 0๊ฐ๋ก ๋ณ๊ฒฝ
์น๋ธ๋ผ์ฐ์ ์์
ANY_NODE_IP:SERVICE_PORT
๋ก ์ ์๋๋์ง ํ์ธNGINX Deployment์ Replica ๊ฐฏ์๋ฅผ 2๊ฐ๋ก ๋ณ๊ฒฝ
์น๋ธ๋ผ์ฐ์ ์์
ANY_NODE_IP:SERVICE_PORT
๋ก ์ ์๋๋์ง ํ์ธ๋ฆฌ์์ค ์ญ์
๊ณ ๊ฐ์ฉ์ฑ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๊ตฌ์ฑ
HAProxy๋ก SSH ์ ์
HAProxy ์ค์น
HAProxy ์ค์ ํ์ผ
/etc/haproxy/haproxy.cfg
์ ์๋์ ๋ผ์ธ๋ค์ ์ถ๊ฐ - CP_IP_ADDRESS์ CP ๋ ธ๋์ IP ์ฃผ์๋ฅผ ๋ฃ์ผ์ธ์.HAProxy ๋ฐ๋ชฌ์ ์ฌ์์ํ๊ณ ์ํ ํ์ธ
CP ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋๋ก ์ด๋
/etc/hosts
ํ์ผ์์ k8scp์ ์ง์ ๋ IP์ฃผ์๋ฅผ HAProxy IP ์ฃผ์๋ก ๋ณ๊ฒฝWorker ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋๋ก ์ด๋
/etc/hosts
ํ์ผ์์ k8scp์ ์ง์ ๋ IP์ฃผ์๋ฅผ HAProxy IP ์ฃผ์๋ก ๋ณ๊ฒฝ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด๊ณ HAPROXY_IP_ADDRESS:9999/stats ์ฃผ์๋ก ์ ์
CP ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋๋ก ์ด๋
kubectl ๋ช ๋ น์ด๋ก API ํธ์ถ
HAProxy ํต๊ณ ํ์ด์ง๋ฅผ ๋ฆฌํ๋ ์ํด์ ํธ๋ํฝ ์ ๋ณด๊ฐ ์ ๋ฐ์ดํธ ๋๋์ง ํ์ธ
SecondCP๋ก SSH ์ ์
์์คํ ๊ตฌ๋์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
์ปจํ ์ด๋ ๋ฐํ์ ์ค์น
์ฟ ๋ฒ๋คํฐ์ค ์ค์น
/etc/hosts
ํ์ผ์ ์๋์ ๊ฐ์ ๋ผ์ธ ์ถ๊ฐThirdCP๋ก SSH ์ ์
14๋ฒ๋ถํฐ 17๋ฒ ๋จ๊ณ๋ฅผ ์คํ
CP ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋๋ก ์ด๋
์ปจํธ๋กค ํ๋ ์ธ ์กฐ์ธ ๋ช ๋ น์ด ์์ฑ
์์์ ์์ฑํ ๋ช ๋ น์ด๋ฅผ SecondCP ๋ ธ๋ ๋ฐ ThirdCP ๋ ธ๋์ ์คํ
HAProxy ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋๋ก ์ด๋
HAProxy ์ค์ ํ์ผ
/etc/haproxy/haproxy.cfg
์ ์๋์ ๊ฐ์ด ์์ HAProxy ๋ฐ๋ชฌ์ ์ฌ์์ํ๊ณ ์ํ ํ์ธ
์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด๊ณ HAPROXY_IP_ADDRESS:9999/stats ์ฃผ์๋ก ์ ์ํด์ ์์์ ์ถ๊ฐํ ๋ ธ๋๋ค์ ์ฐ๊ฒฐ ์ํ ํ์ธ
CP ๋ ธ๋์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋๋ก ์ด๋
Node ๋ชฉ๋ก ํ์ธ
kubectl ๋ช ๋ น์ด๋ก ๋ช๊ฐ์ง API ํธ์ถ์ ์คํํ๊ณ HAProxy ํต๊ณ์ฌ์ดํธ์์ ๋ก๋๊ฐ ๋ถ์ฐ๋๋์ง ํ์ธ
๊ณ ๊ฐ์ฉ์ฑ ํ
์คํธ
์คํ์ค์ธ ETCD Pod ํ์ธ
ETCD Pod ๋ก๊ทธ ํ์ธ
์คํ์ค์ธ ETCD Pod์ IP ์ฃผ์ ํ์ธ
ETCD ํด๋ฌ์คํฐ์ ๋ฉค๋ฒ ๋ชฉ๋ก ํ์ธ
ETCD ํด๋ฌ์คํฐ ๋ฉค๋ฒ ๋ชฉ๋ก์ ํ๊ฒฝ๋ณ์๋ก ์ง์
ETCD ํด๋ฌ์คํฐ์ ๋ฆฌ๋ ํ์ธ
ETCD ํด๋ฌ์คํฐ์ ๊ฐ ๋ฉค๋ฒ๋ณ ์ํ ํ์ธ
ETCD ํด๋ฌ์คํฐ์ ๋ฆฌ๋ Pod๊ฐ ๋ฐฐํฌ๋ ๋ ธ๋์ ๊ฐ์ kubelet ๋ฐ ์ปจํ ์ด๋ ๋ฐํ์ ์ ์ง- CP ๋ ธ๋์ ETCD๊ฐ ๊ฐ์ฅ ๋จผ์ ๊ตฌ์ฑ๋์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก CP ๋ ธ๋์ ๋ฐฐํฌ๋ ETCD๊ฐ ๋ฆฌ๋
ETCD Pod ๋ก๊ทธ ํ์ธ
์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด๊ณ HAPROXY_IP_ADDRESS:9999/stats ์ฃผ์๋ก ์ ์ํด์ ์์์ ๋ ธ๋๋ค์ ์ฐ๊ฒฐ ์ํ ํ์ธ
ETCD ํด๋ฌ์คํฐ์ ๋ฆฌ๋๊ฐ ๋ณ๊ฒฝ๋์๋์ง ํ์ธ
ETCD ํด๋ฌ์คํฐ ๊ฐ ๋ฉค๋ฒ๋ณ ์ํ ํ์ธ
Node ์ํ ํ์ธ
CP ๋ ธ๋์์ kubelet ๋ฐ ์ปจํ ์ด๋ ๋ฐํ์์ ์ฌ์คํ
์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด๊ณ HAPROXY_IP_ADDRESS:9999/stats ์ฃผ์๋ก ์ ์ํด์ ์์์ ๋ ธ๋๋ค์ ์ฐ๊ฒฐ ์ํ ํ์ธ
๋ ธ๋ ์ํ ํ์ธ
๋ชจ๋ Pod๊ฐ ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์๋์ง ํ์ธ
ETCD ํด๋ฌ์คํฐ์ ๋ฆฌ๋๊ฐ ๋ค์ ๋ณ๊ฒฝ๋์๋์ง ํ์ธ
ETCD ํด๋ฌ์คํฐ ๊ฐ ๋ฉค๋ฒ๋ณ ์ํ ํ์ธ
Cloud9์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋๋ก ์ด๋ํด์ ๋ฆฌ์์ค ์ญ์
Amazon EKS
eksctl ์ค์น
eksctl ๋ฒ์ ํ์ธ
ํ์ฌ ๋ก๊ทธ์ธ๋ IAM ์๊ฒฉ์ฆ๋ช ํ์ธ
EKS ํด๋ฌ์คํฐ ์์ฑ
kubectl ์ค์น
Node ๋ชฉ๋ก ํ์ธ
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๋ฒ์ ํ์ธ
Deployment ์์ฑ
์์ฑ๋ Pod ํ์ธ
Service ์์ฑ
์์ฑ๋ Service ํ์ธ
์์ฑ๋ ELB ์ฃผ์ ํ์ธ
์น๋ธ๋ผ์ฐ์ ์์ ์์์ ํ์ธํ URL๋ก ์ ์
๋ฆฌ์์ค ์ญ์
Pod์ ๋ฆฌ์์ค ์ฌ์ฉ๋ ํ์ธ
Pod์ ๋ฆฌ์์ค ์ฌ์ฉ๋ ํ์ธ
๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถํ๋ฅผ ๋ฐ์์ํค๋ Pod ์์ฑ
Pod์ ๋ฆฌ์์ค ์ฌ์ฉ๋ ํ์ธ
HPA ์์ฑ
์์์ ์์ฑํ HPA ์ํ ํ์ธ
HPA ์ํ ๋ชจ๋ํฐ๋ง
Ctrl+C๋ฅผ ์ ๋ ฅํด์ HPA ๋ชจ๋ํฐ๋ง์ ์ค์งํ๊ณ Pod๊ฐ ์์ฑ๋์๋์ง ํ์ธ
Pod์ ๋ฆฌ์์ค ์ฌ์ฉ๋ ํ์ธ
Pending ์ํ์ Pod๊ฐ ์๋ค๋ฉด ์๋์ ๋ช ๋ น์ด๋ฅผ ํตํด์ ๊ทธ ์ด์ ๋ฅผ ํ์ธ
Cluster Autoscaler ์ค์น
Cluster Autoscaler ๋ก๊ทธ ํ์ธ
Pending ์ํ์๋ Pod๊ฐ ์์ฑ ๋์๋์ง ํ์ธ
Node ๊ฐฏ์ ํ์ธ
Pod์ ๋ฆฌ์์ค ์ฌ์ฉ๋ ํ์ธ
๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถํ๋ฅผ ๋ฐ์์ํค๋ Pod ์ญ์
Pod์ ๋ฆฌ์์ค ์ฌ์ฉ๋ ํ์ธ
HPA ์ํ ํ์ธ
HPA ์์ธ ๋ด์ฉ ํ์ธ
๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์ ๋ณธ ๊ฐฏ์๋ 1๊ฐ๋ก ๊ฐ์ ์ง์
Pod๊ฐ ์ญ์ ๋์๋์ง ํ์ธ
๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ญ์
Pod๊ฐ ์ญ์ ๋์๋์ง ํ์ธ
Node๊ฐ ์ญ์ ๋๋์ง ํ์ธ
Cluster Autoscaler ๋ก๊ทธ ํ์ธ
EKS ํด๋ฌ์คํฐ ์ญ์
Last updated