๐ฏ OpenSource/K8S(13)
-
[K8S] Service (NodePort / ClusterIP / LoadBalancer)
Service ? Worker Node์์ ์์ฑ๋ pod๋ ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์ธ๋ถ์์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค. Service๋ฅผ ์ด์ฉํ์ฌ ์ธ๋ถ ์ฌ์ฉ์์ pod ์ ๊ทผ ๋ฐ pod pod ์ ํจ์จ์ ์ธ ๋ด๋ถ์ ๊ทผ์ ๊ตฌ์ฑํ ์ ์๋ค. Service์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ๋ค. Cloud platform์ ๋ก๋๋ฐธ๋ฐ์ or ํด๋ฌ์คํฐ์ ์ํ worker node์ port๋ฅผ ํตํด pod๋ฅผ ์ธ๋ถ์ ๋ ธ์ถ ์ฌ๋ฌ pod์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ ๊ณ ์ ํ ๋๋ฉ์ธ ์ด๋ฆ ๋ถ์ฌ ์ฌ๋ฌ pod์ ์ ๊ทผํ ๋ ์์ฒญ์ ๋ถ์ฐํ๋ LB ๊ธฐ๋ฅ ์ํ Service์๋ 3๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค. NodePort / ClusterPort / LoadBalancer ํ์ ์ด๋ค. ํ๋์ฉ ์์๋ณด๋๋ก ํ์! NodePort Type Worker Node์ ํน์ port๋ฅผ ๊ฐ๋ฐฉํ์ฌ ์ธ๋ถ์์..
2022.11.14 -
12. Accessing to Pod metadata from application
์ปจํ ์ด๋์ ์ ๋ณด ์ ๋ฌํ๊ธฐ ์ํด Downard API ์ฌ์ฉ ์ฟ ๋ฒ๋คํฐ์ค REST API ์ดํด๋ณด๊ธฐ ์ธ์ฆ๊ณผ ์๋ฒ ๊ฒ์ฆ์ kubectl proxy์ ๋งก๊ธฐ๊ธฐ ์ปจํ ์ด๋ ๋ด์์ API ์๋ฒ์ ์ ๊ทผํ๊ธฐ ์ฐ๋ฒ์๋ ์ปจํ ์ด๋ ํจํด์ ์ดํด ์ฟ ๋ฒ๋คํฐ์ค ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฟ ๋ฒ๋คํฐ์ค API ์๋ฒ์ ํต์ ํด ๋ฆฌ์์ค ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ๊ณผ, ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ฒ์ ๋ํด ์์๋ณธ๋ค. 8.1 Downward API๋ก ๋ฉํ๋ฐ์ดํฐ ์ ๋ฌ ํ๋์ IP, ํธ์คํธ ์ด๋ฆ, ํ๋ ์์ฒด์ ์ด๋ฆ๊ณผ ๊ฐ์ด ์คํ ์์ ์ด ์๋ ค์ง์ง ์์ ๋ฐ์ดํฐ๋ ConfigMap ๋๋ Secret์ผ๋ก ์ ๋ฌํ๊ธฐ์ ์ ํฉํ์ง ์๋ค. ConfigMap, Secret์ ๊ฒฝ์ฐ๋ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ค์ ํ๊ฑฐ๋ ํ๋๊ฐ ๋ ธ๋์ ์ค์ผ์ค๋ง ๋์ด ์คํ๋๊ธฐ ์ด์ ์ ์๊ณ ์์ด์ผ..
2021.05.09 -
11. Secret
7.5 ์ํฌ๋ฆฟ์ผ๋ก ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ์ ๋ฌํ๊ธฐ ๋ณด์์ด ์ ์ง๋์ด์ผ ํ๋ ๋ฐ์ดํฐ(์๊ฒฉ์ฆ๋ช , ๊ฐ์ธ ์ํธํํค ๋ฑ)์ Secret์ด๋ผ๋ ์ค๋ธ์ ํธ๋ฅผ ํตํด ๊ด๋ฆฌํ๋ค. 7.5.1 Secret ์๊ฐ ConfigMap๊ณผ ์ ์ฌํ key-value ์์ผ๋ก ConfigMap๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ. ๋ค์๊ณผ ๊ฐ์ ์ํฉ์์ ์ฌ์ฉํ๋ค. ํ๊ฒฝ๋ณ์๋ก Secret ํญ๋ชฉ์ ์ปจํ ์ด๋์ ์ ๋ฌ Secret ํญ๋ชฉ์ ๋ณผ๋ฅจ ํ์ผ๋ก ๋ ธ์ถ Secret์ ์ฌ์ฉํด์ผ ํ๋ ํ๋๊ฐ ์๋ ๋ ธ๋์๋ง ๊ฐ๋ณ์ ์ผ๋ก ์ํฌ๋ฆฟ์ ๋ฐฐํฌํ ์ ์๋ค. ๋ ธ๋ ์์ฒด์ ์ผ๋ก ์ํฌ๋ฆฟ์ ๋ฉ๋ชจ๋ฆฌ์๋ง ์ ์ฅํ๊ณ , ๋ฌผ๋ฆฌ ์ ์ฅ์์๋ ์ ์ฅํ์ง ์๋๋ค. (wiping ๋ฐฉ์ง) ConfigMap๊ณผ Secret์ ์ ์ฌ์ ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ํ์ํ๋ค. ๋ฏผ๊ฐํ์ง ์์ ์ผ๋ฐ ์ค์ ๋ฐ์ดํฐ : ์ปจํผ๊ทธ๋งต ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ..
2021.05.09 -
10. ConfigMap
์ปจํ ์ด๋์ ์ฃผ ํ๋ก์ธ์ค ๋ณ๊ฒฝ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ช ๋ น์ค ์ต์ ์ ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ธ์ถ๋๋ ํ๊ฒฝ๋ณ์ ์ค์ ์ปจํผ๊ทธ๋งต์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ์ํฌ๋ฆฟ์ผ๋ก ๋ฏผ๊ฐํ ์ ๋ณด ์ ๋ฌ 7.1 ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ๊ฐ๋ค์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋ ์ ์๋ค. ๋ช ๋ น์ค ์ธ์๋ก ์ค์ ๊ฐ ์ง์ ์ค์ ๊ฐ์ ํ์ผ์ ์ ์ฅํ์ฌ ์ ์ฉ ๋จ์ ) ํด๋น ์ค์ ํ์ผ์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ์์ ํฌํจํ๊ฑฐ๋, ํ์ผ์ด ํฌํจ๋ ๋ณผ๋ฅจ์ mountํ์ฌ ์ฌ์ฉํด์ผ ํด์ ๊น๋ค๋กญ๋ค. ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉ (ex. MYSQL_ROOT_PASSWORD) Configmap ์ด๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ฆฌ์์ค๋ฅผ ์๋ฏธํ๋ค. ์ปจํผ๊ทธ๋งต์ ์ฌ์ฉํด ๋ค์ ๋ฐฉ๋ฒ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ ์ ์๋ค. ์ปจํ ์ด๋์ ๋ช ๋ น์ค ์ธ์ ์ ๋ฌ ๊ฐ ์ปจํ ์ด๋๋ฅผ ์ํ ์ฌ์ฉ์ ์ ์ ํ๊ฒฝ๋ณ..
2021.05.08 -
09. Job์ผ๋ก ์๋ฃ ๊ฐ๋ฅํ ๋จ์ผ task ๊ตฌํํ๊ธฐ
Pod, ReplicaSet, DaemonSet ๋ฑ์ผ๋ก ์์ฑํ ํ๋ก์ธ์ค๋ ์ง์์ ์ผ๋ก ๋์๋๋ฉฐ, ๋ณ๋์ ์๋ฃ ์์ ์ด ์๋ค. ๋ฐ๋ฉด ์๋ฃ๋ ํ ๋ค์ ์์๋์ง ์๋ ํ๋ก์ธ์ค๋ฅผ Job ๋ฆฌ์์ค๋ก ๊ตฌํํ ์ ์๋ค. 4.5.1 Job ์๊ฐ Job์ ์์ ์ด ์ ๋๋ก ์๋ฃ๋์ด์ผ ํ๋ ์์ ์์ ์ ์ ์ฉํ๊ฒ ์ฐ์ธ๋ค. Job์ผ๋ก ๊ด๋ฆฌํ๋ pod๋ ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋๊ธฐ ์ ๊น์ง๋ ๋์ํ๋๋ก ์ด์๋๋ค. ์๋ฅผ ๋ค์ด ํ๋์ node์ ์ฅ์ ๊ฐ ์๊ฒผ์๋ ๊ทธ ์์์ ๋์ํ๋ Job์ผ๋ก ์์ฑํ pod๋ ๋ค๋ฅธ node์ ์๋ ์ค์ผ์ค๋ง ๋๋ค. 4.5.2 Job Resource Job ๋ฆฌ์์ค๋ฅผ ์์ฑํ๋ค. ์๋ yaml ์ ์์์ ์ฌ์ฉํ image๋ 120์ด ๋์ ์คํํ ํ ์ข ๋ฃ๋๋ค. apiVersion: batch/v1 kind: Job metadata..
2021.04.05 -
08. DaemonSet
DaemonSet์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํด๋ฌ์คํฐ ๋ ธ๋๋ง๋ค pod๋ฅผ ํ๋์ฉ ์ฌ๋ฆด ์ ์๋ค. ์๋ฅผ ๋ค์ด ๋ชจ๋ node์์ ๋์ผํ๊ฒ log ์์ง๊ธฐ๋ฅผ ๊ตฌ๋ ์์ผ์ผ ํ๋ ๊ฒฝ์ฐ DaemonSet์ ์ด์ฉํ์ฌ ๋ฐฐํฌํ๊ฒ ๋๋ค. 4.4.1 DaemonSet์ผ๋ก ๋ชจ๋ node์ pod ์คํํ๊ธฐ DaemonSet์ผ๋ก ์์ฑ๋๋ pod๋ ์ฌ๋ผ๊ฐ ๋ ธ๋๊ฐ ์ด๋ฏธ ์ง์ ๋์ด ์์ด ๋ฌด์์๋ก ๋ฐฐํฌ๋์ง ์๋๋ค. node์์ฒด๊ฐ ๋ค์ด๋ ๊ฒฝ์ฐ DaemonSet์ผ ๋ค๋ฅธ node์ pod๋ฅผ ์์ฑํ์ง ์์ ์๋ก์ด node๊ฐ ํด๋ฌ์คํฐ์ ์ถ๊ฐ๋ ๊ฒฝ์ฐ ํด๋น ๋ ธ๋์ ์๋ก์ด pod์์ฑํจ 4.4.2 DaemonSet ์ฌ์ฉํ์ฌ ํน์ node์ pod์คํํ๊ธฐ ๋ฐ๋ก ์ค์ ํ์ง ์์ผ๋ฉด DaemonSet์ ํด๋ฌ์คํฐ์ ๋ชจ๋ node์ pod๋ฅผ ๋ฐฐํฌํ๋ค. ํน์ ๋ ธ๋๋ฅผ ์ง์ ํ๊ธฐ ์ํด์..
2021.04.05 -
07. ReplicaSet
Replication Controller์ ReplicaSet ๋ชจ๋ ์คํ ์ค์ธ pod ๋ชฉ๋ก์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ์ฌ ๊ด๋ฆฌํ๋ pod ๋ค์ ์ค์ ์๊ฐ ์๋ํ๋ ์์ ๋์ผํ๋๋ก ๋ณด์ฅํ๋ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ฆฌ์์ค์ด๋ค. ํ์ง๋ง Replication Controller๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ์ถ์ธ์ด๋ฉฐ, ์ ์ฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง ์ข๋ ๋์ ReplicaSet์ ๊ฑฐ์ ์ฌ์ฉํ๋ค. 4.3.1 Replication Controller์ ReplicaSet ๋น๊ต ๋ ๋ฆฌ์์ค๋ ๋์ผํ๊ฒ ๋์ํ์ง๋ง ReplicaSet์ ์ด์ํ๋ฉด ์ข ๋ ์ ๊ตํ pod selector๋ฅผ ์ฌ์ฉํ ์ ์๋ค. Replication Controller : ํน์ ๋ ์ด๋ธ์ด ์๋ pod๋ง ํํฐ๋ง ReplicaSet : ํน์ ๋ ์ด๋ธ์ด ์๊ฑฐ๋ ๋ ์ด๋ธ์ ๊ฐ๊ณผ ์๊ด์์ด ..
2021.04.05 -
06. liveness probe
โป ๋ณธ ๊ฒ์๊ธ์ ๋์ ์ ํ ๋๋ก ์ ๋ฆฌ/ํ์ตํ ๋ด์ฉ์ ๋๋ค. 4์ฅ์์๋ kubernetes๊ฐ container ๋ค์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ์ฌ ์ํ๋ ์ํ๋ฅผ ์ ์ง์ํค๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค. 4.1 Pod๋ฅผ ์์ ์ ์ผ๋ก ์ ์งํ๊ธฐ ์ฟ ๋ฒ๋คํฐ์ค์ ์ฃผ์ ์ฅ์ ์ ์ฌ์ฉ์๊ฐ ๊ตฌ๋ํ๊ณ ์ ํ๋ container์ ์ํ๋ฅผ ์์ฒด์ ์ผ๋ก ์ฒดํฌํ์ฌ ์ํ๋ ์ํ๋ฅผ ์ ์งํ๋๋ก ๊ด๋ฆฌํ๋ค๋ ๊ฒ์ด๋ค. container์ crash๊ฐ ๋ฐ์ํ์ฌ ์ ์ ๋์ ํ์ง ์์ผ๋ฉด kubelet์ด ์ด๋ฅผ ๊ฐ์งํ๊ณ ์๋ ์ฌ์์ ์ํค๋ ๊ฒ ๋ฑ์ด๋ค. ํ์ง๋ง ๋๋ก๋ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํ์ ํ๊ธฐ ์ด๋ ค์ธ ๋๋ ์๋ค. 4.1.1 liveness probe liveness probe๋ฅผ ํตํด ์ปจํ ์ด๋๊ฐ ์ด์ ์๋์ง ํ์ธํ๊ณ , ์คํจํ ๊ฒฝ์ฐ ์ปจํ ์ด๋๋ฅผ ์ฌ์์ ํ๋ค. HEEP G..
2021.04.05 -
05. Pod ์ค์ง, ์ ๊ฑฐ
pod๋ ๋ค์๊ณผ ๊ฐ์ด ์ค์ง,์ ๊ฑฐ ํ ์ ์๋ค. 3.8.1 ์ด๋ฆ์ผ๋ก ์ญ์ pod๋ฅผ ์ญ์ ํ๋ฉด pod ์์ ๋ชจ๋ container ๋ํ ์ข ๋ฃ๋๋ค. root@master001:~/k8s_in_action/03_pod# kubectl delete pod kubia-gpu pod "kubia-gpu" deleted 3.8.2 Label Selector๋ฅผ ์ด์ฉํ pod ์ญ์ label์ ์ง์ ํ์ฌ ์ํ๋ ์งํฉ์ pod๋ฅผ ํ๋ฒ์ ์ญ์ ํ ์ ์๋ค. root@master001:~/k8s_in_action/03_pod# kubectl delete pod -l creation_method=manual pod "kubia" deleted pod "kubia-manual-v2" deleted 3.8.3 namespace ์ญ์ ๋ก ์ธ..
2021.04.04