๐ŸŒฑ ์ธํ”„๋Ÿฐ/โš“ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์–ด๋‚˜๋” ํด๋ž˜์Šค (์ง€์ƒํŽธ)

[๋ฏธ์…˜1] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„ค์น˜ ๊ตฌ๊ฐ„๋ณ„ ์ƒํƒœ ํ™•์ธ

mallin 2025. 5. 28. 16:19

โš“ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์–ด๋‚˜๋” ํด๋ž˜์Šค (์ง€์ƒํŽธ) - Spring 1, 2 ์„ ๋“ฃ๊ณ  ์ž‘์„ฑํ•˜๋Š” ๋ฏธ์…˜ ์ž…๋‹ˆ๋‹ค.

 

[4] Rocky Linux ๊ธฐ๋ณธ ์„ค์ •

ํƒ€์ž„์กด ์„ค์ • ํ™•์ธ (script ์ ์šฉ ๋ช…๋ น : timedatectl set-timezone Asia/Seoul)

timedatectl

 

 

[5] kubeadm ์„ค์น˜ ์ „ ์‚ฌ์ „์ž‘์—…

๋ฐฉํ™”๋ฒฝ ํ•ด์ œ ํ™•์ธ (script ์ ์šฉ ๋ช…๋ น : systemctl stop firewalld && systemctl disable firewalld)

# ๋ฐฉํ™”๋ฒฝ ์ƒํƒœ ํ™•์ธ ๋ช…๋ น์–ด
systemctl status firewalld

 

→ disabled ๋กœ ๋ฐฉํ™”๋ฒฝ์ด ํ•ด์ œ๋˜์–ด ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

์Šค์™‘ ๋น„ํ™œ์„ฑํ™” ํ™•์ธ (script ์ ์šฉ ๋ช…๋ น : swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab)

free

  Swap ํ• ๋‹น๋œ ์ž์›์ด 0 ์œผ๋กœ ๋น„ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ์Œ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

cat /etc/fstab | grep swap

# swap ์— ๋Œ€ํ•ด์„œ ์ฃผ์„์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด ์žˆ์Œ

 

[6] ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„ ์„ค์น˜

[6-1] ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„ ์„ค์น˜ ์ „ ์‚ฌ์ „์ž‘์—…

iptables ์„ธํŒ…

# ์„ค์ • ์„ธํŒ… ํ™•์ธ
# ๋ถ€ํŒ… ์‹œ ๋กœ๋“œํ•  ์ปค๋„ ๋ชจ๋“ˆ ๋ชฉ๋ก์„ ์ง€์ •ํ•˜๋Š” ํŒŒ์ผ
cat /etc/modules-load.d/k8s.conf
# ์‹œ์Šคํ…œ ์ปค๋„ ํŒŒ๋ผ๋ฏธํ„ฐ(sysctl)๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ
cat /etc/sysctl.d/k8s.conf

# ๋ชจ๋“ˆ ์ ์ œ ํ™•์ธ
lsmod | grep overlay
lsmod | grep br_netfilter

 

 

[6-2] ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„ (containerd ์„ค์น˜)

Kubernetes Docs, Containerd Release

 

[6-2-1] containerd ํŒจํ‚ค์ง€ ์„ค์น˜ (option2)

Containerd Docs

 

[6-2-1-1] docker engine (containerd.io)๋งŒ ์„ค์น˜

docker repo ์„ค์ • ํ™•์ธ (script ์ ์šฉ ๋ช…๋ น : yum install -y yum-utils, yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo)

yum repolist enabled

→ docker-ce-stable : Docker CE Stable - x86_64 

 

containerd ์„ค์น˜ ํ™•์ธ (script ์ ์šฉ ๋ช…๋ น : yum install -y containerd.io-1.6.21-3.1.el8)

systemctl status containerd

→ Active : active (running) ์œผ๋กœ ํ˜„์žฌ containerd ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์Œ

 

์„ค์น˜ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „์˜ containerd.io ๋ฆฌ์ŠคํŠธ ํ™•์ธ

yum list containerd.io --showduplicates | sort -r

 

 

[6-3] ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„ (CRI ํ™œ์„ฑํ™”)

cri ํ™œ์„ฑํ™” ์„ค์ • ํ™•์ธ (์Šคํฌ๋ฆฝํŠธ ์ ์šฉ ๋ช…๋ น : containerd config default > /etc/containerd/config.toml; sed -i 's/ SystemdCgroup = false/ SystemdCgroup = true/' /etc/containerd/config.toml)

