분류 전체보기 70

k8s 공식문서 contribution 메인 브랜치에 merge!!

사실 main 브랜치에는 진작에 병합 됐었다. 그런데 github contributor에서 내 이름을 찾을 수 없었다ㅠㅠ 찾아보니 상위 100명의 기여자만 보여준다고 한다. 심지어는 날짜를 내가 commit한 날짜로 좁혀도 안나오는데, 전체 상위 100명 기준으로 그 기간사이에 다시 재정렬 하는 것이기 때문에 난 나오지가 않는다고 한다.. 즉, 그 기간내의 상위 100명이 아니라 전체 상위 100명의 그 기간 내의 순위다... 그래서 시무룩했는데 공식문서 맨 아래에 해당 페이지의 최신 업데이트 내역이 남아있었다. 그리고 떡하니 내 커밋 로그가 링크로 연결되어있다!! https://github.com/kubernetes/website/commit/4a275f1426edcc1a6041484a611457e8c..

공부/Kubernetes 2021.10.22

golang convert json to interface

go에서 json을 파싱할때 struct 구조를 모르거나, 키값 하나만 필요한데 struct는 너무 커서 곤란할 때가 있다. 그럴 땐 interface를 통해 파싱하면 간편하다. exampleJson이라는 변수에 json string이 담겨있다고 가정했을 때, 아래 코드로 파싱 가능하다. const exampleJson = `{"kind":"Event","apiVersion":"events.k8s.io/v1"}` var result map[string]interface{} if err := json.Unmarshal([]byte(exampleJson), &result); err != nil { panic(err) } fmt.Println(result["kind"]) // Event 출력 fmt.Print..

공부/Go 2021.10.20

첫 PR 성공적으로 merge!!

이 글에서 이어진다. 추석 연휴 전에 날린 PR이 우여곡절 끝에 merge 되었다. 그 와중에 사소한 이슈가 좀 있었다. 가장 먼저 알게 된 것은 assign은 어지간하면 내가 하는 게 아니라는 것! 어차피 봇이 알아서 리뷰어를 할당해주고 하기때문에 난 그냥 PR만 올리면 된 거였다. 아무튼 그래서 빨리 될 줄 알았는데.. 내가 main 브랜치로 merge로 요청을 한 게 문제가 됐다. 한국어 작업을 하는 브랜치로 targe branch를 변경해달라고 하셨다. 너무 친절히 알려주셔서 정말 감사했다. 그런데 서지훈님께서 "혹시 이런 현상~"이라고 말씀해주신대로 문제가 발생했다. 내가 main 브랜치에서 분기를 쳐서 작업을 했다 보니, 한국어 브랜치로 merge 하는데 문제가 생긴 것이다. 어찌저찌 한국어 ..

공부/Kubernetes 2021.09.24

golang http 코드 예시(golang http skeleton code)

어딘가에 유용하게 쓰기위해 함수를 따로 만들어봤다. method, request url, request body를 파라미터로 받고, response body를 return해주는 함수이다. func ExecuteAPI(method string, url string, data interface{}) []byte { fmt.Println("===============") fmt.Println(method, url) var req *http.Request var err error client := &http.Client{} if data != nil { // POST, PUT, DELETE.... json_body, err := json.Marshal(data) if err != nil { fmt.Errorf(..

공부/Go 2021.09.20

첫 PR 날려봤다

NFS 관련 공식문서를 읽다가 예시를 보기 위해 링크를 눌렀는데 잘못된 링크였다. 확인해보니 master 브랜치인데 링크는 main 브랜치로 되어있던 것이 문제였다. 링크를 고쳐달라고 문의를 보내려고했는데, 그런 방식이 아니라 kubernetes/website라는 github 프로젝트로 관리되는 거였다. 그래서 깃헙 코드를 직접 확인해보니 {{}}를 통해 파라미터로 브랜치를 받고있었다. 그래서 처음에는 이 파라미터를 넘겨주는 값을 main에서 master로 바꾸면 되겠다 싶었지만, 도대체 어디서 넘겨주는지를 알 수가 없었다. 그런데 다행히 똑같은 이슈의 PR들이 이미 있었다. 답변이 말하기로는 파라미터 자체는 해당 프로젝트의 default 브랜치 값을 자동적으로 주어서 문제가 없다고 한다. 그 프로젝트의..

공부/Kubernetes 2021.09.16

Kubernetes Pod-to-Service 통신 매커니즘

k8s에서 가장 까다로운 부분 중 하나는 네트워크라고 생각한다. 이미 구글링 하면 여러 다른 사이트에서 이 글보다 훨씬 쉽고 자세하게 설명해준 글들이 많다. 그래서 나는 굳이 모든 통신의 경우를 다 정리하진 않는 대신, pod-to-service의 통신과정과 실제 환경에서 룰을 확인해볼 것이다. pod-to-service를 알면 그 밑단의 pod-to-pod 혹은 다른 노드 간의 pod-to-pod 통신도 쉽게 이해할 수 있기 때문이다. 구조 위 그림은 node X의 pod A가 service를 통해 node Y의 pod B로 통신하는 과정을 보여주고 있다. 이 시나리오에 따라 차례차례 설명하도록 하겠다. ① pod A가 DNS 서비스로 콜 pod A가 서비스(DNS)로 콜을 보내면, 각 컨테이너의 /e..

공부/Kubernetes 2021.09.15

2020 카카오 코딩테스트 문자열 압축 c++ solution

#include using namespace std; int solution(string s) { int answer = s.size(); for(int i=1; i 1) zip += to_string(count); zip += temp; answer = answer < zip.size() ? answer : zip.size(); } return answer; } 압축한 문자열을 새로 만들 생각을 못하고, 기존의 문자열을 수정할 생각에 갇혀서 못풀었다. 결국 다른 분의 솔루션을 보고 풀었다. zip 변수가 그것이다. 참고 : https://yjyoon-dev.github.io/kakao/2020/11/05/kakao-strzip/

공부/알고리즘 2021.09.10