Raspberry pi

라즈베리파이 2대 쿠버네티스 클러스터링 구성 완료

[혜안] 2022. 8. 17. 23:36
728x90

1차 목표는 완료했습니다.

기존에 라즈베리파이2에 잡다한 어플리케이션이 돌고 있었고,

라즈베리파이4 한대를 더 영입하면서 쿠버네티스 구성을 계획했었습니다.

오늘 부로 딱 3주되었는데, 이제야 잡다한 어플리케이션을 모두 컨테이너화 하여 쿠버네티스에 올렸습니다.

$ k get pod -o wide
NAME                               READY   STATUS    RESTARTS   AGE     IP             NODE           NOMINATED NODE   READINESS GATES
coin-gather-5d7b766468-bd5rc       1/1     Running   0          3d22h   10.244.0.94    raspberrypi4   <none>           <none>
coin-trader-6c99cf5b4f-l5zhp       1/1     Running   0          2d23h   10.244.0.111   raspberrypi4   <none>           <none>
fan-controller-chftl               1/1     Running   0          2d      10.244.1.3     raspberrypi2   <none>           <none>
fan-controller-spgm8               1/1     Running   0          7d7h    10.244.0.55    raspberrypi4   <none>           <none>
home-server-6cbb9bd795-qkrvl       1/1     Running   0          43m     10.244.1.8     raspberrypi2   <none>           <none>
mariadb-custom-6c89d5546f-nzbk4    1/1     Running   0          4d      10.244.0.91    raspberrypi4   <none>           <none>
plug-controller-56cbbc7cbf-x9r6w   1/1     Running   0          61m     10.244.1.5     raspberrypi2   <none>           <none>

짜잔~

잡다한 어플리케이션들을 잠시 설명하자면,

coin-gather 는 가상화폐 시세를 수집하여 투자에 필요한 지표들을 계산하는 역할을 합니다.

coin-trader 는 gather가 계산한 지표를 기반으로 실제 거래를 하는 자동거래봇 입니다.

fan-controller 는 라즈베리파이에 붙어있는 쿨링팬을 CPU 온도에 따라 제어하는 모듈입니다. 라즈베리파이2와 4에 모두 필요하므로 데몬셋으로 구성하여 2개가 보입니다.

home-server 는 집안전등 켜고 끄기, 노트북깨우기 등 자잘한 기능이 있고, 이걸 자체제작한 앱과 연동하기위한 간이서버입니다. 앱과 연동해야하는 서버이므로 외부 노출이 필요하여 NodePort를 활용하였습니다.

mariadb 는 위 모듈들의 통합 데이터 저장소 역할을 합니다. DB Data 는 퍼시스턴스 볼륨을 이용해서 밖으로 뺐습니다. gfs까지 적용하는건 에바라 그냥 라즈베리파이4에 로컬볼륨을 연결했고, nodeAffinity를 라즈베리파이4로 주었네요.

plug-controller는 home-server에서 떼어낸 일부 기능으로, 라즈베리파이2에 GPIO로 붙어있는 전등을 제어하는 기능입니다. 때문에 역시 nodeAffinity를 이용해서 라즈베리파이2에서만 스케줄링이 되도록 설정했습니다. 

 

하면서 이걸 왜하나 싶었는데, 정작 해놓고 나니 지저분한 방 정리한 느낌입니다.

오래된 건 5년이 넘은 모듈도 있어서, 어느순간 라즈베리파이나, 메모리카드가 뻑나기라도 하면 그냥 사라질 위기였지요.

이번에 자체 git에도 올렸지만, 아무래도 이식성이 좋지 못하면 다시 내려받아 셋팅하지는 않을 것 같았는데,

도커이미지로 만들어놓으니 마음이 좀 편안해집니다.

 

완전히 끝난건 아니고,

자체 helm 서버를 만들어서, 위 pod들을 모아 helm 패키지로 구성해보고,

rancher, prometheus 등 사이드 프로젝트 들을 적용시켜볼 계획입니다.

 

아 그전에, plex 미디어서버를 넣으려다가,

라즈베리파이2가 가뜩이나 성능이 모자라 버벅거렸는데,

쿠버네티스에 올리는게 성능 상 도움되지는 않을 것 같아서 제외했는데요.

라즈베리파이4에 그냥 네이티브로 올려봐야겠습니다.

 

3주간의 작업은 모두 이 블로그에 기록되어 있습니다.

2022.07.29 - [Raspberry pi] - 라즈베리파이 온도에 따라 냉각팬 조절하기 : nodejs

 

