본문 바로가기
DevOps

[Ubuntu]K8s를 위한 VM 환경 구성(Docker Install)

by Yoon_estar 2024. 8. 9.
728x90
반응형

1. OS 설치 후 기본 설정

아래 설정은 모든 노드들에서 작업한다.

패키지 설치

$ sudo apt -y update
$ sudo passwd root
$ su -
# apt -y install openssh-server vim net-tools

ssh 설정

# vi /etc/ssh/sshd_config
34 PermitRootLogin yes // yes로 변경
58 PasswordAuthentication yes // 주석해제

# systemctl restart sshd

https://estar987.tistory.com/135

 

[Ubuntu] HPC 설정

Ubuntu에서 HPC 세팅하기서버 구성 masterubuntu : 192.168.207.80 node01ubuntu : 192.168.207.81 node02ubuntu : 192.168.207.82 OSOS : ubuntu-20.04.4호스트 설정호스트 네임 설정# hostnamectl set-hostname --static masterubuntu노드 간

estar987.com

이전에 포스팅 한 글을 토대로 Hostname을 이용해 별도의 인증 없이 노드간 ssh 접근이 가능하도록 setting 한다.

2. k8s 구성을 위한 사전 설정

방화벽 해제

# ufw disable

swap 해제

# swapoff -a
# free
total used free shared buff/cache available
Mem: 4017752 1124056 137528 8236 2756168 2647400
Swap: 0 0 0

# sed -i '/ swap / s/^/#/' /etc/fstab
혹은
# vi /etc/fstab
#/swapfile (swap 설정 주석 처리)

NTP 시간 동기화

# apt -y install ntp
# systemctl restart ntp
# systemctl status ntp
# ntpq -p
# date

IP 포워딩 활성화

네트워크 패킷을 올바르게 포워딩하기 위해 커널에서 IP 포워딩을 활성화 시켜야 함

# echo '1' > /proc/sys/net/ipv4/ip_forward
# cat /proc/sys/net/ipv4/ip_forward
1

contianerd 를 이용한 container runtime 구성

# cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

커널에 모듈 적용

modprobe 프로그램은 요청된 모듈이 동작할 수 있도록 부수적인 모듈을 depmod 프로그램을 이용하여 검색해 필요한 모듈을 커널에 차례로 등록한다.

# modprobe overlay
# modprobe br_netfilter

bridge 설정 추가

노드간 통신을 위한 iptables 에 브릿지 관련 설정 추가

# cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

# cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

# 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
EOF

# sysctl --system

Docker 설치

k8s runtime 준비 → contianerd, docker, CRI-O 중에 선택이고, 여기서는 contianerd 사용

apt가 HTTPS로 리포지터리를 사용하는 것을 허용하기 위한 패키지 및 docker에 필요한 패키지 설치

# apt-get update && apt-get install -y apt-transport-https ca-certificates curl \
software-properties-common gnupg2

 

도커 공식 GPG 키 추가 (https://docs.docker.com/engine/install/ubuntu/)

# install -m 0755 -d /etc/apt/keyrings

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg \
--dearmor -o /etc/apt/keyrings/docker.gpg

# chmod a+r /etc/apt/keyrings/docker.gpg

# echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# apt-get update

 

Docker Runtime 주의!

Docker와 containerd가 모두 감지되면 Docker가 우선합니다. 이는 Docker 18.09부터 containerd와 함께 제공되고 Docker만 설치한 경우에도 둘 다 감지할 수 있기 때문에 필요합니다. 다른 두 개 이상의 런타임이 감지되면 kubeadm은 오류와 함께 종료됩니다.

아래는 docker는 image 개발 및 테스트 용도이고, 주 container runtime은 "containerd"를 사용 한다

데몬 설정

docker-ce version 확인

# apt-cache policy docker-ce

 

docker-ce와 관련 도구 및 containerd 설치

# apt-get -y install docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin

# docker version

 

containerd 설정

# sh -c "containerd config default > /etc/containerd/config.toml"
# vi /etc/containerd/config.toml
disabled_plugins = []  -->  [] CRI 제거 확인

# sed -i 's/ SystemdCgroup = false/ SystemdCgroup = true/' /etc/containerd/config.toml
# systemctl restart containerd.service

 

docker daemon 설정

# vi /etc/docker/daemon.json
{
	"exec-opts": ["native.cgroupdriver=systemd"],
	"log-driver": "json-file",
	"log-opts": {
		"max-size": "100m"
	},
	"storage-driver": "overlay2"
}
mkdir -p /etc/systemd/system/docker.service.d
usermod -aG docker estar
systemctl daemon-reload
systemctl enable docker
systemctl restart docker
systemctl status docker
systemctl restart containerd.service
systemctl status containerd.service

reboot

# docker version
# docker info
Cgroup Driver: systemd --> 확인

 

쿠버네티스 구성을 위한 도커 설치까지의 과정입니다. 

이후 쿠버네티스 구성 과정을 포스팅하겠습니다.

https://estar987.tistory.com/193

반응형