์์ ๋ถํฐ ๋์ปค ์ค์์ด๋ ๋ง์ ๋ง์ด ๋ฃ๊ธด ํ์ง๋ง k8s๊ฐ ์๋๋ฐ ๊ตณ์ด ์ด๊ฑธ ๊ณต๋ถํด์ผํ ๊น? ๋ผ๋ ์๊ฐ์ ํ์๋ค. ์๋๋ฉด ์์ฆ ๋๋ถ๋ถ ์๋น์ค๋ k8s๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ด์๋๋ฐ. ์์งํ k8s๋ฅผ ์ฌ์ฉํด๋ณผ ์๋ก ๋ด๊ฐ api ๊ฐ๋ฐ์์ธ์ง ์ธํ๋ผ ๊ฐ๋ฐ์๊ฐ ๋๋๊ฒ์ธ์ง ํท๊ฐ๋ฆด ์ ๋๋ก ๋ฌ๋์ปค๋ธ๊ฐ ๋๊ณ ๋๋ฌด ๋ง์ ๊ธฐ๋ฅ๋ค์ด ์์๋ค.
๊ทธ๋์ ๋์ปค ์ค์์ด ๋์จ์ง๋ ๊ฝค ๋๊ณ ๋ด ํ ์ด ํ๋ก์ ํธ๋ฅผ ๋์ด์ ํ๋์ ์๋ฒ๋ก๋ง ๊ด๋ฆฌํ๊ณ ์ถ์ง ์์ ๋์ปค ์ค์์ผ๋ก ์ธํ ํด๋ณด๋ ค๊ณ ํ๋ค. ์ฐธ๊ณ ๋ก k8s๋ฅผ ๋ณด๊ณ ๊ฒ์ ๋จน์๋ ์ฌ๋์ด๋ผ๋ฉด ๋์ปค ์ค์์ ๋ณด๋ฉด ์์ฃผ ์ฝ๋ค๊ณ ์๊ฐํ ๊ฒ์ด๋ค. Docker๊ฐ ๊ธฐ๋ณธ ๋ฒ ์ด์ค์ด๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด์ ์ฌ์ฉํ๋ ์ฌ๋์ด๋ผ๋ฉด ๋๋ฌด ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
๊ฐ์ฅ ํฐ ์ฅ์ ์ธ๋ฐ Docker Swarm์ Docker๊ฐ ์ค์น๋ ํ๊ฒฝ์์ ๋ฐ๋ก ์ค์น ํ์ง ์์๋ ๋๋ค.
Docker ์ธํ
์ด ์๋ฃ๋์ด์๋ค ๊ฐ์ ํ์ ์งํํ๊ฒ ๋ค!
๋จผ์ docker swarm init
์ผ๋ก ํด๋น ๋จธ์ ์ด docker swarm์ ํ์ฑํ ํ๋ค๊ณ ์๋ ค์ผ ํ๋ค.
๋ค์๊ณผ ๊ฐ์ด token์ด ๋ฐ๊ธ๋์ด์ง๋๋ฐ ํด๋น ํ ํฐ๊ณผ ip๊ฐ์ผ๋ก ๋ค๋ฅธ ๋จธ์ (๋๋ค๋ฅธ ์๋ฒ)์์ swarm์ joinํ ์ ์๋ค. ํด๋น ๋ฐฉ๋ฒ์ ๋ด๊ฐ ์งํํ๋ ค๋ ๋ฐฉ์์ ์๋์ฌ์ ํ์ํ ๋ถ๋ค์ ๊ณต์๋ฌธ์์์ ํ์ธ ํ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ swarm์ด ์ ์์ ์ธ ์ํ์ธ์ง ํ์ธํ๊ณ ์ถ๋ค๋ฉด docker info
๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด ๋๋ค.
Swarm ๊ฐ์ด active๋ผ๋ฉด ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ๊ฒ์ด๋ค.
๊ทธ ๋ค์ swarm์์ service๋ฅผ ์์ฑํด์ฃผ์
docker service create --replicas 1 --name hello alpine ping docker.com
๋๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณต์๋ฌธ์์์ ์๋ดํ๋ ๋๋ก ์๋น์ค๋ฅผ ์์ฑํด์ฃผ์๋ค.
docker service create --replicas 1 --name <์๋น์ค์ด๋ฆ> <์ด๋ฏธ์ง> <์คํ์ ๋ช
๋ น์ด>
--replicas : ์๋ฒ์ scale
--name : ์์ฑ๋ ์๋น์ค์ ์ด๋ฆ
๋ค์๊ณผ ๊ฐ์ด ์๋น์ค๋ฅผ ์์ฑํ๋ฉด ๋๋ค.
์ค์ผ์คํธ๋ ์ด์ ํด์ ์ฌ์ฉํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๊ฐ ์ค์ผ์ผ ์ธ-์์์ ๊ฐ๋จํ๊ฒ ์ปจํธ๋กคํ ์ ์์ด์์ผ ๊ฒ์ด๋ค.
docker service scale hello=3
๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ๋ฉด ์ฐ๋ฆฌ๊ฐ ์์์ ์์ฑํ๋ ์๋น์ค์ ์๋ฒ๊ฐ 3๋๋ก ์ฆ๊ฐํ๋ค. ๋ก๋๋ฐธ๋ฐ์ฑ๊น์ง ํจ๊ป ํด์ค๋ค.
๊ทธ ์ธ์๋ api gateway ์๋ฒ ์ธํ , config ์ธํ ๊ณผ ๋ชจ๋ํฐ๋ง๊ณผ ๋ก๊น ๋๊ตฌ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ ๋ฑ k8s๋ ๋น๊ตํด์๋ ๋ค์ง์ง ์์ ์ธํ ๋ค์ด ์ ๋ถ ์ฌ์ฉํ ์ ์๋๋ฐ docker๋ง ์ค์น๋์ด ์์ผ๋ฉด ์์ ์ด ์ํ๋ ์ธํ ์ผ๋ก ์์ ๋กญ๊ฒ ํ ์ ์์ด์ ๊ฐ๋จํ ํ ์ดํ๋ก์ ํธ๋ ์ค์ผ์คํธ๋ ์ด์ ํด์ ๋ํ ์ดํด๋ฅผ ํด๋ณด๋ ์ฉ๋๋ก ์ฌ์ฉํด๋ณด๋ฉด ์ข์๊ฒ ๊ฐ๋ค.
๋ํ ์์ฆ aws๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ docker swarm์ผ๋ก ์๋ฒ ์ธํ ํ๋ ๊ณณ๋ ์๊ธฐ๊ณ ์์ผ๋ ๊ทธ๋ฐ์ชฝ์ผ๋ก ์ดํดํด๋๋ ๊ฒ๋ ์ข์๊ฒ ๊ฐ๊ณ !
docker swarm์ ์ฌ์ฉํ์ฌ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ๊ตฌ์ฑํ๋ ๊ตฌ์กฐ๋ฅผ ์๊ฐํด๋ดค๋ค.
docker compose๋ฅผ ํตํด ์ด๋ฏธ์ง ์์ฑ -> ์ด๋ฏธ์ง hub๋ก ํธ์ -> docker swarm์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ํตํด service ์์ฑ
docker swarm์์ image๋ง update