라즈베리파이 온도에 따라 냉각팬 조절하기 : nodejs

 라즈베리파이4를 중고로 영입했는데, 케이스와 냉각팬을 같이 주셨네요. 원래는 생각이 없었다가 꽁짜로 생겼으니 일단 달아보았는데요. 냉각팬이 생각보다 소음이 크더라구요. 온도가 높을

viewise.tistory.com

2022.07.31 - [Raspberry pi] - 라즈베리파이 쿨링팬 제어 nodejs 도커로 실행하기 :GPIO 접근권한

 

라즈베리파이 쿨링팬 제어 nodejs 도커로 실행하기 :GPIO 접근권한

쿨링팬 제어하는 nodejs 모듈을 열심히 만들었고, 이제 상시 돌아가도록 쿠버네티스 daemon으로 등록해야 합니다. 그 전에 일단 도커 이미지화를 해야 쿠버네티스에 올릴 수 있으니 도커 이미지부

viewise.tistory.com

2022.08.03 - [Raspberry pi] - 라즈베리파이4 쿠버네티스 설치

 

라즈베리파이4 쿠버네티스 설치

라즈베리파이4에 라즈비안 64bit (bullseye) 를 설치하고, 그 위에 쿠버네티스 환경을 셋업해보려고 했습니다. 하지만, 몇가지 설정을 잡는데에서 한계를 느껴 결국 64bit를 포기하고 32bit로 재설치를

viewise.tistory.com

2022.08.04 - [Raspberry pi] - 라즈베리파이 쿨링팬 제어 쿠버네티스 데몬셋으로 실행하기 : nodejs, GPIO 접근권한

 

라즈베리파이 쿨링팬 제어 쿠버네티스 데몬셋으로 실행하기 : nodejs, GPIO 접근권한

라즈베리파이에 달린 쿨링팬을 CPU 온도에 따라 제어하기 위한 모듈을 nodejs 기반으로 제작했습니다. 2022.07.29 - [분류 전체보기] - 라즈베리파이 온도에 따라 냉각팬 조절하기 : nodejs 라즈베리파이

viewise.tistory.com

2022.08.05 - [Raspberry pi] - 라즈베리파이 쿠버네티스 ConfigMap으로 변수 전달하기 : 동적으로 적용하기

 

라즈베리파이 쿠버네티스 ConfigMap으로 변수 전달하기 : 동적으로 적용하기

라즈베리파이4에 쿨링팬 제어 모듈을 nodejs로 만들고, 이걸 쿠버네티스 데몬셋으로 상시 동작하도록 꾸미고 있습니다. 이전 글 참조. 2022.07.29 - [Raspberry pi] - 라즈베리파이 온도에 따라 냉각팬 조

viewise.tistory.com

2022.08.08 - [Raspberry pi] - 라즈베리파이4 도커허브에 없는 오픈소스 직접 빌드하기 : mariadb

 

라즈베리파이4 도커허브에 없는 오픈소스 직접 빌드하기 : mariadb

라즈베리파이4 라즈비안 환경에 쿠버네티스 클러스터를 구성 중입니다. 2022.08.03 - [Raspberry pi] - 라즈베리파이4 쿠버네티스 설치 라즈베리파이4 쿠버네티스 설치 결국 라즈비안 64bit를 포기하고 32

viewise.tistory.com

2022.08.10 - [Raspberry pi] - 도커 레지스트리 (nexus3 oss) 만들기 : 커스텀빌드 이미지 올리기

 

도커 레지스트리 (nexus3 oss) 만들기 : 커스텀빌드 이미지 올리기

라즈베리파이용 mariadb 이미지가 도커허브에 없어서 직접 이미지를 빌드했습니다. 2022.08.08 - [Raspberry pi] - 라즈베리파이4 도커허브에 없는 오픈소스 직접 빌드하기 : mariadb 라즈베리파이4 도커허

viewise.tistory.com

2022.08.15 - [Raspberry pi] - 라즈베리파이2 쿠버네티스 워커노드 만들기

 

라즈베리파이2 쿠버네티스 워커노드 만들기

새로 장만한 라즈베리파이4에 쿠버네티스 컨트롤플레인 설치를 완료했습니다. 2022.08.03 - [Raspberry pi] - 라즈베리파이4 쿠버네티스 설치 라즈베리파이4 쿠버네티스 설치 라즈베리파이4에 라즈비안

viewise.tistory.com

 

728x90