pgpool2 를 이용한 이중화 셋팅 (k3s)
·
DB/Postgresql
얼마전에 DB 서버 2대에 patroni를 이용하여 이중화를 했다.patroni는 서버를 모니터하면서 master 와 slave 를 관리해준다.이제는 이 서버에 적절히 분배해 주면서 앞단에서 로드밸런서 역할도 하고 쿼리 종류에 따라 Write 는 master 로 Read 는 두 서버를 적절히 분산을... 하기위해 pgpool 을 적용했다. 쿼리를 분석해서 자동 분기를 해주는 솔루션은 pgpool 이 거의 유일하다고 한다.개발자가 WAS 의 소스코드 레벨에서 ORM 등을 사용하여 두개의 역할을 나눠서 알아서 나눠서 호출하게 할수는 있지만 이미 만들어진 WAS서버에서 다시 고쳐서 쓰기는 번거롭다. 자동으로 해주는 솔루션을 찾다보니 pgpool 을 이용하게 되었다.일전에 했다가..별로여서 안쓰고 있었는데 학습..
k3s 에 cloudflare ddns 업데이터 적용
·
인프라/Cloudflare
기존에 dnszi 에서 사용하던 ddns 업데이트 이후 cloudflare 로 옮긴후 적용이 필요했다. 먼저 k3s 에 인증키 생성gglabadmin@k3s-node1:/k8s/common/cloudflare$ cat ddns-secret.yaml apiVersion: v1kind: Secretmetadata: name: cloudflare-api-token namespace: defaulttype: OpaquestringData: token: "api토큰" 다음으로proxy 할것과 안할것을 구분해서 두개의 설정 파일 준비 [DNS 만 연결]gglabadmin@k3s-node1:/k8s/common/cloudflare$ cat ddns-direct-deployment.yaml apiVersion: ..
Cloudflare Proxy 적용
·
인프라/Cloudflare
운영중인 함쓰 가계부 앱의 사용자에게 앱이 자꾸 로그인이 풀린다는 제보가 들어왔다.심할때는 로그인이 풀린다음 재로그인을 10번정도 시도해야 된다고 한다. 카페에 남긴 이 내용을 보고 처음 든생각은?? "나는 한번도 안끊기는데???"폰의 영향인가? 최신 업데이트된 OS 탓인가? 마침 최근 IOS도 26이 나오고 안드로이드도 16이 나오다 보니.. 여러 가능성이 있었다.그런데 마침 댓글에... "나만 끊기는게 아니었네요~" 라는 글이 달렸다.오잉... 그런사람이 많다고?? 함쓰는 JWT 토큰 인증 방식을 사용하고 있다.AccessToken 은 15분 RefreshToken 은 2주를 셋팅하여 사용중이다.앱 차원에서 AccessToken 이 만료되거나 가까워지면 RefreshToken 을 이용해서 자동으로 ..
k3s 에 consul 적용
·
인프라/Kubernetes
현재 내 서버에 10.34.1.151, 152, 153 3개 노드에 k3s 를 설치해 두었다.10.34.1.150 에 vip 를 설정하고 metallb 도 해둔 상태인데이전에 실습하면 consul 서비스를 사용하려면 3개 노드가 필요하다고 하여.. k3s 에 가상화를 적용하지 않고 직접 설치를 했었다.그래서 기존에 존재하는 k3s 에 설치하는 방법을 찾아보았고 잘 되는 것 같아 기록을 남긴다. 일단 k3s 기본으로 같이 설치된 traefik 설정을 변경한다.sudo kubectl edit svc traefik -n kube-systemmetadata: annotations: meta.helm.sh/release-name: traefik meta.helm.sh/release-namespace:..
(연습) postgresql 이중화 (Failover)
·
DB/Postgresql
이전에 작성한 연습글을 보면 이중화까지 완료를 했다.patroni 를 이용하여 master / slave 설정이 끝났다.그럼 한번 master 에 데이터베이스를 만들고 동기화가 잘되는지 보자.일단 현재 설정을 확인해보자. 가상환경에서 실행했으니 가상환경을 띄우고 아래와 같이 해보면gglabadmin@postgresql2:/opt/patroni_venv/venv_patroni$ sudo source venv_patroni/bin/activategglabadmin@postgresql2:/opt/patroni_venv/venv_patroni$ patronictl -c /etc/patroni/patroni.yaml list postgres-cluster+ Cluster: postgres-cluster (7580..
(연습) postgreSQL 이중화 (consul, patroni)
·
DB/Postgresql
postgresql 을 이전에 이중화를 해보려고 글을 쓴적이 있다.당시.. pgpool2 로 진행하다가 실패했다.성공을 못한건 아니었지만 운영을 해보았더니.. 자동 failover 가 문제가 있었고..실제 장애가 나서 처리하는데 애를 꽤 먹었다.그래서 현재 운영중인 서비스는 단일 구성에 하루 2회 백업을 진행하고 있다. 몇년이 지난 지금 검색을 해보니 그때와는 다르게 HA 구성을 하는 듯 하여 다른 방법으로 도전을 해보려고 한다.일단 이번에는 patroni 라는 솔루션을 사용해보려고 한다. 먼저 사용자 입장에서 접근을 한다고 생각해 보자.사용자는 일단 app 서버에 접근할것이다.참고로 내 서버는 nestjs 에 prisma orm 을 사용하였다.그다음 아무런 HA구성이 없다면 DB url을 찾아 바로 ..