k8s 6

# k8s Pod Security Policy ์ ์šฉ - ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ

Pod Security Policy (์ดํ•˜ PSP) ๋ž€? k8s์—๋Š” SecurityContext๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์กด์žฌํ•œ๋‹ค. SecurityContext๋Š” Container์˜ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ๊ฐœ์ธ์ ์œผ๋กœ PSP๋Š” ์ด SecurityContext์˜ ํ™•์žฅํŒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. PSP(ํฌ๋“œ ๋ณด์•ˆ ์ •์ฑ…)์€ ํฌ๋“œ ์‚ฌ์–‘์˜ ๋ณด์•ˆ ๊ด€๋ จ ์ธก๋ฉด์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹ํด๋Ÿฌ์Šคํ„ฐ ์ˆ˜์ค€ ๋ฆฌ์†Œ์Šค์ด๋‹ค. PSP ๊ฐ์ฒด๋Š” ๊ด€๋ จ ํ•„๋“œ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹œ์Šคํ…œ์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํฌ๋“œ๊ฐ€ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ์กฐ๊ฑด ์„ธํŠธ๋ฅผ ์ •์˜ํ•œ๋‹ค. ๊ด€๋ฆฌ์ž๋Š” ๋‹ค์Œ์„ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ œ์–ด ๋ชฉ๋ก ํ•„๋“œ๋ช… Container์˜ ์‹คํ–‰ ๊ถŒํ•œ privileged ํ˜ธ์ŠคํŠธ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค์˜ ์‚ฌ์šฉ hostPID, hostIPC ํ˜ธ์ŠคํŠธ ๋„คํŠธ์›Œํ‚น ๋ฐ ํฌํŠธ์˜ ์‚ฌ์šฉ hostNetwork, h..

Cloud/Kubernates 2020.02.04

# k8s HPA TARGETS CPU <unknown> ํ˜„์ƒ ํ•ด๊ฒฐ

go์ง€๋‚œ ์‹œ๊ฐ„์— HPA ๊ตฌ์„ฑ์„ ํ†ตํ•ด CPU, Memory์— ๋”ฐ๋ฅธ POD์˜ ์ž๋™ ์ฆ๊ฐ์„ ์‹ค์Šตํ•ด๋ดค๋‹ค. ๊ทธ๋ฆฌ๊ณ  Memory HPA ํ…Œ์ŠคํŠธ์—์„œ ๋‚˜์˜จ ํ™•์ธ ์‚ฌํ•ญ์œผ๋กœ HPA๊ฐ€ ๋Œ€์ƒ ์„œ๋น„์Šค์˜ CPU์˜ target ์ธ์‹์„ ๋ชปํ•˜๋˜ ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์˜ค๋Š˜์€ ํ•ด๋‹น ์ด์Šˆ์˜ ์›์ธ์„ ์ฐพ์•„์„œ ๊ด€๋ จ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•˜๊ฒ ๋‹ค. ๋จผ์ € ์ง€๋‚œ ํ…Œ์ŠคํŠธ ๋•Œ์˜ HPA์˜ ์ƒํ™ฉ์ด๋‹ค. TARGETS์˜ CPU๊ฐ€ ์œผ๋กœ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ์›์ธ์€ HPA๊ฐ€ ๊ฐ์‹œํ•˜๋Š” ๋Œ€์ƒ ์„œ๋น„์Šค์˜ Resource Limits ๊ฐ’์„ ์ฃผ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ์•ˆ ๋‚ด๊ฐ€ HPA๋กœ ๊ฐ์‹œํ•˜๋ ค๋Š” ์„œ๋น„์Šค์˜ ์„ค์ •์—์„œ spec์— ์•„๋ž˜ Resource Limits ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค. CPU๋Š” ํ•„์ˆ˜์ด๊ณ , ๋ฉ”๋ชจ๋ฆฌ๋Š” ์•ˆํ•ด๋„ HPA๊ฐ€ TARGETS ๊ฐ’์„ ์ฝ์–ด์˜ค๋Š”๋ฐ ์•„๋ฌด๋Ÿฐ ์ง€..

Cloud/Error 2019.11.05

# k8s Horizontal Pod Autoscaler (HPA) ์‹ค์Šต - 2

