-
쿠버네티스 설치를 위한 설정 1K8s 2025. 7. 8. 17:40
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
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.33. If
kubernetes.io
https://devopscat.tistory.com/133
Ubuntu 24.04.2 LTS 설치
https://ubuntu.com/download/server#manual-install Get Ubuntu Server | Download | UbuntuGet Ubuntu Server one of three ways; by using Multipass on your desktop, using MAAS to provision machines in your data centre or installing it directly on a server.ubunt
devopscat.tistory.com
- Ubuntu 24.04.2 LTS 환경에서 쿠버네티스 control-plane(master node)와 worker node 2개를 구성한다.
- control-plane(master)의 vm을 clone 하여 node1, node2 구성
k8s-master k8s-node1 k8s-node2 IP 192.68.0.101 192.68.0.102 192.68.0.103 CPU 2Core 2Core 2Core Memory 3GB 3GB 3GB Hard Disk 25GB 25GB 25GB 쿠버네티스 설치를 위한 설정 : control-plane(master)
1. hostname 변경
# hostname 설정 hostnamectl set-hostname k8s-master # 설정된 hostname 확인 hostname # 우분투 서버 재실행(재실행 후 터미널에서 적용된 것을 확인할 수 있음) sudo reboot
2. 방화벽 비활성화 (kubeadm 설치 시 포트 막힘 방지용)
# ufw 방화벽 규칙 비활성화 sudo ufw disable # 방화벽 서비스 중지 sudo systemctl stop ufw # 재부팅해도 다시 안 켜지게 서비스 비활성화(disable은 부팅 시 자동 시작 금지 의미) sudo systemctl disable ufw # 방화벽 규칙 확인 sudo ufw status # 방화벽 서비스 상태 확인 sudo systemctl status ufw
3. Swap 비활성화
Kubernetes는 기본적으로 swap이 활성화된 노드에서 동작하지 않음
kubelet이 제대로 작동하게 하려면 반드시 스왑을 사용하지 않도록 설정한다.# 메모리, Swap 사용량 확인 free -h # Swap 상태 확인(출력이 없으면 이미 꺼져 있음) swapon --show # Swap 비활성화 (즉시 적용, 재부팅하면 다시 켜짐) sudo swapoff -a # Swap 완전히 비활성화 (재부팅해도 유지) sudo sed -i '/ swap / s/^/#/' /etc/fstab
4. 시간 동기화 (Timezone 설정)
- 클러스터 내의 모든 노드는 동일한 시간대로 설정되어야 함
- 로그 시간이나 인증서 만료 등의 문제 방지를 위해 중요
# 시간대 확인 및 변경 timedatectl sudo timedatectl set-timezone Asia/Seoul
5. /etc/hosts 설정
도커 설치
https://docs.docker.com/engine/install/ubuntu/
Ubuntu
Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.
docs.docker.com
# root 계정으로 전환 sudo su # Docker Engine을 설치하기 전에 충돌하는 모든 패키지를 제거 for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
1. Docker apt 저장소 설정
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
2. Docker 패키지를 설치
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3. 도커 실행
# 부팅 시 도커 자동 시작 설정 && 도커 실행 sudo systemctl enable docker && sudo systemctl start docker
4. 사용자 계정 도커 그룹 추가
# Docker 그룹 추가 # 일반 사용자 계정에서 sudo 없이 도커 명령어를 사용하기 위해 sudo usermod -aG docker $USER
- 마스터와 노드1, 노드2가 브리지 네트워크를 리슨할 수 있도록 지원해줘야한다.
- 이 부분은 vm에 기본값으로 이미 설정되어 있어서 하지 않았는데 명시적으로 설정 파일 만들어두는 것을 권장한다고 함.
sudo tee /etc/sysctl.d/k8s.conf <<EOF # 브리지 네트워크를 iptables 로 전달 net.bridge.bridge-nf-call-iptables = 1 # IPv4 포워딩 활성화 net.ipv4.ip_forward = 1 EOF sudo sysctl --system
- 설정 확인
# net.bridge.bridge-nf-call-iptables 확인 sysctl net.bridge.bridge-nf-call-iptables # net.ipv4.ip_forward 확인 sysctl net.ipv4.ip_forward
커널 파라미터 설명 기본값 쿠버네티스에서의 역할 net.bridge.bridge-nf-call-iptables 브리지 인터페이스를 통해 들어오는 패킷을 iptables로 검사할지 여부 0 (검사 안 함) CNI가 Pod 간 네트워크 정책(iptables)을 제대로 적용하려면 1이어야 함 net.ipv4.ip_forward 커널이 라우터처럼 패킷을 포워딩할 수 있게 할지 여부 0 (포워딩 안함) Pod ↔ Pod, Pod ↔ 외부 통신, NodePort 등에서 라우팅 동작을 위해 필수 참고
쿠버네티스 공식 문서
따배쿠: https://youtu.be/lheclzO-G7k?si=NlVj5VTsYppZpXMC
GhatGPT, Gemini, Copilot
'K8s' 카테고리의 다른 글
namespace (0) 2025.07.15 컴포넌트 종류와 구성 및 애드온 (0) 2025.07.14 Pod (0) 2025.07.10 쿠버네티스 설치(kubeadm) (2) 2025.07.08 쿠버네티스 설치를 위한 설정 2 (0) 2025.07.04