On-Primise Kubernets 1.21 구축(VirtualBox or VIRT) - 01. 구성 환경

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

bootable custom ubuntu 20.04 iso 만들기

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로 만드는 방법

ubuntu iso 부팅(grub)으로 OS 설치 시, 디스크 재구성 실패 해결하기

ubuntu의 ISO를 디스크에 저장해서 grub로 부팅해보면 ISO 파일이 위치한 디스크를 재구성이 불가능하게
비활성화가 된다.

이런 경우 설치 메뉴에서 console로 전환하여 아래와 같이 명령어를 실행해서 /iosdevice를 umount하면 ISO
파일이 위치한 디스크 재구성이 가능하다.

# umount -f -l /isodevice

 

만약 grub -> 디스크 -> ISO-> cloud-init로 시스템을 구성한다면 아래와 같이 "early-commands"를 통해서
umount를 구현할 수 있다.

간단한 방법으로 cloud-init(autoinstall)에 사용할 user-data 정보 구하기

ubuntu 설치 자동화(autoinstall)를 위한 user-data를 만들어 내려면 문법 하나만 잘못해서 오류가 많이 난다.
특히 스토리지 설정은 아주 까다로워서 단어 하나 숫자 계산하나만 틀려도 오류를 뿜어 내면서 재설치를 해야
하는 경우가 생긴다.

그런 이런 "user-data를 쉽게 뽑아낼 수 있는 방법은 없는 것인가?"에서 이것도 방법이 존재한다.
일단 ubuntu로 시스템에 OS를 설치한다.

그리고 "/var/log/installer/" 디렉토리가 생성되어 있는데 해당 디렉토리에는 설치 시, 사용한 설정 파일과
각종 로그가 저장되어 있다.

ubuntu에서 grub를 통한 ISO 부팅

ubuntu를 설치할 경우가 있다. 특히 처음 설치가 필요하거나 재설치가 필요한 경우에 간단하게 ISO 파일만으로
재설치해보고 싶은 경우도 있다. 이런 경우 iso를 다운 받아서 해당 iso를 grub와 적절히 설정해주면 부팅 시
설정된 ISO를 통해 부팅이 가능하다.

이런 경우 하드웨어 및 Linux에 대해서 좀 알 필요가 있는데, 일반적으로 아래와 같은 예제로 하면 된다.

 

디스크 구성 현황

/dev/nvme0n1          - OS 디스크
  - /dev/nvme0n1p1    - OS 설치 파티션

/dev/sda              - 데이터 저장
  - /dev/sda1         - GPT 파티션 (/data)

/dev/sda              - 데이터 저장
  - /dev/sdb1         - GPT 파티션 (/data1)

 

1. OS 설치를 위한 ISO파일을 /data/iso-boot 디렉토리에 다운로드 받는다.

ubuntu 20.04 cloud-init을 통한 Custom ISO 설치 자동화 (autoinstall)

CentOS(Redhat)의 경우 kickstart가 강력하여 모든 설치가 kickstart를 통해서 가능하다.
ubuntu의 경우 설치 자동화를 구현하려면 preseed를 통한 자동화 또는 kickstart를 사용해야한다.
그러나 이 2가지에 큰 단점이 있는데 간단하게 정리하면 아래와 같다.

o. preseed 설치 방식
   ubuntu 설치 상에 보이는 gui의 실행을 정의해서 자동 설치를 구현한다.
   단점으로 installer software가 업데이트되거나, gui에 나오는 메뉴에 대한 정의를 하나하나 다 찾아야한다.

o. kickstart를 통한 설치 방식
  어느 정도 ubuntu에서는 kickstart를 지원한다. 그러나 어느 정도이지 CentOS 정도의 자세한 기능까지는
  지원하지 않아 제약사항이 너무 많다.

ubuntu 20.04/22.04 서버에 l2tp vpn 서버 구축

ubuntu 20.0.4에 L2TP를 구축하는 방법 중, 가장 간단한 방법으로 여러가지 기능을 지원하지 않는 단순한 방법을 정리한다.

 

구성 상태

(외부 인터넷) <-----> (공유기 - VPN 연결에 대해서 Portforwarding) <------------> VPN 서버
                          IP:192.168.100.1                            IP:192.168.100.100

 

ubuntu 20.0.4에 설치할 Package 정리

- xl2tpd
- strongswan

 

l2tp 관련 패키지 설치

ubuntu의 nginx package를 custom하기

nginx 패키지를 자신에 맞게 custom해야하는 경우가 발생한다.
설치 위치(Install Path), 패키지 명등을 변경해야하는 경우가 발생하는데 nginx-1.18.0 케이스에 대해서 아래와 같이 custom이 가능하다.
custom하는 방법을 간단하게 정리한다.

1. Package Build에 사용하는 파일 다운로드

https://packages.ubuntu.com/focal-updates/nginx-full

사이트에서 3가지 파일을 다운받는다.

ubuntu 개발용 chroot 시스템 만들기

ubuntu에 개발용 시스템을 만드는 방법을 정리한다.

개발 시스템을 구성하는 패키지 설치

# apt install -y debootstrap
# apt install -y schroot

 

개발용 시스템 구축을 위한 환경 파일 구성

# vi /etc/schroot/chroot.d/focal_x64.conf

-------------------------------------------------
[focal_x64]
description=Ubuntu 20.04.3 LTS x64
location=/home/develope/ubuntu_20_chroot
#personality=linux32
root-users=kinkist
type=directory
users=test
-------------------------------------------------

 

개발용 시스템을 구축할 디렉토리 생성

CentOS 6 개발용 chroot 시스템 만들기

시스템을 개발하다보면 시스템이 무척이나 지저분해진다.
또한 개발 시스템을 서비스에 투입하기에는 보안이 꺼려질 경우
아래와 같은 방법으로 기존 시스템에 영향을 주지 않는 방식으로
개발용 chroot 시스템을 구성할 수 있다.

일단 설치하려는 CentOS의 Release 파일을 다운로드 받아야한다.
내가 설치한 시스템은 CentOS 6.8 x86_64이므로 아래 URL에서
centos-release 파일을 다운받는다.
http://centos.mirror.cdnetworks.com/6.8/os/x86_64/Packages/

# wget http://centos.mirror.cdnetworks.com/6.8/os/x86_64/Packages/centos-release-6-8.el6.centos.12.3.x86_64.rpm