LXC 컨테이너 내부에 Kubernetes를 설치하려면 바로 설치가 되지 않는다.
설치하기 위해 몇 가지 설정을 바꿔야한다.
메인노드 설정
메인노드에서 쉘을 열고 설정한다.
vi /etc/sysctl.conf
net.ipv4.ip_forward=1 주석 해제
맨아래 vm.swapiness=0 추가
스왑 해제 (스왑 해제하고 재부팅시 스왑 켜지지 않는 명령어)
swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab
커널 module 설정
cat <<EOF | tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
컨테이너 생성
권한없는 컨테이너를 체크 해제, 스왑0 (필수) 이후 원하는 리소스로 생성한다.
그후 생성한 컨테이너를 실행하면 안된다.
중첩을 켠다(옵션, 특징)
메인노드 설정2
다시 메인노드 shall 로 돌아와서
cd /etc/pve/lxc
cd /etc/pve/lxc
ls
vi xxx.conf
내부에 만든 컨테이너의 설정파일을 수정한다.
맨 뒤에 아래 내용을 추가한다.
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
lxc.mount.auto: "proc:rw sys:rw"
LXC 내부 설정
생성한 컨테이너를 실행한다.
다음과 같은 배치파일을 생성한다.
sudo vi /etc/rc.local
#!/bin/sh -e
if [ ! -e /dev/kmsg ]; then
ln -s /dev/console /dev/kmsg
fi
mount --make-rshared /
스크립트를 실행한다.
chmod +x /etc/rc.local
/etc/rc.local
이걸로 설정이 완료되었고, kubernetes를 설치할 준비가 되었다.
추가로 템플릿을 만들어두면 여러개의 노드를 만들때 편리하게 할 수 있다.
참고
https://kevingoos.medium.com/installing-k3s-in-an-lxc-container-2fc24b655b93
'Infra > OS' 카테고리의 다른 글
Neo4j(GraphDB)데이터베이스 구축 (Ubuntu) 외부에서 접속하기 (0) | 2024.01.18 |
---|---|
vi or vim 동작이 이상하게 될 때 (0) | 2023.10.25 |
proxmox 내부망 방화벽 라우터 구축기 2 (pfSense) 설정 (0) | 2023.10.25 |
VirtIO 드라이버 사용 Windows 설치 (proxmox) (0) | 2023.10.24 |
proxmox 내부망 방화벽 라우터 구축기 1 (pfSense) 설치 (0) | 2023.10.24 |