📌 ufw 서비스 중지
- ufw : ubuntu 방화벽 서비스.
ufw : ubuntu 방화벽 서비스.
# ufw 서비스 중지.
sudo systemctl stop ufw
# ufw 서비스 자동 실행 중지.
sudo systemctl disable ufw
📌 swap 기능 비활성화
- swap 기능을 비활성화 하는 이유.
- 노드 리소스 예측 : 노드의 CPU, 메모리 등의 자원을 효율적으로 사용하도록 설계. SWAP 메모리 사용 시 메모리 사용량 예측하기 어려움.
- Qos 보장 : 메모리 제한에 도달한 Pod가 Swap을 사용하게 되면, Swap 공간이 부족할 경우 프로세스가 종료될 수 있음.
- 성능저하 : 디스크 I/O가 증가하여 성능 저하 가능.
# Swap 끄기.
sudo swapoff -a
# swap 자동 마운트 끄기.
sudo vi /etc/fstab
# /swap ... 주석처리
🐳 Docker 설치
# docker install
apt update
apt install docker.io
🛟 K8s 설치
# 시스템 기본 설정.
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl apt-transport-https gnupg ca-certificates
# 컨테이너 런타임 설치.
sudo apt install -y containerd
# 설정파일 생성.
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
# systemdcgroup 활성화.
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
# 재시작
sudo systemctl restart containerd
sudo systemctl enable containerd
# k8s 설치.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | \
sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] \
https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /" | \
sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null
# 설치.
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
✅ K8s 추가 설정
# IP 포워딩 활성
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
# 변경 사항 적용
sudo sysctl -p
# br_netfilter 모듈 로드 (Kubernetes 및 기타 컨테이너 런타임이 브리지된 네트워크 트래픽을 올바르게 처리할 수 있도록 함)
sudo modprobe br_netfilter
# container.d 초기 설정 파일 생성
sudo bash -c "containerd config default > /etc/containerd/config.toml"
# systemd를 Cgroup 드라이버로 사용하는 설정
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
# crictl 설정 파일
cat <<EOF | sudo tee -a /etc/crictl.yml
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
debug: true
EOF
# container.d 재시작
sudo systemctl restart containerd
# 시스템 부팅시 자동으로 시작하도록 설정
sudo systemctl enable containerd
Reference
🧱 Node 초기화
# --pod-network-cidr는 생성될 pod들의 네트워크 주소(subnet Mask 255.255.0.0)
# --apiserver-advertise-address는 마스터노드의 IP 주소
sudo kubeadm init --pod-network-cidr=10.10.0.0/16 --apiserver-advertise-address=192.168.0.0 --cri-socket=unix:///var/run/containerd/containerd.sock
[생략]
Your Kubernetes control-plane has initialized successfully!
>
To start using your cluster, you need to run the following as a regular user:
>
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
>
Alternatively, if you are the root user, you can run:
>
export KUBECONFIG=/etc/kubernetes/admin.conf
>
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
>
Then you can join any number of worker nodes by running the following on each as root:
>
kubeadm join 192.168.0.0:6443 --token 123456.1234567890123456 \
--discovery-token-ca-cert-hash sha256:d7a9fc38cd353b4803c63873bbad3fc1bbf5cfab44e678363e7699e930c99bc7
# kubernetes 인증 정보 복사 (User에서 실행)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 설치 확인
kubectl get pods --all-namespaces
🧱 Calico CNI 설치
# CRD번들 크기가 크기 때문에 kubectl apply , replace 대신 create 사용해야 에러가 발생하지 않음
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.1/manifests/tigera-operator.yaml
# custom-resources.yaml 파일 다운로드
curl -O https://raw.githubusercontent.com/projectcalico/calico/v3.28.1/manifests/custom-resources.yaml
# cidr 정보 변경 (--pod-network-cidr 인 10.10.0.0/16로 변경)
vi custom-resources.yaml
# 변경한 내용으로 생성
kubectl create -f custom-resources.yaml


댓글 남기기