netfilter란
Kubernetes에서 "netfilter"는 Linux 커널 내에서 동작하는 네트워크 패킷 필터링 및
NAT(Network Address Translation) 프레임워크이다.
이는 컨테이너와 Pod의 네트워킹과 관련된 작업을 처리하고 Kubernetes 클러스터 내에서
네트워크 트래픽을 제어하는 데 사용된다.
Kubernetes는 이러한 네트워크 제어 및 관리 작업을 수행하기 위해 iptables와 IPVS 등의
netfilter 관련 도구와 라이브러리를 사용한다.
이러한 기능은 Kubernetes 클러스터의 네트워크 구성을 관리하고 보안 및 가용성을
유지하는 데 필수적이다.
netfilter설정
pod끼리 통신이 가능하기위해선 netfilter모듈을 적재해야된다
방화벽인 iptables가bridge driver를 사용하여 통신을 하는 패킷들을 필터할수있는 netfilter를 활성화하기위해선 modprobe br_netfilter를 입력하여 적재한다.
sudo modprobe br_netfilter
//확인 lsmod | grep br_netfilter
sudo modprobe overlay
cat <<EOF | tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
리눅스 부팅 시 자동으로 br_netfilter를 load하기위해선
echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf
//커널이 /etc/modules-load.d/ 경로에 있는 *.conf 파일들을 모조리 읽어서 module을 load
모듈을 iptables가 사용할수있도록 설정
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.ipv4.conf.all.rp_filter = 1
EOF
방화벽 해제 및 selinux해제
systemctl disable --now firewalld
echo "setenforce 0" >> /etc/bashrc
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
swap off
쿠버네티스를 구축할때는 swap기능을 꺼놓아야한다
이유는 쿠버네티스는 pod를 생성할때 필요한 만큼 리소스를 할당받아서 사용하는 구조이다.
따라서 메모리 swap을 고려하지않고 설계되었기때문에 클러스터
node들은 모두 swap메모리를 비활성해줘야 한다
swapoff -a //중지
sed -i '/swap/s/^/#/' /etc/fstab //껏다켜도 중지
설정 적용
sysctl --system
hosts
master와 worker node 간 통신을 수월하게 하기 위함DNS 서버가 별도로 있으면 별도로 작업
cat <<EOF >> /etc/hosts
192.168.255.50 master
192.168.255.51 worker1
192.168.255.52 worker2
EOF
cat <<EOF >> /etc/hosts
192.168.116.10 master
192.168.116.11 worker1
192.168.116.12 worker2
192.168.116.15 bastion
EOF
'kubernetes' 카테고리의 다른 글
쿠버네티스 원격 서버 설정 (0) | 2023.10.10 |
---|---|
쿠버네티스 노드생성 (0) | 2023.10.10 |
쿠버네티스 nodeport clusterip (0) | 2023.10.10 |
쿠버네티스 아키텍쳐 (0) | 2023.10.10 |
쿠버네티스 네트워크 (0) | 2023.10.10 |