Kubernetes Raspberry Pi 소형 IDC 구축

개요

가상머신이 아닌 실제 하드웨어 규모로 컨테이너 기술을 실험하고 싶었다. 가장 큰 목적으로는 이동하며 kubernetes가 어떻게 작동하는지 시뮬레이션 가능하도록 하는 것이었다.

목적에 적합한 컴팩트한 사이즈와 전력 소비가 적고 저렴한 rapberry pi를 사용하기로 결정하였고 소형 IDC 구상을 시작하였다. 국내에는 rpi를 이용하여 cluster 구성을한 사례를 찾아 볼 수 없었다.

해외 rpi cluster 구축 사이트를 참조하여 구상을 하던 중 아크릴 판을 이용하여 케이스를 제작한 문서를 참고하여 구축하게 되었다.

../../../_images/rpi_boot.jpg ../../../_images/idc1.JPG ../../../_images/idc2.JPG ../../../_images/idc3.JPG

물품 정보

1. Raspberry Pi 3

../../../_images/rpi3.JPG
  • 수량 : 8ea
  • 제품명 : RASPBERRY PI 3 MODEL B
  • CPU : 4× ARM Cortex-A53, 1.2GHz
  • GPU : Broadcom VideoCore IV
  • RAM : 1GB LPDDR2 (900 MHz)
  • Networking : 10/100 Ethernet, 2.4GHz 802.11n wireless
  • Bluetooth :
  • Storage(microSD)
  • Bluetooth 4.1 Classic, Bluetooth Low Energy
  • Ports : HDMI, 3.5mm analogue audio-video jack / 4× USB 2.0, Ethernet / Camera Serial Interface (CSI) / Display Serial Interface (DSI)
  • 제원 : 56.5mm x 85.60mm (45g)

Storage(microSD)

  • 제품명 : 샌디스크 micro SDHC/SDXC Ultra 48MB/s
  • 성능/속도 : 최대 48MB/s 읽기 속도
  • 용량 : 32GB

2. 스위치 허브

../../../_images/switch.JPG
  • 수량 : 1ea
  • 제품명 : ipTIME T3008
  • 제품 분류 : 유선
  • RAM 용량 : 64MB
  • Ports : LAN - 8port / WAN - 1port
  • 제원 : 183mm x 130mm x 27mm (636g)

3. 전원 허브

../../../_images/power.JPG
  • 수량 : 1ea
  • 제품명 : ANKER 60W 10포트 USB 충전기
  • 입력 : AC100 - 240V
  • 출력 : 5V / 12A
  • 제원 : 112mm x 68mm x 27mm

4. LCD

../../../_images/monitor1.JPG ../../../_images/monitor2.JPG
  • 수량 : 1ea
  • 제품명 : 카멜 10형 광시야각 미니모니터 PF1050IPS
  • 화면 해상도(비율) : 1280 x 800px(16:10)
  • HDMI 입력단자 : 1.4버전(Normal)
  • AV 입력단자 : 3.5파이 1핀 4극단자
  • 소비 전력 : 10W
  • 입력 : AC 100 - 240V
  • 출력 : DC5V / 2A
  • 제원 : 245mm x 169mm x 19mm(350g)

5. Cable

../../../_images/cable.JPG
  • 1번 LAN Cable : CAT5 UTP 랜케이블 / 9ea
  • 2번 HDMI Cable : HDMI 1.4V 케이블 1.5M / 1ea
  • 3번 USB Cable(Micro B) : 마이크로 5핀 usb 케이블 10cm / 좌향꺽임 / 8ea

6. 아크릴 랙

../../../_images/arcryl.JPG
  • 제품명 : 아크릴 판 제작 6단 / 1set(6ea)
  • 1번 : board-top / 1ea
  • 2번 : board-middle / 3ea
  • 3번 : board-middle-end / 1ea
  • 4번 : board-bottom / 1ea
  • 제원 : 220mm x 160mm x 3mm

도면

초기에 ppt 를 이용하여 아래와 같이 도면을 제작하였으나 아크릴 제작 업체에 의뢰를 할 경우 cad 또는 illustrator 로 제작한 도면이 필요하다고 한다. 그래서 추가로 cad를 이용하여 제작하였고 제작한 아크릴 판 cad 도면은 아이오차드 git repo 에서 다운로드 받을 수 있다.

