Learning eBPF - What Is eBPF, and Why Is it Imports? 2/2
Learning eBPF ์คํฐ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ปค๋์ ์ถ๊ฐํ๊ธฐ ๋ฆฌ๋ ์ค ์ปค๋์ 3,000๋ง์ค์ ๊ฑฐ๋ํ ์ฝ๋์ ๋ณตํฉ์ฒด๊ณ ๋งค์ฐ ๋ณต์กํ๋ค. ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ์ปค๋์ ์๋ก์ด ๊ธฐ๋ฅ์ด ํ์ํ๋ค๋ฉด ์ปค๋์ ๋ํด ์ฐ๊ตฌํ๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ณ , ์ ๋ง์ ๋ฆฌ๋ทฐ์ด๋ก ๋ถํฐ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์ ๋ฉ์ธ ์คํธ๋ฆผ์ ํจ์น๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค. ์ด ๊ณผ์ ์ ๋๋๋ก ์ง์ง๋ถ์งํ๋ฉฐ ๋ง์ ๋ ธ๋ ฅ๊ณผ ์๊ฐ์ด ํ์ํ๋ค. ๋ํ ์ด ๊ธฐ๊ฐ๋์ ์ฐ๋ฆฌ์ ์๊ตฌ์ฌํญ์ด ๋ณ๊ฒฝ๋ ์๋ ์๋ค. ์ปค๋์ ๊ธฐ๋ฅ ์ถ๊ฐ ๋์ ์ปค๋ ๋ชจ๋ ๋ง๋ค๊ธฐ ์ปค๋๊ณผ ๊ฐ์ ๊ฑฐ๋ํ ์ปค๋ฎค๋ํฐ์ ๊ธฐ์ฌํ๋๊ฑด ๊ฐ๋ฐ์๋ก์ ์ข์ ๊ฒฝํ๊ณผ ์ด๋ ฅ์ด์ง๋ง ์ง์ง๋ถ์งํ ์๊ฐ์ ์๋นํ๊ธฐ ์ซ๋ค๋ฉด ์ปค๋์ ํจ์น ๋ง๋ค๊ธฐ ๋ง๊ณ ์ปค๋ ๋ชจ๋์ ๋ง๋ค ์ ์๋ค....
Learning eBPF - What Is eBPF, and Why Is it Imports? 1/2
Learning eBPF ์คํฐ๋ eBPF๋ ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์ง์ ์ปค๋ ๋ ์ด์ด์์ ๋ก๋ํ๊ณ ์ปค๋์ ๋์์ ๋ณ๊ฒฝํ ์ ์๋๋ก ํ์ฉํ๋ ํ์ ์ ์ธ ๊ธฐ์ ์ด๋ค. eBPF๋ ๊ณ ์ฑ๋ฅ์ ๋คํธ์ํน, Observability, ๋ณด์๋๊ตฌ์ ์ด์ฉํ ์ ์๋ค. eBPF๋ฅผ ํ์ฉํ ์ ๊ท ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ ๋ค๋ฉด ๊ธฐ์กด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ๊ฐ์ ์ธ ์์ ์ด๋ ์ฌ์ค์ ๋ฑ์ด ๋ถํ์ํ ์ด์ ์ด ์๋ค. eBPF๋ฅผ ์ด์ฉํด์ ๋ค์์ด ๊ฒ๋ค์ ํ ์ ์๋ค. ์์คํ ์ธก๋ฉด์์(low level์์), ๋๋ถ๋ถ์ ์ฑ๋ฅ์ธก์ ๊ฐ์์ฑ์ ์ ๊ณตํ๋ ๊ณ ์ฑ๋ฅ์ ๋คํธ์ํน ๋ถ์ ๋น์ ์ ํ์๋ฅผ ํ์งํ๊ฑฐ๋ ์๋ฐฉ Note Moniroting: ์์คํ ์ ์ค๋ฅ, ๊ฒฐํจ ๋๋ ๋น์ ์์ ์ธ ๋ฐ์ดํฐ๋ค์ ์์ง ๋ฐ ๊ฐ์ํ Observability: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ ๋ํ ์ธ๋ถ์ ์ธ ์ธ์ฌ์ดํธ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋ค์ํ ๋ฐ์ดํฐ(log, metric, audit)์ ์์งํ๊ณ ๋ถ์ํ๋ ๊ฒ์ ์๋ฏธํ๋ฉฐ Micro-Service ์ํคํ ์ณ์ ์ ๋ฐ์ ์ธ ๊ตฌ์กฐ์ ๊ฒฐํจ์ ์ฐพ๋๋ฐ ํ์ฉ๋จ....
[Kubernetes Study] Rolling Update and Rollbacks
Rollout ์ฌ์ฉ์๋ Application์ revision ์ ๋ฐ์ดํธ๋ฅผ rollout์ ํตํด ์ํํ ์ ์๋ค. Deployment๋ก ๋ฐฐ์น๋ Application์ rollout์์๋ ๋ค์๊ณผ ๊ฐ๋ค. apiVersion:apps/v1kind:Deploymentmetadata:name:myapp-deploymentlabels:app:myapptype:front-endspec:template:metadata:name:myapp-podlabels:app:myapptype:front-endspec:containers:- name:nginx-containerimage:nginxreplicas:3selector:matchLabels:type:front-endRollout Strategy ์๋ก์ด Revision ๋ฐฐํฌ๋ฐฉ๋ฒ๋ค์ ๋ค์ํ๋ค Recrease ํ์ฌ ๋ฒ์ ์ Pod instance๋ฅผ ๋ชจ๋ ์ญ์ ํ๊ณ ์๋ก์ด Revision application์ผ๋ก ๊ตฌ์ฑํ๋ค. ์ด ๊ฒฝ์ฐ ์ด์ ๋ฒ์ ์ Pod instance๋ค์ด ๋ชจ๋ ์ญ์ ๋๊ณ ์๋ก์ด Revision application์ด ๋ฐฐ์น๋ ๋ ๊น์ง ์๋น์ค ์ฅ์ ๊ฐ ๋ฐ์ํ๋ค. Rolling Update ๊ตฌ ๋ฒ์ Pod๋ฅผ ํ๋ ์ญ์ ํ๊ณ Revision Pod๋ฅผ ์๋กญ๊ฒ ์์ฑํ๋ค. ์ด ๊ณผ์ ์ Pod์ ๊ฐ์๋งํผ ์ํํ๋ฉด Pod๊ฐ ์์ด ์๋น์ค๋ฅผ ์ ๊ณตํ์ง ๋ชปํ๋ ์ฅ์ ๋ ๋ฐ์ํ์ง ์๋๋ค....
[Kubernetes Study] Monitor Cluster Components and Application Logs
Monitor k8s์ Monitoring ์งํ๋ค์ ๋ค์ํ๋ค. ๋ค์์ k8s๋ ๋ค์๊ณผ ๊ฐ์ ์งํ๋ค์ ํ์ธํ ์ ์๋ค. ๋ ธ๋ ๋ ๋ฒจ์ ํต๊ณ: ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ ธ๋์ ๊ฐ์ ๋ฐ ์ํ ์ฑ๋ฅ์งํ: CPU, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ๋์คํฌ, ๋คํธ์ํฌ I/O Pod ๋ ๋ฒจ์งํ: Pod์ ๊ฐ์, Pod์ ์์ ์ฌ์ฉ๋ ๋ฑ ์ด์ฒ๋ผ ๋ค์ํ ์ฑ๋ฅ์งํ๋ค์ ๋ชจ๋ํฐ๋ง ํ ์ ์์ผ๋ ์ค์ํ๋ ๊ด๋ฆฌ์ ํด๋น ์ ๋ณด๋ฅผ ๊ฐ๊ณตํ ์ ์๋ ์๋ฃจ์ ์ด ํ์ํ๋ค. k8s์๋ default๋ก ํ์ฌ๋๋ ๋ชจ๋ํฐ๋ง ์๋ฃจ์ ์ด ์์ง๋ง ์คํ์์ค๋ก ๊ณต๊ฐ๋ ๋ค์ํ ์๋ฃจ์ ๋ค์ผ ์์ผ๋ฉฐ ์ฌ์ฉํ ์ ์๋ค. ์๋ฅผ๋ค๋ฉด Prometheus, Elastic Stack, Datadog, dynatrace๋ฑ์ด ์๋ค....
[Kubernetes Study] Scheduler configuration
์ค์ผ์ฅด๋ฌ๋ ์ฌ์ฉ์๊ฐ ์ ์ํ ๋ฆฌ์์ค์ ์ค์ ์ ๋ฐ๋ผ Pod๋ค์ ๋ฐฐ์นํ๋ค. ์ค์ผ์ฅด๋ฌ๋ Scheduling, Filtering, Scoring ๊ณผ์ ์ ๊ฑฐ์น๋ฉฐ Pod๋ค์ ๋ฐฐ์นํ๋ค. Scheduling(PrioritySort) Pod ์์ฑ ์์ฒญ๋ค์ queue์ฝ์ ํ๋ฉฐ, PriorityClass์ ๊ธฐ๋ฐํ ์ ๋ ฌ์ด ์ด๋ฃจ์ด์ง Filtering(NodeResourceFit) Pod๊ฐ ๋ฐฐ์น๋๋ ๋ ธ๋๋ค์ filteringํ๋ค. Requests/Limits ์ค์ ์ ๋ฐ๋ผ ๋ถ์กฑํ ๋ฆฌ์์ค๋ฅผ ๊ฐ๋ ๋ ธ๋๋ค์ filter out๋๋ค. Scoring(NodeResourceFit) ๋ฐฐ์น ๊ฐ๋ฅํ ๋ ธ๋๋ค์ ๋ํด ์ ์๋ฅผ ๋งค๊ธด๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ์ฌ ์์ฒญ๋ Pod๋ฅผ ๋ฐฐ์นํ ํ ๋จ์ ๋ฆฌ์์ค๊ฐ ๋์ ์๋ก ๋์ ์ ์๋ฅผ ๋ฐ๋๋ค. Binding ์ ํ๋ ๋ ธ๋์ Pod๋ฅผ ๋ฐฐ์นํ๋ ๋จ๊ณ....