쿠버네티스 설치하실 정도면 어느 정도는 기본기가 있으신 분이라고 가정하고 그냥 설명하겠습니다.
⭐Virtualbox에 Rocky Linux 설치
다른 블로그의 글을 참조하시길 바랍니다.
https://mainia.tistory.com/2379
🔼버추얼박스(VirtualBox) 이용해서 우분투(Ubuntu) 설치하기
위 글에 따르면 버추얼박스 가상머신(VM)을 생성할 때 디스크 용량을 넉넉하게 잡아주는 게 좋다고 합니다.
50GB~100GB 정도로 설정해줍니다.
⭐네트워크 설정
저는 호스트 아이피 대역이 192.168.0.0/24라서,
게스트 아이피는 호스트 아이피 대역 내인 192.168.0.10과 20으로 설정했습니다.
💧버추얼박스 자체 네트워크 설정


[NAT Networks]
Name : NatNetwork
IP Prefix : 192.168.0.0/24
Enable DHCP
💧Rocky Linux가 설치된 가상머신(VM) 설정

[어댑터 1]
NAT 네트워크
이름 : NatNetwork
NAT Networks 대신에 ‘어댑터에 브리지’ 옵션을 선택해줘도 됩니다.
💧Rocky Linux 내부의 IP 설정

IPv4 Method : Manual(수동)
IP : 192.168.0.10
SM : 255.255.255.0
GW : 192.168.0.1
DNS : 8.8.8.8
⭐호스트 설정
sudo su
cat <<EOF> /etc/hosts
192.168.0.10 master
192.168.0.20 worker
EOF
hostnamectl set-hostname master
재부팅합니다.
⭐Swap & SELinux & 방화벽 설정
sudo su
sudo swapoff -a && sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo setenforce 0
sudo sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux
sudo systemctl disable firewalld
sudo systemctl stop firewalld
⭐Docker 설치
https://docs.docker.com/engine/install/centos/
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
systemctl enable docker
systemctl start docker
⭐컨테이너 런타임 설정
https://kubernetes.io/docs/setup/production-environment/container-runtimes/
sudo su
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
⭐쿠버네티스 도구 설치
https://pwittrock.github.io/docs/setup/independent/install-kubeadm/
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm
systemctl enable kubelet && systemctl start kubelet
shutdown now
⭐master 노드 복제
master node VM이 종료되면 master node VM을 복제합니다.
복제할 때 이름은 worker로 해줍니다.
⭐worker 노드 IP, 호스트명 설정

worker node VM을 실행합니다.
IPv4 Method : Manual
IP : 192.168.0.20
SM : 255.255.255.0
GW : 192.168.0.1
DNS : 8.8.8.8
사실 그냥 IP 끝자리만 바꿔준 겁니다. master node와 중복되면 안되니까요.
마찬가지로 호스트명도 중복되면 안 되므로 터미널에서 다음 명령어를 실행해줍니다.
hostnamectl set-hostname worker
그리고 재부팅합니다.
⭐Kubernetes Cluster 설정
💧kubeadmin init
master node VM을 실행합니다.
sudo su
sudo kubeadm init --control-plane-endpoint=master
시간이 오래 걸립니다. 멈춘 거 아니에요ㅋㅋ

🔼귀차니즘 때문에 Ubuntu Kubernetes Cluster 구성 포스팅에 있던 이미지 그대로 갖다 씀(…)
다 끝나면 kubeadm join 어쩌고 하는 내용이 맨 뒤에 나오는데, 이를 복사해줍니다.
cat > token.txt 명령어를 사용해 따로 저장해주면 더욱 좋습니다.
터미널에 다음 명령어를 실행합니다.
exit
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
💧kubeadm join
이제 worker node VM으로 건너갑니다.
sudo su
그리고 터미널에 아까 복사했던 kubeadm join 어쩌고 하는 값을 그대로 붙여넣고 실행합니다.
다시 master node VM로 건너가서,
kubectl get nodes
아직은 not ready 상태입니다.
💧Pod Network Addon 설치
여기에 pod network addon을 설치해주어야 합니다.
https://kubernetes.io/docs/concepts/cluster-administration/addons/#networking-and-network-policy
🔼Pod Network Addon 목록
Calico, Flannel 등이 있으며, 이 중에 하나만 설치해줘도 됩니다.
[Calico]
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
[Flannel]
https://github.com/flannel-io/flannel#deploying-flannel-manually
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
kubectl get nodes

ready 상태로 변환되기까지 시간이 좀 걸립니다. 기다려주세요.