God Bless "IT Engineer"

kubernetes가 설치되는 시스템들은 아래와 같은 설정이 필요하다.

1. swap 사용하지 않도록 구성
2. br_netfilter 모듈 활성화
3. bridge-nf-call-iptables, ip_forward 활성화
4. 시스템에 kubernetes repo 등록
5. containerd 설치
6. kubernetes 관련 프로그램 설치

Swap 비활성화
 

 - swapoff 명령어로 기존 설정된 swap 해제

Kubernetes  구성 환경 정리

Control plane
  - OS : ubuntu 20.04
  - hostname : ubuntu2004-001
  - IP : 192.168.122.11

Node 1
  - OS : ubuntu 20.04
  - hostname : ubuntu2004-002
  - IP : 192.168.122.12

Node 2
  - OS : ubuntu 20.04
  - hostname : ubuntu2004-003
  - IP : 192.168.122.13

Node 3
  - OS : ubuntu 20.04
  - hostname : ubuntu2004-004
  - IP : 192.168.122.14

ubuntu 20.04 live server용 이미지 다운로드

# wget https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso

해당 이미지의 파일로 다운 받는다. 그렇지 않으면 cloud-init이 동작하지 않을 수 있다.

 

iso 파일의 내부 파일을 디렉토리로 복사

# mkdir iso-mount
# mkdir iso-files

# mount ubuntu-20.04.4-live-server-amd64.iso iso-mount
# rsync -rtlv iso-mount/ iso-files/

 

iso를 재구성하기 위한 패키지 설치

apt install -y p7zip-full xorriso isolinux

 

 

iso-files 디렉토리의 파일을 신규 iso로 만드는 방법

go(golang) 1.16 버전 이후, go.mod를 사용하도록 강제되었다.
이런 이유로 1.15 버전으로 만들어진 패키지를 실행하기 위해서 패키지를 설치하면 아래와 같은
오류가 잔뜩 발생한다.

 % go run read_config.go
read_config.go:4:5: no required module provides package gopkg.in/gcfg.v1: go.mod file not found in current directory or any parent directory; see 'go help modules'

 

그렇다고 필요 패키지를 설치하려면 오류가 발생해서 workaround로 아래 설정해주려니 잠시는 되어도 호환성 문제가 발생한다.