라즈베리파이 28

[삽질의 추억] K8s ingress-nginx를 설치했는데 controller가 떠있는 노드에서만 접근이 된다면...

뭔가 너무 편하게 해놓으면 바보가 되는게 맞다. 라즈베리파이에 K8s를 셋팅하고나서, 점점 이것저것 서비스들이 추가되다보니 ingress로 통합하고 싶어졌다. 그래서 그냥 구글링으로 ingress를 설치했는데, kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml 이렇게만 하면 걍 무지성으로 ingress가 설치된다. 됐구나 싶어 여기에 서비스 연결을 했는데, 어라? 라즈베리파이가 3개인데 이중에 1개로만 접근이 된다. 뭔말이고 하니, 라즈베리파이 2,3,4가 있는데, ingress-controller를 설치했으니, 가..

Raspberry pi 2023.10.22

[삽질의 추억] Loki 32bit 환경 설치 안될 때 해결방법 : panic: unaligned 64-bit atomic operation

약 한달 전부터 진행한 라즈베리파이 + 쿠버네티스 환경 설치 초기에, 쿠버네티스가 라즈비안 64bit 환경에서 설치가 잘 되지 않아 32bit 로 재설치를 진행한 적이 있습니다. 2022.08.02 - [Raspberry pi] - 라즈베리파이4 라즈비안 64bit 쿠버네티스 설치 실패 라즈베리파이4 라즈비안 64bit 쿠버네티스 설치 실패 라즈베리파이4에 야심차게 64비트 라즈비안을 설치했지만 2022.07.27 - [Raspberry pi] - 라즈베리파이 4 라즈비안 64bit 설치 : SSH 최초 접속 : 스펙 확인 라즈베리파이 4 라즈비안 64bit 설치 : SSH 최초 접속 viewise.tistory.com 다행히 32bit 환경에서는 정상적으로 모든 설치가 되고 클러스터링도 완료를 하였는데..

Miscellaneous 2022.09.06

라즈베리파이 쿠버네티스에 Prometheus + Grafana 올리기

라즈베리파이에 쿠버네티스 클러스터링 구성을 완료했습니다. 틈틈히 하다보니 약 한달이 걸렸네요. 2022.08.17 - [Raspberry pi] - 라즈베리파이 2대 쿠버네티스 클러스터링 구성 완료 라즈베리파이 2대 쿠버네티스 클러스터링 구성 완료 1차 목표는 완료했습니다. 기존에 라즈베리파이2에 잡다한 어플리케이션이 돌고 있었고, 라즈베리파이4 한대를 더 영입하면서 쿠버네티스 구성을 계획했었습니다. 오늘 부로 딱 3주되었는데, 이 viewise.tistory.com 그리고 쿠버네티스에 최적화된 모니터링 툴인 Prometheus를 도입했습니다. 뭐 따로 yaml 작성없이도 바로 적용할 수 있는 훌륭한 자료가 있어서 그대로 따라만 했습니다. Prometheus 설치 https://devopscube.com..

Raspberry pi 2022.08.25

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

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 coin-trader-6c99cf5b4f-l5zhp 1/1 Running 0 2d23h 10.244.0.111 raspberrypi4 fan-controller..

Raspberry pi 2022.08.17

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

라즈베리파이4를 중고로 영입했는데, 케이스와 냉각팬을 같이 주셨네요. 원래는 생각이 없었다가 꽁짜로 생겼으니 일단 달아보았는데요. 냉각팬이 생각보다 소음이 크더라구요. 온도가 높을 때만 잠깐씩 돌아주면 좋겠다 싶어, CPU 온도에 따라 냉각팬을 껐다 켰다 하도록 만들어보았습니다. nodejs 기반입니다. 우선 CPU 온도를 가져올 수 있는지 찾아봤습니다. 아래와 같이 간단한 쉘 스크립트를 만들고, #!/bin/sh temp=$(cat /sys/class/thermal/thermal_zone0/temp) temp2=$(($temp/1000)) echo $temp2 실행하면, $ ./chk_temp.sh 51 현재 CPU 온도는 51도네요. 그 다음으로 필요한 건, nodejs를 통해 온도를 받아올 수 있어..

Raspberry pi 2022.07.29

아두이노 deepsleepmax 설정 시 안죽고 안깸

