๐ Static Pods
- kubelet ์ kube-apiserver์ ์์กดํด ๋
ธ๋์์ ๋ก๋ํ
pod์๋ํ ์ง์๋ฅผ ๋ฐ์
- ์ด๋ kube-scheduler์ ๊ฒฐ์ ์ ๊ทผ๊ฑฐํ ๊ฒ์ผ๋ก etcd-cluster(๋ฐ์ดํฐ ์ ์ฅ์)์ ์ ์ฅ๋จ
- ๋ง์ฝ kube-apiserver ๋ kube-scheduler controller, etcd-cluster๊ฐ ์๋ค๋ฉด?
- ๋๋ master node๊ฐ ์๋ค๋ฉด?
๐งญ kubelet์ node๋ฅผ ๋
๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌ ํ ์ ์๋ค.
- worker node์๋ kubelet๊ณผ docker๊ฐ ์๋ค
- kube-apiserver๋ ์๋ค
- kubelet๊ฐ ์๋๊ฑด
pod๋ฅผ ๋ง๋๋๊ฒ ๋ฟ
- ํ์ง๋ง
pod์ ์์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํ kube-apiserver๋ ์กด์ฌํ์ง ์๋๋ค.
pod๋ฅผ ๋ง๋๋ ค๋ฉด ์ธ๋ถ ์ ๋ณด๊ฐ (yamlํ์ผ)์ด ์์ด์ผํ๋ค.
/etc/kubernetes/manifests ๋๋ ํฐ๋ฆฌ๋ฅผ ํตํด pod์ Definition ํ์ผ์ ์ฝ์ ์ ์๋ค.
- ์ด ๋๋ ํฐ๋ฆฌ์
pod ์ ์ ํ์ผ์ ๋ฃ์ผ๋ฏ๋ก์ static pod ์์ฑ ๊ฐ๋ฅ
- kubelet์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ด ๋๋ ํฐ๋ฆฌ์ ํ์ผ์ ํ์ธํ๊ณ ์ฝ๊ณ ํธ์คํธ์
pod๋ฅผ ๋ง๋ ๋ค.
pod ์์ฑ ๋ฟ ์๋๋ผ ์ฃฝ์ง ์๋๋ก ๋ณด์ฅ ํ ์ ์๋ค.
- ์ ์ ํ์ผ์ ์์ ํ๋ฉด kubelet์ด ์ฆ์ ์์ ํ๋ค.
- ์ด ๋๋ ํฐ๋ฆฌ์ ์ ์ํ์ผ์ ์ญ์ ํ๋ฉด kubelet์ด
pod๋ฅผ ์ฆ์ ์ญ์ ํ๋ค.
๐Static Pods
- kubelet ์ค์ค๋ก ๋ง๋ ์ด
pod๋ api-server์ ๊ฐ์ญ์ด๋ ๋๋จธ์ง K8S ํด๋ฌ์คํฐ ๊ตฌ์ฑ์์์ ๊ฐ์ญ์ด ์๋ค
- ์ง์ ๋ ๋๋ ํ ๋ฆฌ์ Definition ํ์ผ์ ์ค๋ค๊ณ ReplicaSet์ด๋ Deployment๋ ์์ฑํ ์ ์๋ค.
- ์ฌ์ค kubelet์ ์ต์
์ผ๋ก static pods๋ฅผ ์์ฑํ ๋๋ ํ ๋ฆฌ๋ฅผ ์ค์ ํ ์ ์๋ค.
# kubelet.service ์ต์
์ผ๋ก ๊ฒฝ๋ก static pods ๊ฒฝ๋ก ์ค์
ExecStart=/usr/local/bin/kubelet
<์ค๋ต>
--pod-manifest-path=/etc/Kubernetes/manifest \\
<์ค๋ต..>
# kubelet.service config ์ต์
์ผ๋ก ๊ตฌ์ฑํ์ผ์ ๊ฒฝ๋ก ์ค์
ExecStart=/usr/local/bin/kubelet
<์ค๋ต>
--config=kubeconfig.yaml \\
<์ค๋ต..>
# kubeconfig.yaml
staticPodPath: /etc/Kubernetes/manifests
- kubeadm์ ์
์
ํ ํด๋ฌ์คํฐ๋ ์ด์๊ฐ์ config ๋ฐฉ์์ ์ฌ์ฉํจ
- ์ด๋ฅผ ํ์ธํ๋ฉด static pod์ ์ ์ํ์ผ์ด ์ด๋์ ์์นํ๋์ง ๊ฒฝ๋ก๋ฅผ ์ ์์๋ค.
โ๏ธ static pod ์์ฑ
๐ก์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๊ตฌ์ฑ ์
docker ps ๋ช
๋ น ์คํ, (ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ static pod ์ฌ์ฉํ ๊ฒฝ์ฐ)
kubectl ๋ช
๋ น์ kube-apiServer์ ์๋ํ๋ค.
โ๏ธ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๊ตฌ์ฑ ํ
- ๋
ธ๋๊ฐ ํด๋ฌ์คํฐ์ ์ผ๋ถ์ผ ๋๋?
pod๋ฅผ ๋ง๋ค๋ผ๊ณ kubelet ์ ์์ฒญํ๋ api-server๊ฐ ์์๋๋ฅผ ๊ฐ์
- kubelet์ ๋ ์ข
๋ฅ์
pod๋ฅผ ๋์์ ๋ง๋ค์ ์๋๊ฐ?
- ๊ฐ๋ฅํ๋ค
- static pod ํด๋์์ ์ ์ ํ์ผ์ ํตํด ๊ฐ๋ฅํ๊ณ
- HTTP API ์๋ํฌ์ธํธ๋ฅผ ์ด์ฉํด ๊ฐ๋ฅํ๋ค.
- apiserver๊ฐ kubelet์ ์
๋ ฅ์ ์ ๊ณต๋ฐ๋ ๋ฐฉ๋ฒ์ด๋ค.
โKube-ApiServer๊ฐ Static Pod๋ฅผ ์ธ์ํ ์ ์๋๊ฐ?
- api์๋ฒ๋ kubelet์ด ๋ง๋ static pod๋ฅผ ์ธ์งํ๋ค.
- kubelet์ด static pod๋ฅผ ๋ง๋ค๋ ๊ทธ๊ฒ ํด๋ฌ์คํฐ ๊ฐ์ฒด์ ์ํด์๋ค๋ฉด ์ฝ๊ธฐ์ ์ฉ๊ณผ ๊ฐ์์ ์ธ๋ถ์ฌํญ์ ๋ณผ ์๋ ์์ง๋ง api-server๊ฐ static pod๋ฅผ ์์ ํ ์๋ ์๋ค.
- ์ค์ง ํด๋น๋
ธ๋์ manifest ํด๋์์์ ํ์ผ์ ์์ ํ๊ฑฐ๋ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
๐ค ์ static pod๋ฅผ ์ฌ์ฉํ๋๊ฐ?
- static pod๋ฅผ ์ด์ฉํด control plane(master node)์ ๊ตฌ์ฑ ์์๋ฅผ ๋
ธ๋์ ์๋ ํฌ๋ ์ฒ๋ผ ๋ฐฐํฌ ํ ์ ์์
- ๊ตฌ์ฑ์์
- api-server
- controller-manager
- etcd
- ์ ๊ตฌ์ฑ์์๋ ๋ชจ๋
podํํ๋ก ๋ง์คํฐ ๋
ธ๋์ ๋ฐฐํฌ๋์ด ์๋ค.
- /etc/kubernetes/manifests ํด๋์ yaml ํ์ผ ํํ๋ก ์ ์ ๋์ด์๋ค.
๐ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ๋ค์ด๋ก๋ ํ ํ์๊ฐ ์๊ณ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๊ฑฐ๋ ์๋น์ค๊ฐ ๋ค์ด๋ ๊น ๊ฑฑ์ ํ ํ์๊ฐ ์์
- ์ด ์ค ํ๋๊ฐ ๋ค์ด๋๋ค ํ๋๋ผ๋ static pod ์ด๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ํด๋น ๋
ธ๋์ ์ฌ์์ ํ๋ค.
$ kubectl get pods -n kube-system
- ์ ๋ช
๋ น์ด๋ก control-plane์ ์์ฑ๋ ์์๋ฅผ pod๋ก ๋ณผ ์ ์๋ค.
โ๏ธ static Pods vs DaemonSets
- DaemonSets์ ๋ชจ๋ ํด๋ฌ์คํฐ ๋ด ๋ชจ๋ ๋
ธ๋์์ ์ ํ๋ฆฌ์ผ์ด์
์ธ์คํด์ค๊ฐ ์ฌ์ฉ๊ฐ๋ฅํ๋๋ก ํจ
- ๋ฐ๋ฉด static pod๋ kubelet์ด ์ง์ ๋ง๋ ๋ค (kube-apiserver ๋ K8S control-plane์ ๋ค๋ฅธ ๋ฐฉํด์์๋ ์๋ค)
- static pod๋ control plane์ ๊ตฌ์ฑ์์ ์์ฒด๋ฅผ ๋ฐฐํฌํ๋๋ฐ ์ฃผ๋ก ์ฌ์ฉ
- ๊ณตํต์ ์ kube-Scheduler์ ์ํฅ์ ๋ฐ์ง ์๋๋ค๋ ์