๐ฏ ๋ชฉํ:
๊ฐ์๋จธ์ 3๋(Master 1๊ฐ + Worker 2๊ฐ)๋ฅผ ์ด์ฉํด์ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์ค์นํ๊ธฐ ์ํ ์ฌ์ ์ค๋น๋ฅผ ์งํํ ๊ฑฐ์ผ!
CPU 2๊ฐ, ๋ฉ๋ชจ๋ฆฌ 4GB๋ฅผ ๊ฐ์ง ๊ฐ์๋จธ์ ์ด ํ์ํด.
โ 1๏ธโฃ ํธ์คํธ ์ด๋ฆ(์ปดํจํฐ ์ด๋ฆ) ์ค์
๊ฐ ๊ฐ์๋จธ์ (์๋ฒ)์ ์ด๋ฆ์ ์ง์ ํด์ค์ผ ํด.
์๋ฒ์ ์ญํ ์ ๋ฐ๋ผ ์ด๋ฆ์ ๋ค๋ฅด๊ฒ ์ค์ ํด์ผ ๋์ค์ ๊ด๋ฆฌํ๊ธฐ ํธํด!
๐น ํ ์ผ
- ๋ง์คํฐ ์๋ฒ: master
- ์์ปค ์๋ฒ 1: worker01
- ์์ปค ์๋ฒ 2: worker02
๐ ์คํํ ๋ช ๋ น์ด (๊ฐ ๋ ธ๋์์ ์คํ)
vi /etc/hostname
โก ํ์ผ์ ์ด๊ณ ์๋์ฒ๋ผ ๋ณ๊ฒฝํด์ค!
master # (๋ง์คํฐ ๋
ธ๋์์๋ ์ด๋ ๊ฒ ์ค์ )
worker01 # (์ฒซ ๋ฒ์งธ ์์ปค ๋
ธ๋์์๋ ์ด๋ ๊ฒ ์ค์ )
worker02 # (๋ ๋ฒ์งธ ์์ปค ๋
ธ๋์์๋ ์ด๋ ๊ฒ ์ค์ )
๐ ์ ์ฉํ๊ธฐ (๋ชจ๋ ๋ ธ๋์์ ์คํ)
init 6 # ์์คํ
์ ์ฌ๋ถํ
ํด์ ๋ณ๊ฒฝ๋ ํธ์คํธ ์ด๋ฆ์ ์ ์ฉํจ
โ 2๏ธโฃ containerd ์ค์น (์ปจํ ์ด๋ ๋ฐํ์)
Kubernetes๋ ์ปจํ ์ด๋๋ฅผ ์คํํ๋๋ฐ, containerd๋ผ๋ ๋ฐํ์์ ์ฌ์ฉํด.
Docker๋ ์์ง๋ง, K8s์์๋ containerd๋ฅผ ๋ง์ด ์ฌ์ฉํด.
๐ ์คํํ ๋ช ๋ น์ด (๊ฐ ๋ ธ๋์์ ์คํ)
apt -y install containerd
โก -y ์ต์ ์ ์ค์นํ ๋ "Yes"๋ฅผ ์๋์ผ๋ก ์ ํํด์ฃผ๋ ๊ฑฐ์ผ.
โ 3๏ธโฃ ๊ฐ์ ๋คํธ์ํฌ ์ค์ (๋ธ๋ฆฟ์ง ๋คํธ์ํฌ ํ์ฑํ)
Kubernetes์์๋ ๋ ธ๋ ๊ฐ์ ๋คํธ์ํฌ๊ฐ ์ฐ๊ฒฐ๋์ด์ผ ํด.
์ด ์ค์ ์ ํด์ค์ผ K8s ๋คํธ์ํฌ๊ฐ ์ ๋๋ก ๋์ํด!
๐ ์คํํ ๋ช ๋ น์ด (๊ฐ ๋ ธ๋์์ ์คํ)
cat > /etc/sysctl.d/99-k8s-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
EOF
โก ์ด ์ค์ ์ด ํ์ํ ์ด์ :
- iptables=1 → ๋คํธ์ํฌ ํธ๋ํฝ์ ์ปจํธ๋กคํ ์ ์๋๋ก ์ค์
- ip6tables=1 → IPv6 ๋คํธ์ํฌ๋ ๊ด๋ฆฌํ ์ ์๋๋ก ์ค์
- ip_forward=1 → ์๋ฒ๊ฐ ๋ผ์ฐํฐ์ฒ๋ผ ๋ค๋ฅธ ๋ ธ๋๋ก ํจํท์ ์ ๋ฌํ ์ ์๋๋ก ์ค์
๐ ์ ์ค์ ์ ์ฆ์ ์ ์ฉํ๊ธฐ
sysctl --system
โ 4๏ธโฃ ์ถ๊ฐ ๋คํธ์ํฌ ๋ชจ๋ ๋ก๋
์ปจํ ์ด๋ ๋คํธ์ํฌ๊ฐ ์ ๋๋ก ๋์ํ๋ ค๋ฉด ์ถ๊ฐ์ ์ธ ๋คํธ์ํฌ ๋ชจ๋์ ํ์ฑํํด์ผ ํด.
๐ ์คํํ ๋ช ๋ น์ด (๊ฐ ๋ ธ๋์์ ์คํ)
modprobe overlay; modprobe br_netfilter
โก ์ด ์ค์ ์ด ํ์ํ ์ด์ :
- overlay → ์ปจํ ์ด๋์ ํ์ผ ์์คํ ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ
- br_netfilter → ๋ธ๋ฆฟ์ง ๋คํธ์ํฌ๋ฅผ ํตํด ํธ๋ํฝ์ ๊ด๋ฆฌ
๐ ์์คํ ์ด ์ฌ๋ถํ ํด๋ ์ค์ ์ด ์ ์ง๋๋๋ก ํ๊ธฐ
echo -e overlay\\\\nbr_netfilter > /etc/modules-load.d/k8s.conf
โ 5๏ธโฃ iptables ๋ฒ์ ๋ง์ถ๊ธฐ
Kubernetes๋ ํน์ iptables ๋ฒ์ ์ ์๊ตฌํ๊ธฐ ๋๋ฌธ์ ๋ง์ถฐ์ค์ผ ํด.
๐ ์คํํ ๋ช ๋ น์ด (๊ฐ ๋ ธ๋์์ ์คํ)
update-alternatives --config iptables
โก ์ฌ๋ฌ ๊ฐ์ ๋ฒ์ ์ด ๋์ค๋ฉด iptables-legacy๋ฅผ ์ ํํด์ผ ํด!
โ 6๏ธโฃ Swap ๋๊ธฐ (๋ฉ๋ชจ๋ฆฌ ๊ฐ์ํ ๋นํ์ฑํ)
Kubernetes๋ ์ฑ๋ฅ์ ์ํด swap(๊ฐ์ ๋ฉ๋ชจ๋ฆฌ)์ ์ฌ์ฉํ๋ฉด ์ ๋ผ.
๊ทธ๋์ Swap์ ๊บผ์ผ ํด.
๐ ์คํํ ๋ช ๋ น์ด (๊ฐ ๋ ธ๋์์ ์คํ)
swapoff -a
โก ํ์ฌ ํ์ฑํ๋ swap์ ๊บผ์ฃผ๋ ๋ช ๋ น์ด์ผ.
๐ ์ฌ๋ถํ ํด๋ swap์ด ๋ค์ ์ผ์ง์ง ์๋๋ก ์ค์ ํ๊ธฐ
vi /etc/fstab
โก ํ์ผ์ ์ด์ด์ ์๋ ์ค์ ์ฐพ์์ ์ฃผ์ ์ฒ๋ฆฌํด์ค!
#/swap.img none swap sw 0 0
โก #์ ์ถ๊ฐํ๋ฉด, ์ฌ๋ถํ ํด๋ swap์ด ๋ค์ ์ผ์ง์ง ์์.
โ 7๏ธโฃ GRUB ์ค์ (๋ถํ ์ cgroup ์ค์ )
Kubernetes๋ cgroup(๋ฆฌ์์ค ๊ด๋ฆฌ ์์คํ )์ด ํ์ํด.
Ubuntu 22.04์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก cgroup v2๊ฐ ํ์ฑํ๋์ด ์๋๋ฐ,
Kubernetes๋ cgroup v1์ ํ์๋ก ํด!
๊ทธ๋์ ๋ถํ ํ ๋ cgroup v1์ ์ฌ์ฉํ ์ ์๋๋ก ์ค์ ์ ๋ณ๊ฒฝํด์ผ ํด.
๐ ์คํํ ๋ช ๋ น์ด (๊ฐ ๋ ธ๋์์ ์คํ)
vi /etc/default/grub
โก ํ์ผ์ ์ด์ด์ GRUB_CMDLINE_LINUX ์ค์ ์ ์๋์ฒ๋ผ ์์ ํด์ค.
GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=0"
๐ ์ค์ ์ ์ ์ฉํ๊ธฐ ์ํด GRUB ์ ๋ฐ์ดํธ
bash
๋ณต์ฌํธ์ง
update-grub
โก ์ด ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด, ๋ถํ ์ค์ ์ด ์ ๋ฐ์ดํธ ๋ผ.
๐ฏ ์ ๋ฆฌ (ํ ์ค ์์ฝ)
1๏ธโฃ ํธ์คํธ ์ด๋ฆ ๋ณ๊ฒฝ → master, worker01, worker02
2๏ธโฃ containerd ์ค์น → ์ปจํ ์ด๋ ๋ฐํ์ ์ค์น
3๏ธโฃ ๋คํธ์ํฌ ์ค์ → ๋ธ๋ฆฟ์ง ๋คํธ์ํฌ & iptables ์ค์
4๏ธโฃ Swap ๋๊ธฐ → Kubernetes๋ swap์ ์ฌ์ฉํ์ง ์์
5๏ธโฃ GRUB ์ค์ ๋ณ๊ฒฝ → cgroup v1 ํ์ฑํ
๐ ์ด ๊ณผ์ ์ ๋ชจ๋ ๋ ธ๋์์ ์คํํด์ผ ํด! (๋ง์คํฐ & ์์ปค ๋ ๋ค) ๐
'Programming > DevOps' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DevOps] Docker์ Container(feat. ๋์ปค์ ๊ฐ์๋จธ์ ์ ์ฐจ์ด) (0) | 2025.03.10 |
---|