전체 글 102

HAProxy 설치하기

이전 포스팅에서 우분투 위에 KVM을 설치하고, 그 위에 VM들을 올려서 Kubernetes 클러스터까지 구축을 했습니다. 그리고 이 클러스터에 뭔가 서비스를 올려서 서비스를 하려면, Host 레벨에서 접근이 가능하도록 Path를 열어주어야 합니다. 클러스터가 Host OS 안에 NAT로 구성되어 있기 때문인데요. 가장 쉬운 해결책으로 HAProxy 설치를 해보려고 합니다. 아래의 구성입니다. 그림을 보면 약간 이상한 부분을 눈치챘을껍니다. Host OS에 80으로 들어오는 요청과 443으로 들어오는 요청이 모두 Guest의 30080 포트로 전달되도록 되어 있습니다. 엄밀히 말하자면 80으로 들어오는 요청을 443으로 redirect하고, 443으로 redirection된 요청이 Guest OS의 30..

Kubernetes 2024.03.20

KVM(Hypervisor) 기반으로 Kubernetes 클러스터 구축하기 2편

지난 포스팅에 이어서, 위와같은 환경으로 만들어보겠습니다. 핵심은 저 물음표와 같이 물리적으로 서로다른 Host OS 내부에 NAT로 구성된 Node들을 어떻게 클러스터링 할 수 있는가 입니다. 우선 그 전에 Host OS에서 아래와 같이 네트워크 인터페이스가 구성되어 있는지 확인합니다. ip addr ... 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 58:58:58:58:58:58 brd ff:ff:ff:ff:ff:ff inet 192.168.123.2/24 metric 100 brd 192.168.123.255 scope global dynamic eth0 valid_lft 41sec preferred_lf..

Kubernetes 2024.03.19

KVM(Hypervisor) 기반으로 Kubernetes 클러스터 구축하기 1편

클라우드 서비스를 사용하는게 아니라면, 개인이 Kubernetes 클러스터를 구축하여 자체 운영하는 가장 일반적인 케이스는 개인 PC나 노트북, 또는 저와 같이 라즈베리파이 몇대를 묶어서 구성하는게 가장 일반적입니다. 그런데 이번에 구축할 Kubernetes 클러스터는 이보다 좀 더 다른 형태입니다. 하이퍼바이저인 KVM 위에 Guest VM을 여러개 올리고, 이 VM 간에 클러스터를 구축하는 모양인데요. 대략 위와같은 모양이 됩니다. 이렇게 했을 때에 몇가지 장단점이 있습니다. 장점 1. Host 환경 의존성을 최소화할 수 있다. 2. K8s 노드를 통째로 백업하고 쉽게 복제/확장/재생성 할 수 있다. 3. 다른 네트워크 환경에서도 K8s 노드의 IP를 고정해 놓을 수 있다. 4. 고성능 PC 1대에 ..

Kubernetes 2024.03.19

[삽질의 추억] K8s + synology nfs + pvc + nexus 조합에서 docker push 할때에 permission denied

2023-12-03 13:31:35,477+0000 ERROR [qtp105343482-3699] org.sonatype.nexus.blobstore.file.FileBlobStore - Unable to load BlobAttributes for blob id: f4816abe-9b8b-49c5-adf8-78108604b534, path: /nexus-data/blobs/default/content/vol-29/chap-10/f4816abe-9b8b-49c5-adf8-78108604b534.properties, exception: /nexus-data/blobs/default/content/vol-29/chap-10/f4816abe-9b8b-49c5-adf8-78108604b534.properties ..

Trouble Shooting 2023.12.03

오래된 노트북 Kubernetes Worker Node로 만들기

오래된 노트북 버리느니 K8s Worker Node로 활용해보려고 합니다. 먼저 윈도우를 지우고 Ubuntu 22.04로 새로 설치합니다. 파티션부터 삭제하고 재설치하는데, Worker node용 Ubuntu는 스왑 영역이 필요없으므로, 아예 파티션 나눌때에 스왑은 할당해주지 않았습니다. 그리고 텍스트 모드로 부팅하도록 설정해줍니다. 텍스트 모드로 부팅 $ sudo vi /etc/default/grub . . #아래 라인 주석해제 GRUB_TERMINAL=console . . $ sudo update-grub $ sudo systemctl set-default multi-user.target $ sudo reboot 최소 설치를 했더니 없는 패키지가 좀 있네요. 기본 패키지 설치 $ sudo apt up..

Kubernetes 2023.11.21

synology.me ssl 인증서 가져다가 ingress에 적용하기

개인 도메인이 없고 인증서도 없는데 synology NAS를 사용 중이라면, 무료 도메인인 synology.me를 이용할 수 있고, 인증서 또한 사용할 수 있다. 하지만 3개월마다 갱신되기 때문에, 3개월에 한번씩 인증서를 복사해다가 secret을 만들어줘야 하는 귀찮음이 있다. 이건 어떻게 자동화가 안될끄나? synology.me 인증서 위치 $ ls /usr/syno/etc/certificate/system/default ECC-cert.pem ECC-fullchain.pem ECC-privkey.pem info RSA-cert.pem RSA-fullchain.pem RSA-privkey.pem 인증서 유효기간 확인 $ sudo openssl x509 -text -noout -in RSA-cert.p..

Trouble Shooting 2023.11.19

[삽질의 추억] 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

Ubuntu 22.04 Wake on lan 설정 서비스로 등록하기

오래된 노트북에 Ubuntu 22.04를 설치하고 필요할때에만 부팅을 시키려고 wol 설정을 구글링하여 셋팅을 하였다. sudo apt install ethtool sudo ethtool -s enp2s0 wol g sudo ethtool enp2s0 ... Supports Wake-on: pumbg Wake-on: g Link detected: yes ... 그런데 이게 재부팅하면 설정이 사라지므로, 서비스로 등록해서 부팅할때마다 1회 설정하는 구성을 해주어야 한단다. 아래와 같이 1회 실행되는 원샷 서비스 설정하면 된다는데, vi /etc/systemd/system/wol-enable.service [Unit] Description=Enable Wake-up on LAN [Service] Type=o..

Linux 2023.07.04

현관 센서등 안꺼지게 상시전원 스위치를 달아보자. ft. RF 433 송수신기

오랜만에 다시 IoT 글하나 올려봅니다. 그 동안 소소한 생활편의를 위해 어것저것 많은 장치들을 달았지만, 뭐 그닥 신선할 것 없이 기존 Wifi 스마트 콘센트와 동일한 작동 방식이었습니다. 벌써 6년 전 이네요. https://viewise.tistory.com/entry/Wifi-%EC%8A%A4%EB%A7%88%ED%8A%B8-%EC%BD%98%EC%84%BC%ED%8A%B8-4-%ED%84%B0%EC%B9%98%EC%84%BC%EC%84%9C Wifi 스마트 콘센트 4 + 터치센서 이번엔 lan plug에 붙어있던것과 동일하게, wifi plug에도 터치센서를 붙여보자. 스케치를 열고 nodeMCU 소스 수정...GPIO 5번을 터치센서 입력으로 선택하고, 간단 코딩12345678910111213..

Arduino 2023.04.16