์ง€๋‚œ ๊ธ€ (# k8s Horizontal Pod Autoscaler (HPA) ์‹ค์Šต - 1)์— ์ด์–ด์„œ ์ด๋ฒˆ์—” Memory ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ์— ๋”ฐ๋ฅธ Autoscaling์„ ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๊ฒ ๋‹ค. ์‚ฌ์‹ค k8s๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํž˜๋“  ๊ฒƒ์€ ๋ฒ„์ „ up์— ๋”ฐ๋ฅธ ์ด์Šˆ๋“ค์ธ๋ฐ, ๋ฒ„์ „ up์— ๋”ฐ๋ฅธ API ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋„ˆ๋ฌด ๋งŽ๋‹ค. ๋ฌผ๋ก  ๊ธฐ๋ณธ ์˜ˆ์ œ๋“ค์€ ๊ณต์‹ ์‚ฌ์ดํŠธ์— ์ž˜ ๋‚˜์™€์žˆ์œผ๋‚˜, k8s ์ž…๋ฌธ์ž๋“ค์ด ๊ด€๋ จ ์˜ˆ์ œ๋ฅผ ๋ธ”๋กœ๊ทธ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์กฐ๊ธˆ ์‘์šฉํ•ด๋ณด๋ ค๊ณ  ํ•˜๋ฉด ๋ฒ„์ „ ๋ฌธ์ œ ๋“ฑ์œผ๋กœ ๊ธˆ๋ฐฉ ๋ง‰ํ˜€๋ฒ„๋ฆฐ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ๊ฒช์–ด๋ดค์„ ๋•Œ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฌดํ„ฑ๋Œ€๊ณ  ๋ธ”๋กœ๊ทธ ์ž๋ฃŒ๋ฅผ ๋ณต๋ถ™ ํ•˜๊ธฐ ๋ณด๋‹ค ์—ญ์‹œ๋‚˜ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. k8s์˜ API ๋ฌธ์„œ๋ฅผ ๋ณด๊ณ  ์ ์–ด๋„ ๋‚ด๊ฐ€ ์ ์šฉํ•˜๋ ค๋Š” ๋ฒ„์ „์˜ ํ•ด๋‹น ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ํ•„๋“œ์—๋Š” ์–ด๋–ค ๊ฐ’๋“ค์ด ๋“ค์–ด๊ฐ€๋Š”์ง€, ๋ฐ”๋€ ๊ฒƒ..

Cloud/Kubernates 2019.10.31

# k8s Horizontal Pod Autoscaler (HPA) ์‹ค์Šต - 1

์ง€๋‚œ ๊ธ€(# k8s Pod Autoscaling ๊ฐœ๋…)์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ Pod Autoscaling ๊ฐœ๋…์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด์•˜์œผ๋‹ˆ, ์ด๋ฒˆ์—” ์‹ค์ œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž. [์‹ค์Šต ์ˆœ์„œ] 1. Metrics Server ๊ธฐ๋™ 2. k8s ๊ณต์‹ ๋ฌธ์„œ ์˜ˆ์ œ ์‹ค์Šต k8s์˜ Pod Autoscaling ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ์„ ํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์ž‘์—…์ด ์žˆ๋‹ค. ๋ฐ”๋กœ Metrics Server ๊ธฐ๋™์ด๋‹ค. Autoscaling์„ ํ•˜๋ ค๋ฉด k8s๊ฐ€ ๊ฐ pod, node์˜ ๋ฆฌ์†Œ์Šค ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ, ๋ฆฌ์†Œ์Šค ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด Metrics Server์ด๋‹ค. Metrics Server ์—†์ด Autoscaler๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค. fai..

Cloud/Kubernates 2019.10.23

# k8s Pod Autoscaler ๊ฐœ๋…

k8s Pod Auto Scaling ์ด๋ž€? ํด๋ผ์šฐ๋“œ์˜ ํ•ต์‹ฌ์€ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ด๋‹ค. ์ด๋Š” ์„œ๋น„์Šค ์ค‘์ธ Application์˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์ด๋ฅผ ์Šค์Šค๋กœ ํŒŒ์•…ํ•˜์—ฌ ์ ์ ˆํ•œ ๋Œ€์ฒ˜(Pod๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ, ๋ฆฌ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ ํ• ๋‹น ๋“ฑ)๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ด๊ฒƒ์„ Auto Scaling์ด๋ผ ๋ถ€๋ฅด๋ฉฐ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ๋Š” ์•„๋ž˜ 3๊ฐ€์ง€ ๋ฐฉ์•ˆ์œผ๋กœ ๊ทธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. 1. Horizontal Pod Autoscaler (HPA) HPA๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ Pod ๋ณต์ œ๋ณธ ์ˆ˜๋ฅผ ์กฐ์ • Pod ์ด๋™์€ ํ•„์š”์— ๋”ฐ๋ผ ํ•จ(CPU ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๋ฉ”ํŠธ๋ฆญ) ๋‹ค์–‘ํ•œ, ์™ธ๋ถ€ ๋ฐ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฉ”ํŠธ๋ฆญ (metrics.k8s.io, external.metrics.k8s.io ๋ฐ custom.metrics.k8s.io)์— ๋”ฐ๋ผ ํฌ๋“œ (Pod)๋ฅผ..

Cloud/Kubernates 2019.10.23

# k8s ์™ธ๋ถ€ ETCD HA ๊ตฌ์„ฑ

์ด์ „ ๊ธ€ ( "# k8s + keepalived + haproxy HA ๊ตฌ์„ฑ" ) ์—์„œ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ HA ๊ตฌ์„ฑ์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ETCD๋ž€? ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ์ผ์ข…์˜ DB๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ์ข… ์„œ๋ฒ„ ์ •๋ณด์™€ ์ƒํƒœ ์ •๋ณด๋ฅผ key-value ํ˜•ํƒœ๋กœ ์ €์žฅํ•œ๋‹ค. Kubeadm์€ ๊ธฐ๋ณธ์ ์œผ๋กœ kubelet์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” static pod์—์„œ Single Member ETCD ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ Single Member ETCD๋Š” ์„œ๋ฒ„๊ฐ€ Down๋˜๊ฒŒ ๋œ๋‹ค๋ฉด, ๊ณ  ๊ฐ€์šฉ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ kubeadm์„ ์‚ฌ์šฉํ•˜์—ฌ kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ค์ •ํ•  ๋•Œ ์™ธ๋ถ€ ETCD๋กœ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” 3๊ฐœ์˜ ๋ฉค๋ฒ„๋กœ ๊ตฌ์„ฑ๋œ ๊ณ  ๊ฐ€์šฉ์„ฑ ETCD ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ..

Cloud/Kubernates 2019.09.10