아래 도면을 보면 rpi 구멍 사이즈는 M3로 제작을 하였다. rpi 공식 규격으로 구멍 사이즈는 실제 M2.5 사이즈이지만 국내에서 파는 M2.5사이즈에 볼트와 지지대볼트 상품들 모두 수입산 상품으로 M3 사이즈와 가격 차이가 심하여 M3 사이즈로 제작을 하였다. M3 사이즈에 볼트로도 문제 없이 제작은 가능하나 다소 뻑뻑하게 들어간다는 점을 유의해야한다.

PPT 도면

../../../_images/board-top.png ../../../_images/board-middle.png ../../../_images/board-middle-end.png ../../../_images/board-bottom.png

CAD 도면(dwg)

  • git repository
# git clone https://git.iorchard.co.kr/orchard/rpi_cluster.git

7. 손잡이, 볼트/너트

../../../_images/bolt.JPG
  • 1번 스틸 브라켓(앵글형) : 모니터 고정 / 2ea
  • 2번 타원 모닝 손잡이 : 손잡이 / 1ea
  • 3번 렌치볼트 M6 8mm : 아크릴과 브라켓 고정 / 2ea
  • 4번 십자나사 M4 8mm : 아크릴과 손잡이 고정 / 2ea
  • 5번 손잡이볼트 M4 6mm : 브라켓과 모니터 고정 / 2ea
  • 6번 나이론너트 M6 : 아크릴과 브라켓 고정 / 2ea
  • 7번 지지대볼트 M3 5mm : rpi 고정 / 32ea
  • 8번 지지대볼트 M3 25mm : 프레임(board-top, board-middle-end) / 12ea
  • 9번 지지대볼트 M3 30mm : 프레임(board-middle) / 12ea
  • 10번 지지대볼트 M3 35mm : 프레임(board-bottom) / 6ea
  • 11번 렌치볼트 M3 5mm : rpi 고정, 지지대볼트 고정 / 40ea
  • 12번 나이론너트 M3 : rpi 고정 / 32ea
  • 13번 플렌지너트 M3 : 지지대볼트 하단 고정 / 6ea

구축 영상

볼트/너트를 조립하는 시간이 다소 길어 후반부까지 8배속으로 영상을 편집하였다. 6분 25초부터 1배속으로 전원을 올리고 부팅되는 rpi 모습을 감상 할 수 있다.

기본 설정

1. Rpi

1-1. hdmi hotplug

rpi 부팅 후 hdmi를 연결시 rpi에서 hdmi를 감지하지 않아 rpiconfig에서 옵션을 변경해준다.

hdmi 케이블을 연결한 상태에서 rpi를 부팅한 뒤 아래와 같이 수정 후 재구동하여 적용할 수 있다.

# vi /boot/config.txt
hdmi_force_hotplug=1 // 주석 해제
# reboot

1-2. dhcp 중지

dhcp로 ip를 자동으로 할당받지 않고 고정으로 사용하기 위하여 dhcpcd 데몬을 제거한다.

# systemctl disable dhcpcd

1-3. hostname, ip 설정

8개 rpi hostname을 아래와 같이 설정

# vi /etc/hostname

rpi1 : 192.168.8.1
rpi2 : 192.168.8.2
rpi3 : 192.168.8.3
rpi4 : 192.168.8.4
rpi5 : 192.168.8.5
rpi6 : 192.168.8.6
rpi7 : 192.168.8.7
rpi8 : 192.168.8.8

1-4. pixel install(rpi1)

스위치 허브에 설정을 변경하기 위해서는 관리페이지에 접속해야 한다. 이를 위해서 rpi1 1대만 pixel window manager를 설치하였다.

# apt-get install rasberrypi-ui-mods
# systemctl start lightdm

firefox와 한글 입력기 ibus를 추가로 설치하였다.

# apt-get install firefox-esr ttf-unfonts-core ibus-hangul

2. 스위치 허브

2-1. 외부/내부 ip 변경

rpi1에서 스위치 허브 관리페이지에 default 설정 내부 ip주소인 192.168.0.1로 접속한다.

외부 ip는 “기본 설정 -> 인터넷 연결 설정 -> 고정 ip 사용자”로 체크 후 변경이 가능하다.

외부 ip : 192.168.0.25 내부 ip는 “고급 설정 -> 내부 네트워크 설정 -> 내부 ip주소”에서 변경이 가능하다.

2-2. dhcp 중지

rpi에서 dhcp를 중지하였고 스위치 허브에서도 dhcp 서버 설정을 중지한다.

설정 방법은 “고급 설정 -> 내부 네트워크 설정 -> DHCP 서버 설정”에서 중지로 체크한 뒤 적용하게 되면 적용이 되어진다.