Linux (23) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [AWS] k8s์์ LoadBalancer ๊ตฌ์ฑํ๊ธฐ (classic, nlb) k8s์์ LoadBalancer ๊ตฌ์ฑํ๊ธฐ (classic, nlb) ๐ก k83์์ ๋ก๋๋ฐธ๋ฐ์ ์ฌ์ฉํ๊ธฐ on-premise : metallb๋ฅผ ์ฌ์ฉํ์ฌ LB๋ฅผ ๊ตฌ์ถํด๋๋ค. aws : ์์ฒด์ ์ผ๋ก LB ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ์์ผ๋ฏ๋ก yaml ํ์ผ ๋ด์์ ์๋น์ค ํ์ ์ LoadBalancer๋ฅผ ์ง์ ํ๋ฉด ์๋์ผ๋ก LB api์ ์ฐ๊ฒฐํ์ฌ LB๋ฅผ ์์ฑํด์ค๋ค. alb : L7 LoadBalancer → ingress๋ฅผ ์์ฑํด์ค๋ค. nlb : L4 LoadBalancer classic lb ← Haproxy๋ฅผ ์ด์ฉํ์ฌ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ L4, L7์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. โ๏ธ EKS์์ ๋ณ๋ค๋ฅธ ์ต์ ์์ด LB ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ฉด Classic LB๊ฐ ๋ฐฐํฌ๋๋ค. ๋ง์ฝ, nlb & alb๋ฅผ ์ ํํ๊ณ ์ถ๋ค๋ฉด ์ถ๊ฐ ์ต์ ์ metadata.. [AWS] Amazon ECR - ํ๋ผ์ด๋น ๋ฆฌํฌ์งํ ๋ฆฌ ์์ฑํ๊ธฐ Amazon ECR - ํ๋ผ์ด๋น ๋ฆฌํฌ์งํ ๋ฆฌ ์์ฑํ๊ธฐ โ eks > Amazon ECR โ ํ๋ผ์ด๋น ๋ฆฌํฌ์งํ ๋ฆฌ ์์ฑ โ aws์ ๋ก๊ทธ์ธํ๊ธฐ ์ํ ์ ๋ณด ์ถ๊ฐ rm -f ~/.docker/config.json aws ecr get-login-password --region ap-northeast-1|\\ docker login --username AWS --password-stdin \\ 533266992525.dkr.ecr.ap-northeast-1.amazonaws.com/yoon/myapp01 โ nginx ์ด๋ฏธ์ง ๋ค์ด๋ก๋ docker pull nginx โ ์ด๋ฏธ์ง push docker tag nginx:latest 533266992525.dkr.ecr.ap-northeast-1.amazonaws.com.. [AWS] ELK๋ก ํด๋ฌ์คํฐ ๊ตฌ์ฑํ๊ธฐ ELK๋ก ํด๋ฌ์คํฐ ๊ตฌ์ฑํ๊ธฐ ๐ก EKS ๊ตฌ์ฑ์ ์ํด ํ์ํ ๋ด์ฉ - ํด๋ฌ์คํฐ ์ด๋ฆ - ๋ฒ์ - eksClusterRole - VPC/subnet - ๋ณด์๊ทธ๋ฃน ๐ก CloudFormation ๊ตฌ์ฑ๋ค์ ํ๋์ฉ ์ ํํ์ฌ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์๊ฐ, ์ฌ์ฌ์ฉ์ฑ ๋ฉด์์ ๋ถํธํจ์ด ๋ง๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ "์ ์ธ์ ์ธ์ด"๋ฅผ ์ฌ์ฉํ์ฌ IaC ๋๊ตฌ๋ฅผ ํตํด ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. ๐ก eksctl eks ๊ตฌ์ฑ์ ๊ฐ๋จํ ํ ์ ์๋ ๋๊ตฌ eksctl์ ์ด์ฉํ์ฌ eks ๊ตฌ์ฑ์ ์งํํ๊ฒ ๋๋ฉด cloudformation์ด ์๋์ผ๋ก ์์ฑ๋๋ค. ๊ฐ ์๋น์ค์ ์ฐ๊ฒฐํ์ฌ ํ์ํ ์์์ ์์ฑํ๊ณ ์๋ก ์ฐ๊ฒฐํ๋ค. โ ์ญํ ์์ฑ • IAM > ์ญํ > ์ญํ ์์ฑ โ ์ก์ธ์ค ํค ๋ง๋ค๊ธฐ • ์ค๋ฅธ์ชฝ ์ ๋๋ค์ ํด๋ฆญ ํ ๋ณด์ ์๊ฒฉ ์ฆ๋ช • ์ก์ธ์ค ํค ๋ง.. [Jenkins] Pipeline์ผ๋ก ์น ๋ฐฐํฌํ๊ธฐ (Jenkinsfile) Pipeline์ผ๋ก ์น ๋ฐฐํฌํ๊ธฐ (Jenkinsfile) ๐ก ์ ํจ์ค์์ ์๋ก์ด ์์ดํ ์์ฑํ๊ธฐ โ โ ์๋ก์ด Item โ๏ธ ์ ํจ์ค์์ ์์ดํ ์ด๋? ์๋กญ๊ฒ ์ ์ํ ์์ ์ ๋งํ๋ค. ๋ชจ๋ ์์ ์ ์ ์์ ์์๋ฅผ ๋ชจ์๋ ์ ์ฒด ์์ ์ ํ๋ก์ ํธ๋ผ๊ณ ํ๋ฉฐ, ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ์์๋ Freestyle, Pipeline๋ฑ์ด ์๋ค. ์ด๋ ๊ฒ ํ๋ก์ ํธ๋ฅผ ์ ์ํ๊ณ ์์ฑํ๋ ๊ฒ์ ์์ดํ ์ด๋ผ๊ณ ํ๋ค. ๐ก Pipeline โ๏ธ Pipeline์ด๋? ์ ํจ์ค์์ ์ง์ํ๋ ๊ณ ์ ์ Pipeline ๋ฌธ๋ฒ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด ์์ ์ ์ ์ํ๋ ํ๋ก์ ํธ์ด๋ค. ๊นํ๋ธ์ ๊ฐ์ ์ฝ๋ ์ ์ฅ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์ฌ๋ฆด ๋ Pipeline ์ฝ๋๋ก ์์ฑํ ํ์ผ์ ํจ๊ป ์ฌ๋ ค๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ๋ฐฐํฌ๋ฅผ ํจ๊ป ๊ด๋ฆฌํ ์ ์์ด ๊ด๋ฆฌ ํธ๋ฆฌ์ฑ์ด ๋๋ค. Pipeli.. [Kubernetes] ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์์ Canary Update ์ค์ต ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์์ Canary Update ์ค์ต ๐ก Canary Update โ๏ธ ๋ณ๋์ ์ค๋ธ์ ํธ๋ฅผ ์ฌ์ฉํ์ง๋ ์๋๋ค.์ ์ฒด ๋น์จ์์ ์ ๊ท Pod๋ 5% ์ ๋๋ก ๋ฐฐํฌํ๊ณ ๋น์จ์ ์ ์ ๋๋ ค๊ฐ๋ค. ์ต์ข ์ ์ผ๋ก ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ท Pod๋ก ๋ฐ๊พผ๋ค. โ๏ธ canary๋ง ์ ์ฉํ๊ฒ ๋๋ฉด ์ ๊ท Pod๋ฅผ ๋๊ตฌ์๊ฒ ๋ฐฐํฌํ ๊ฒ์ธ๊ฐ ๊ฒฐ์ ํ ์๋ ์๋ค. ๋ง์ฝ ํน์ ์ฌ์ฉ์์๊ฒ ์ ๊ท Pod๋ก ์ ์ ๋๋๋ก ํ๊ณ ์ถ๋ค๋ฉด istio๋ฅผ ์ ์ฉํด์ฃผ์ด์ผ ํ๋ค. (istio๋ service mesh๋ฅผ ์ ๊ณตํ๋ค.) โ๏ธ ํ ์คํธ๋ฅผ ์ํ์ฌ ์์์ Pod๋ฅผ ๋ฏธ๋ฆฌ ๋ฐฐํฌํด ๋ณธ ๋ค, ์ฑ๋ฅ ํ ์คํธ/๋ชจ๋ํฐ๋ง์ ๊ฑฐ์ณ ์์ ์ฑ์ด ๊ฒ์ฆ๋๋ฉด ์๋ก์ด Pod๋ก ์ ๊ทธ๋ ์ด๋ํ๋ค. โ๏ธ ํ ์คํธ์ฉ Pod๋ฅผ ๋ฏธ๋ฆฌ ๋ฐฐํฌํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ์ํ๋ฅผ ๋ฏธ๋ฆฌ ์ ๊ฒํด ๋ณผ ์ ์๋ค. .. [Jenkins] CentOS8์์ Jenkins ์ฌ์ฉํ๊ธฐ CentOS8์์ Jenkins ์ฌ์ฉํ๊ธฐ ๐ก ํ์ดํ๋ผ์ธ์ด๋? ์ปจํ ์ด๋๋ก ๊ตฌ๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๊ณผ์ ๊นํ๋ธ ๋ฑ ์ ์ฅ์์ ์ ์ฅํด ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ค ์ฝ๋๋ฅผ ๋ด๋ ค๋ฐ์ ๋์ปค ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ก ๋น๋ ๋น๋ํ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ฟ ๋ฒ๋คํฐ์ค์์ ์ฌ์ฉํ ์ ์๋๋ก ๋ ์ง์คํธ๋ฆฌ์ ๋ฑ๋ก ๋ ์ง์คํธ๋ฆฌ์ ๋ฑ๋ก๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค ์ค๋ธ์ ํธ ์์ฑ ์์ฑํ ์ค๋ธ์ ํธ๋ฅผ ์ธ๋ถ์์ ์ ์ํ ์ ์๋๋ก ์๋น์ค ํํ๋ก ๋ ธ์ถ ๋๋ถ๋ถ IT ์์ ์ ํ์ดํ๋ผ์ธ์ ํตํด ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ ๋ค. ๊ธฐ์กด์๋ ํ์ดํ๋ผ์ธ์ ์ฌ๋์ด ํ๋ํ๋ ์์์ ์ผ๋ก ์งํํ์ง๋ง, ์ด์ ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ์๋ํํ ์ ์๋ค. ๐ก CI/CD ์๋ํ๋ ํฌ๊ฒ ์ง์์ ํตํฉ(CI), ์ง์์ ๋ฐฐํฌ(CD) ๋ ๊ฐ์ง๋ก ์ ์ CI/CD๋ ์ค๋ฌด์ ์ธ ํ๊ฒฝ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ณ์ ์ถ์ ํด ์ข ๋ ์์ .. [Docker] Docker swarm์ผ๋ก ์๋น์ค ๋ฐฐํฌํ๊ธฐ Docker swarm์ผ๋ก ์๋น์ค ๋ฐฐํฌํ๊ธฐ ๐ ์๋น์ค ์์ฑํ๊ธฐ docker service create \ --name testservice \ --constraint node.role==worker \ --replicas 2 \ -p 8001:80 \ nginx โ๏ธ docker service create : ๋์ปค ์ค์์์ ์๋น์ค๋ฅผ ์์ฑ. โ๏ธ --name testservice : ์๋น์ค์ ์ด๋ฆ์ ์ง์ . โ๏ธ --constraint node.role==worker : ์ ์ฝ ์กฐ๊ฑด์ผ๋ก worker๋ ธ๋์์๋ง ๋์ํ๋๋ก. โ๏ธ --replicas 2 : ์๋น์ค์ ๋ณต์ ๋ณธ์ 2๊ฐ ์์ฑ. โ๏ธ -p 8001:80 : ํธ์คํธ์ 8001 ํฌํธ์ ์๋น์ค ๋ด๋ถ์ 80 ํฌํธ์ ๋งคํ. โ๏ธ nginx : ๋ฐฐํฌํ ์๋น์ค์ ์ด๋ฏธ์ง.. [Docker] Docker Swarm์ผ๋ก ํด๋ฌ์คํฐ ๊ตฌ์ฑํ๊ธฐ Docker Swarm์ผ๋ก ํด๋ฌ์คํฐ ๊ตฌ์ฑํ๊ธฐ ๐ Docker swarm mode ๋ฌผ๋ฆฌ์ ์๋ฒ ํด๋ฌ์คํฐ๋ฅผ ํตํด ์ปจํ ์ด๋๋ฅผ ํ์ฅํ๊ธฐ ์ํ ๋์ปค ๊ณ ์ ์ ํ๋ซํผ. ์ฌ๋ฌ ์๋ฒ์ ๊ฑธ๋ ค ๊ฐ๋จํ ๋ถ์ฐ ์ํฌ๋ก๋๋ฅผ ๊ตฌํํ ์ ์๋ค. ๋์ผํ ์ปจํ ์ด๋๋ฅผ ๊ณต์ ํ๋ ์ฌ๋ฌ ํด๋ฌ์คํฐ ๋ด์ ๋ ธ๋์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํ๊ฒ ์คํํ ์ ์๋๋ก ํ๋ ๋์ปค ์์ฒด ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ. โ๏ธ manager ๋ ธ๋ (control, master node) ํด๋ฌ์คํฐ ์ ์ฒด๋ฅผ ์ค์ผ์คํธ๋ ์ด์ . ๋คํธ์ํฌ๋ ๋ณผ๋ฅจ, ์ปจํ ์ด๋ ๋ฑ. ๋ง์ฝ, manage๊ฐ ํ ๋์ธ ๊ฒฝ์ฐ ํด๋น ๋ ธ๋๊ฐ down๋๋ฉด ์ ์ฒด ๊ด๋ฆฌ๋ ๋ถ๊ฐ๋ฅํ๋ค. ์ต์ํ ๋ ๋ ์ด์์ manage ๋ฐฐ์น๊ฐ ํ์. ๋ฐฉ๋ฒ 1. original manager (์ต์ด ํ ํฐ์ ๋ฐํํ ๋ ธ๋) ํ ํฐ์ ๋ฐํํ๋ฉด wo.. [Docker] Attachable Overlay Network์ ํ์ฉํ ๋์ปค ์คํ ์คํ Attachable Overlay Network์ ํ์ฉํ ๋์ปค ์คํ ์คํ ๐ Docker Stack์ด๋? ๋์ปค์ ์๋น์ค ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์๋น์ค๋ฅผ ํจ๊ป ์ ์ํ๊ณ ์คํํ๋ ๋๊ตฌ. ์ฃผ๋ก ์ฌ๋ฌ ์๋น์ค๋ฅผ ํตํฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ณ , ์ด๋ฅผ ๋์์ ์คํํ๊ณ ๊ด๋ฆฌํ๋ค. yml ํ์ผ์ ์ ์๋ ์๋น์ค, ๋คํธ์ํฌ, ๋ณผ๋ฅจ ๋ฑ์ ์ฌ์ฉํด ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌํ๋ค. ๐ ๋คํธ์ํฌ ์์ฑํ๊ธฐ ์๋น์ค๋ค ๊ฐ์ ํต์ ์ ์ ์ํ๊ธฐ ์ํ myweb ๋คํธ์ํฌ ์์ฑ docker network create --driver overlay --attachable myweb overlay ๋๋ผ์ด๋ฒ๋ ์ฌ๋ฌ ํธ์คํธ์ ๊ฑธ์ณ ๋์ปค ์ปจํ ์ด๋ ๊ฐ ํต์ ํ ์ ์๋ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์ ๊ณตํ๋ค. --attachable ์ต์ ์ ์์ฑ๋ ๋คํธ์ํฌ์ ์ผ๋ฐ์ .. [Docker] Dockerfile ๋ช ๋ น์ด Dockerfile ๋ช ๋ น์ด ๐ Dockerfile์ด๋? ์๋ก์ด ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋๋ ๋จผ์ ๊ธฐ๋ฐ ์ด๋ฏธ์ง๋ฅผ ์ง์ ํด์ผ ํ๋ค. ๊ธฐ๋ณธ ์ด๋ฏธ์ง์ ๋ํด์ ์ถ๊ฐํ ๋ชจ๋ ์ค์ ๋ค์ Dockerfile์ด๋ผ๋ DSL ํ์ผ์ ์์ฑํ์ฌ ๋น๋ํ๋ค. ํจ์จ์ ์ธ Dockerfile ์์ฑ์ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋ ์๊ฐ, ์ด๋ฏธ์ง ํฌ๊ธฐ, ์ฌ์ฌ์ฉ์ฑ, ๋ณด์, ์ ์ง๋ณด์์ฑ ๋ฑ์ ๊ณ ๋ คํด์ผ ํ๋ค. ๐ ๊ณ ๋ ค์ฌํญ โ ๊ฒฝ๋์ ์ปจํ ์ด๋ ์๋น์ค ์ ๊ณต ๋ฒ ์ด์ค ์ด๋ฏธ์ง์ ํ์ํ ํ๋ก๊ทธ๋จ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์คํ ํ์ผ์ ํฌํจ์ํฌ ๋, ๋ณต์ก์ฑ๊ณผ ์์กด์ฑ์ ๋ฌธ์ ๋ฅผ ํผํ๊ณ ๋น ๋ฅธ ์ปจํ ์ด๋ ๋ฐฐํฌ๋ฅผ ๋ชฉ์ ์ผ๋ก. โ Dockerfile์ ๋ด๊ธฐ๋ ๋ ์ด์ด ์ต์ํ ๋ ์ด์ด ์๊ฐ ๋ง์์๋ก ์ด๋ฏธ์ง ์์ฑ ๋น๋ ์๊ฐ์ ๊ธธ์ด์ง๊ณ , ์ฉ๋๋ ์ปค์ง๊ธฐ ๋๋ฌธ์ ๋ ์ด์ด ์๋ฅผ ์ค์ฌ์ผ ํ๋ค. โ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ .. ์ด์ 1 2 3 ๋ค์