공부 60

kubernetes 환경에서 Postgres migration 백업 & 복원

들어가기에 앞서.. 이 글은 k8s 환경에서 postgres의 데이터를 migration 하는 방법입니다. 이하의 글은 수동으로 하는 방법이며, 쉘 스크립트를 이용해 자동으로 하고 싶다면 아래 github을 참고해주세요. https://github.com/aldlfkahs/postgres-migration GitHub - aldlfkahs/postgres-migration: Automate postgres(timescaledb) backup & restore Automate postgres(timescaledb) backup & restore. Contribute to aldlfkahs/postgres-migration development by creating an account on GitHub. g..

공부/Kubernetes 2022.08.17

k8s kubelet forbidden sysctl: not whitelisted 에러 해결

kafkaconnect의 커널 파라미터 설정을 하는데 kubelet에 의해 다음과 같은 에러가 발생했다. forbidden sysctl: "net.ipv4.tcp_retries2" not whitelisted kubelet은 default로 몇몇 sysctl은 허용하지만, 위험한 sysctl은 막는다. 따라서 kubelet 설정에 해당 sysctl을 허용해주어야 한다. 1. Kubelet 설정 파일 위치 찾기 systemctl status kubelet 위 명령어를 치면 아래와같이 나온다 /var/lib/kubelet/config.yaml에 위치하는 것을 알 수 있다. 2. allowedUnsafeSysctls 추가 해당 파일을 연 후 아래와 같이 수정한다. apiVersion: kubelet.confi..

공부/Kubernetes 2022.07.18

Bash를 이용해 여러 파일의 내용을 치환하기

변수 명이 변경되거나 URL 주소가 바뀌는 등, 여러 파일에서 참조하는 값의 이름이 변경되는 경우가 있다. 보통 sed를 이용하면 바꿀 수 있지만 하위 디렉토리까지 재귀적으로는 할 수없다. 하지만 grep과 sed를 같이용하면 recursive하게 하위 디렉토리의 파일까지 내용을 바꿀 수 있다. grep -rl 기존문자열 . | xargs sed -i 's/기존문자열/수정후문자열/g' 이렇게 하면 해당 디렉토리부터 하위 디렉토리까지 모든 파일을 탐색하며 {기존문자열} → {수정후문자열}로 바꾼다. 만약 특정 확장자인 파일의 내용만 치환하고 싶으면 아래와 같이 --include 옵션을 쓰면된다. grep -rl 기존문자열 --include \*.go | xargs sed -i 's/기존문자열/수정후문자열/..

공부/Linux 2022.07.15

Go API server template + Dockerfile & yaml

예전에 만들어둔 Golang API 서버 템플릿을 공유한다. https://github.com/aldlfkahs/go-api-server-template GitHub - aldlfkahs/go-api-server-template Contribute to aldlfkahs/go-api-server-template development by creating an account on GitHub. github.com 간략한 코드 설명은 아래와 같다. func main() { mux := http.NewServeMux() mux.HandleFunc("/test", serveTest) mux.HandleFunc("/hello", serveHello) klog.Info("Starting Go test api ser..

공부/Go 2022.07.09

golang convert []byte(byte array) to map[string]interface{}

모르는 json 형식이 들어왔을 때는 이전에 내가 쓴 글처럼 하면된다. https://togomi.tistory.com/48 golang convert json to interface go에서 json을 파싱할때 struct 구조를 모르거나, 키값 하나만 필요한데 struct는 너무 커서 곤란할 때가 있다. 그럴 땐 interface를 통해 파싱하면 간편하다. exampleJson이라는 변수에 json string이 담겨있다 togomi.tistory.com 하지만 위의 글에서는 인풋이 string이라는 전제가 깔려있다. 이런 전제가 만족되지 않는 경우가 있다. http post의 request body를 처리하다가 이 이슈를 겪었다. request를 처리하는 서버 쪽에서는 []byte 형식으로 들어올 ..

공부/Go 2022.06.22

코딩테스트 준비하기 좋은 사이트

프로그래머스 고득점 kit https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr leetcode top interview question (easy, medium, hard) https://leetcode.com/explore/featured/card/top-interview-questions-easy/ Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are..

공부/알고리즘 2022.06.21

프로그래머스 완전탐색 소수찾기 c++

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42839# 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 코드 #include #include #include #include using namespace std; map M; bool isPrime(string num){ int n = stoi(num); if(M[n]) return false; // 이미 확인한 수라면 중복이기 때문에 false 리턴 M[n] = true; if(n =..

공부/알고리즘 2022.03.31