2022.03.21 - [Arduino] - 간접조명을 만들고 일몰시간에 자동으로 켜지게 할 수 있을까? #2 간접조명을 만들고 일몰시간에 자동으로 켜지게 할 수 있을까? #2 좌우지간 완성을 했다. 2022.03.20 - [Arduino] - NodeMCU DeepSleep Max 시간 NodeMCU DeepSleep Max 시간 2022.03.16 - [Arduino] - 간접조명을 만들고 일몰시간에 자동으로 켜지게 할 수 있을까? #1 간접조명을.. viewise.tistory.com 스마트 간접조명을 완성하긴 했는데, 조명을 켜야하는 선셋 시간이 아직 멀었으면, deepSleepMax 시간으로 최대한 길게 슬립모드에 들도록 해놓은 코드에 문제가 있었다. 문제가 있었다기보단, deepSleepMax..

Arduino 2022.03.23

간접조명을 만들고 일몰시간에 자동으로 켜지게 할 수 있을까? #2

좌우지간 완성을 했다. 2022.03.20 - [Arduino] - NodeMCU DeepSleep Max 시간 NodeMCU DeepSleep Max 시간 2022.03.16 - [Arduino] - 간접조명을 만들고 일몰시간에 자동으로 켜지게 할 수 있을까? #1 간접조명을 만들고 일몰시간에 자동으로 켜지게 할 수 있을까? #1 오랜만에 버려진 재료들을 가지고 다시 뭔 viewise.tistory.com 아두이노(NodeMCU) 동작이 만족스럽지 않아서, 동작 시나리오를 변경했고, 몇 가지 오류가 있었지만 지금은 무사히 동작 중이다. 기록할 만한 오류는, DeepSleepMax를 걸 때에 약 3시간 34분 후 깨어날 것으로 예상했는데, 깨어나지 못하는 케이스가 있었다. 찾아본 자료에서 그런 주의사항이..

Arduino 2022.03.21

공공데이터포털 nodejs로 일출 일몰 시간 가져오기

일몰시간에 맞춰 자동으로 켜지는 간접조명을 만드는 프로젝트의 일환으로, 일몰시간을 가져오는 방법을 찾아보았다. 2022.03.16 - [Arduino] - 간접조명을 만들고 일몰시간에 자동으로 켜지게 할 수 있을까? #1 간접조명을 만들고 일몰시간에 자동으로 켜지게 할 수 있을까? #1 오랜만에 버려진 재료들을 가지고 다시 뭔가를 만들어 보려고 한다. 집안 한구석이 어두워서 조명을 설치하고 싶은데, 전원 연결이 어렵고, 매번 껐다 켜기 번거롭다. 재료는, 1. 아두이노 (NodeMCU viewise.tistory.com 공공데이터포털에서 API 제공을 해주고 있었고, 단지 API 리턴값이 xml인 관계로 파싱하는 작업이 추가로 필요하다. 처음에는 cheerio를 이용해서 간단히 xml 파싱을 하려고 했지..

Raspberry pi 2022.03.17

Wifi 스마트 콘센트 2 + 라즈베리파이

코어기능 개발에는 30분이 안걸렸다.2017/12/03 - [Arduino] - Wifi 스마트 콘센트 1 이제 기존의 스마트폰 앱에서 호출 가능한 구조로 손을 봐야 한다. 아마 300분은 걸릴 듯... 방법은 이렇다.1. 기존에 스마트 콘센트를 제어하던 앱 위젯에 Wifi형 스마트 콘센트를 추가한다. 2017/04/18 - [Raspberry pi] - 4편 스마트 콘센트? Smart Plug! + 앱위젯2. 그러기 위해서 라즈베리파이에서 아두이노를 제어하도록 기능을 통합한다. (아두이노가 서버, 라즈베리파이가 클라이언트이다.)3. 그러기 위해서 아두이노의 제어 로직을 수정해야 한다. 1. 아두이노의 제어로직 부터 수정하자. json 포멧으로 정의하고, SWITCH 가 입력되면 현재 상태를 toggle..

Arduino 2017.12.09

라즈베리파이 음성인식 - Google API nodejs sample 실행

라즈베리파이 음성인식 - Google API nodejs sample 실행 구글은 음성인식 API를 nodejs sample로도 제공하고 있다. 아래와 같이 sample 코드를 실행해보는 것만으로도 구글 음성인식을 간단히 시험해볼 수 있다. 1. 샘플코드 다운로드 $ git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git 2. API 인증키 발급 및 다운로드 구글 프로젝트 사이트 접속https://console.cloud.google.com/ 메뉴 > API 및 서비스 > 사용자 인증 정보 사용자 인증정보 만들기 > 서비스 계정 키 Compute Engine default service account > JSON > 생성 및 다운..

Raspberry pi 2017.09.10