cat /etc/containerd/config.toml

 

kubelet cgroup ํ™•์ธ (configmap)

kubectl get -n kube-system cm kubelet-config -o yaml

 

kubelet cgroup ํ™•์ธ (kubelet)

cat /var/lib/kubelet/config.yaml

→ cgroupDriver ๊ฐ€ systemd ๋กœ ์ž˜ ์„ค์ •๋จ

 

[7] kubeadm ์„ค์น˜

repo ์„ค์ • ํ™•์ธ 

yum repolist enabled

→ repo ์ค‘ kubernetes

 

SELinux ์„ค์ • ํ™•์ธ

cat /etc/selinux/config

 

sestatus

 

kubelet, kubeadm, kubectl ํŒจํ‚ค์ง€ ์„ค์น˜

kubeadm version
kubectl version

→ kubeadm ๊ณผ kubectl ๋ชจ๋‘ ๋ฒ„์ „์ด 1.27.2

 

systemctl status kubelet

→ kubelet ์ƒํƒœ๊ฐ€ running ์œผ๋กœ ์ •์ƒ ๋™์ž‘

 

cat /var/lib/kubelet/config.yaml

journalctl -u kubelet | tail -10

 

์„ค์น˜ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „์˜ kubeadm ๋ฆฌ์ŠคํŠธ ํ™•์ธ

yum list --showduplicates kubeadm --disableexcludes=kubernetes

 

 

[8] kubeadm ์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ

[8-1] ํด๋Ÿฌ์Šคํ„ฐ ์ดˆ๊ธฐํ™” (Pod Network ์„ธํŒ…)

ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ํ™•์ธ

kubectl get node

→ k8s-master ์ด๋ฆ„์˜ ๋…ธ๋“œ๊ฐ€ Ready ์ƒํƒœ

 

kubectl cluster-info dump | grep -m 1 cluster-cidr

→ pod network cidr ์„ค์ • ํ™•์ธ

 

kubectl cluster-info

→ apiserver advertise address ์ ์šฉ ํ™•์ธ

 

kubectl get pods -n kube-system

→ kubernetes component pod ํ™•์ธ

 

[8-2] kubectl ์‚ฌ์šฉ ์„ค์ •

์ธ์ฆ์„œ ์„ค์ • ํ™•์ธ

cat ~/.kube/config

 

[8-3] CNI Plugin ์„ค์น˜ (calico)

calico pod ์„ค์น˜ ๋ฐ pod netwrok cidr ์ ์šฉ ํ™•์ธ

kubectl get -n calico-system pod

→ calio-system pod ๋“ค์ด ๋ชจ๋‘ Running

 

kubectl get -n calico-apiserver pod

→ calio-apiserver ์˜ pod ๋“ค๋„ ๋ชจ๋‘ Running ์œผ๋กœ ์ž˜ ์‹คํ–‰๋˜๊ณ  ์žˆ์Œ

 

kubectl get installations.operator.tigera.io default -o yaml  | grep cidr

→ Calio ์— pod network cidr ์ ์šฉ๋จ

 

[8-4] Master ์— pod ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •

Master Node ์— Taint ํ•ด์ œ ํ™•์ธ

kubectl describe nodes | grep Taints

 

→ Master ์— ์œ ์ €๊ฐ€ ๋งŒ๋“  Pod ๋ฅผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •๋จ

 

[9] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํŽธ์˜ ๊ธฐ๋Šฅ ์„ค์น˜ 

[9-1] kubectl ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ

cat ~/.bashrc

→ ์ผ๋ถ€๋งŒ ์น˜๊ณ  tab์„ ๋ˆ„๋ฅด๋ฉด ์ž๋™์™„์„ฑ ๋˜๋„๋ก ์„ค์ •๋จ

 

[9-2] Dashboard ์„ค์น˜

kubectl get pod -n kubernetes-dashboard

→ kubernetes-dashboard pod ๊ฐ€ ๋– ์žˆ์Œ

 

[9-3] Metrics Server ์„ค์น˜

kubectl get pod -n kube-system  | grep metrics

→ metric ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ณ , ๋Œ€์‹œ๋ณด๋“œ์—์„œ CPU ๋ž‘ ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก pod ๊ฐ€ ์‹คํ–‰๋˜์–ด ์žˆ๋‹ค.

 

kubectl top pod -A

→ ๋– ์žˆ๋Š” pod ๋“ค