Kubernetes 환경 구축

Kubernetes 환경 구축
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

``

sudo swapoff -a
sudo vim /etc/fstab

#/swap.img       none    swap    sw      0       0
sudo vi /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
# net.ipv4.ip_forward=1  # 이 부분 주석해제 브릿지 네트워크를 사용하기 위함인듯?

sudo vi /etc/modules-load.d/k8s.conf
br_netfilter # 이 부분 추가 브릿지 넷필터 설정 -> 클러스터에서 브릿징을 가능하게 만들기

sudo reboot
sudo apt update
sudo apt install -y containerd
sudo systemctl enable --now containerd

sudo mkdir /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo vim /etc/containerd/config.toml

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  SystemdCgroup = true
sudo vim /etc/apt/sources.list.d/kubernetes.list
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /
sudo apt-get install -y apt-transport-https ca-certificates curl gpg

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

sudo apt-get update

sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

sudo systemctl enable --now kubelet

마스터 노드

sudo kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubeadm token create --print-join-command

워커 노드

복붙 이후

마스터노드 ~/.kube/config 복사 해오기


# Docker → tar 파일로 저장
docker save docuhelper-api:latest -o docuhelper-api.tar

# containerd로 import
sudo ctr -n k8s.io images import docuhelper-api.tar

# 확인
sudo ctr -n k8s.io images ls | grep docuhelper-api
Installing kubeadm
This page shows how to install the kubeadm toolbox. For information on how to create a cluster with kubeadm once you have performed this installation process, see the Creating a cluster with kubeadm page. This installation guide is for Kubernetes v1.32. If you want to use a different Kubernetes version, please refer to the following pages instead: Installing kubeadm (Kubernetes v1.31) Installing kubeadm (Kubernetes v1.30) Installing kubeadm (Kubernetes v1.29) Installing kubeadm (Kubernetes v1.
컨테이너 런타임
참고: Dockershim은 쿠버네티스 릴리스 1.24부터 쿠버네티스 프로젝트에서 제거되었다. 더 자세한 내용은 Dockershim 제거 FAQ를 참고한다. 파드가 노드에서 실행될 수 있도록 클러스터의 각 노드에 컨테이너 런타임을 설치해야 한다. 이 페이지에서는 관련된 항목을 설명하고 노드 설정 관련 작업을 설명한다. 쿠버네티스 1.32에서는 컨테이너 런타임 인터페이스(CRI) 요구사항을 만족하는 런타임을 사용해야 한다. 더 자세한 정보는 CRI 버전 지원을 참조한다. 이 페이지는 쿠버네티스에서 여러 공통 컨테이너 런타임을 사용하는 방법에 대한 개요를 제공한다. containerd CRI-O 도커 엔진 미란티스 컨테이너 런타임 참고:쿠버네티스 v1.
홈서버 구축하기 - Proxmox 설치 및 쿠버네티스 클러스터 구성하기
본격적으로 홈서버에 쿠버네티스 클러스터를 구축해보려 한다. 환경은 Proxmox로 선정하였다. 그 이유는 하나의 컴퓨터에 여러 대의 가상머신을 띄워야 하는 상황이고, 사실상 쿠버네티스 클러스터 외에 다른 것을 띄워두진 않을 것이기 때문에 가상머신에 특화된 환경을 구축하고자 했다. 이에 ‘베어메탈 아키텍처(type1)‘와 ‘호스트형 아키텍처(type2)’ 가상화 아키텍처 중 전자를 채택했다. 베어메탈 가상화의 경우 ‘Proxmox’와 ‘ESXi’ 중 보통 선택하게 되는데, 쿠버네티스와 관련된 레퍼런스가 조금 더 많은 Proxmox를 선택하게 되었다. (하이퍼바이저와 베어메탈 관련한 지식은 아래 글들을 참고하였다) https://lovejaco.github.io/posts/two-types-of-hyperv…