๋ชฉ์ฐจ
ย Kube-API Server
Kube-API Server๋ ์์ฒญ์ ์ธ์ฆ๊ณผ ์ ํจ์ฑ์ ํ์ธํ๊ณ , ETCD์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ ๋ฐ ์
๋ฐ์ดํธํ๋ค
Kube-API Server๋ ETCD์ ์ง์ ์ํธ์์ฉํ๋ ์ ์ผํ ๊ตฌ์ฑ์์์ด๋ค
โข
kubectl ๋ช
๋ น์ ์คํํ๋ฉด kubectl utility๊ฐ kube-apiserver์ ๋๋ฌํจ
โข
kube-apiserver๋ ์์ฒญ์ ์ธ์ฆํ๊ณ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํจ
โข
etcd cluster์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ฌ request์ ๋ํด responseํจ
โข
kubectl ๋ช
๋ น์ ์ฌ์ฉํ๋ ๊ฒ ๋์ API๋ฅผ ์ง์ ํธ์ถํ ์๋ ์์
ย Kubernetes Architecture
API ํธ์ถ๋ก ์ฟ ๋ฒ๋คํฐ์ค ์ํคํ
์ฒ๋ฅผ ์์๋ณด์
curl -X POST /api/v1/namespaces/default/pods
Bash
๋ณต์ฌ
1.
์ธ์ฆ ๋ฐ ์ ํจ์ฑ ๊ฒ์ฌ ์งํ + ๋ฐ์ดํฐ ์กฐํํ์ฌ ์์ฒญ์ ๋ํ ์๋ต (Authenticate User, Validate Request, Retrieve data)
2.
API ์๋ฒ๋ ๋
ธ๋์ ํ ๋นํ์ง ์๊ณ pod๋ฅผ ์์ฑํจ
3.
์ค์ผ์ค๋ฌ๊ฐ API ์๋ฒ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ค node์ ํ ๋น๋์ง ์์ pod๋ฅผ ๋ฐ๊ฒฌ
4.
pod๊ฐ ํ ๋น๋ node๋ฅผ ์ฐพ์ kube-apiserver์๊ฒ ์๋ฆผ
5.
API ์๋ฒ๋ ์ ๋ณด๋ฅผ etcd cluster์ ์
๋ฐ์ดํธํจ
6.
API ์๋ฒ๋ ์ ์ ํ ์์ปค๋
ธ๋์ kubelet์ ๊ทธ ์ ๋ณด๋ฅผ ๋๊น
7.
kubelet์ pod๋ฅผ ํด๋น ๋
ธ๋์ ์์ฑํ๊ณ ์ปจํ
์ด๋ ๋ฐํ์ ์์ง์ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฏธ์ง๋ฅผ ๋ฐฐํฌํ๋๋ก ์ง์ํจ
8.
๋ฐฐํฌ๋ฅผ ๋ง์น๊ณ kubelet์ status๋ฅผ API ์๋ฒ์ ๋ค์ ์
๋ฐ์ดํธ ํ๊ณ , API ์๋ฒ๋ etcd cluster์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์
๋ฐ์ดํธํจ
graph LR; 1.Authenticate --> 2.ValidateRequest; 2.ValidateRequest --> 3.RetrieveData; 3.RetrieveData --> 4.UpdateETCD; 4.UpdateETCD --> 5.Scheduler; 5.Scheduler --> 6.Kublet;
Mermaid
๋ณต์ฌ
ย kube-apiserver ์ต์
ํ์ธ
๊ธฐ์กด ํด๋ฌ์คํฐ์์ kube-apiserver๋ฅผ ํ์ธํ๋ ๊ฒ์ ํด๋ฌ์คํฐ๋ฅผ ์ด๋ป๊ฒ ์ค์ ํ๋๋์ ๋ฐ๋ผ ๋ค๋ฆ
kubeadm setup
โข
master node์ kube-system ๋ค์์คํ์ด์ค์ kube-apiserver-master๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฐฐํฌ๋จ
โข
/etc/kubernetes/manifests/kube-apiserver.yaml ํ๋ ์ ์ ํ์ผ์์ ์ต์
ํ์ธ ๊ฐ๋ฅ
non-kubeadm setup
โข
/etc/systemd/system/kube-apiserver.service ์์ ์ต์
ํ์ธ ๊ฐ๋ฅ
ps -aux | grep kube-apiserver ๋ฅผ ํตํด ์คํ ์ค์ธ ํ๋ก์ธ์ค ์ํ ๋ฐ ์ต์
ํ์ธ ๊ฐ๋ฅ