[Vault] Vault helm으로 설치하기

Vault를 helm으로 설치하는 것 자체는 그리 어렵지 않았다. 다만 설정을 해주는 부분들과 values.yaml을 파악하는 부분이 조금 어색했다. 일단 내가 설치한 방식대로 기록했다. Vault 설치하기 먼저 hashicorp의 repo를 추가해준다. values.yaml을 다운받고 수정해주면 되는데, 여타 helm들이 그렇듯 values를 어떻게 요리하냐에 따라 활용성이 크게 달라진다. 먼저 vault는 다른 Worker Node에 기동되길 원해서 tolerations를 설정했다. Kubernetes에 올리는 만큼 HA를 … Read more

[Vault] k8s에서 사용되는 Vault 종류

기존에 DB 데이터 암호화/복호화에 사용되는 Key, Password들을 Vault에 저장을 해서 썼다. WAS들이 기동 시 Vault에 있는 값을 API를 통해 가져와서 사용하게끔 구축되어 있었다. 하지만 이제는 Kubernetes에 올라가 있는 Pod들이 Vault에 접근을 해야하기 때문에 Vault의 HA가 무엇보다 중요하게 느껴졌다. 고심하던 중, Kubernetes에서 Vault를 올려서 HA를 보장받자라는 생각으로 진행하게 되었다. Vault in k8s Kubernetes에서 올라가는 Vault에 대한 … Read more

[k8s] CKAD 자격증 준비

회사에서 연 1회 자격증이 필수로 되어있다. 자기계발에는 좋지만 막상 미루고 미루다 보면 생각보다 스트레스가 생기는… 하지만 따면 또 좋은… 매번 이런 딜레마에 빠진다. 이전까지는 Cloud 자격증을 땄었지만 이번에는 GKE를 사용하기에 k8s관련 자격증을 따고자한다. kubernetes를 이제 도입하고 있는 시점이기에 숙련도가 높은건 아니여서 CKAD도 공부를 좀 하면서 자격증을 따야할 것 같다. CKAD란? Certified Kubernetes Application Developer의 약자로 … Read more

[ArgoCD] Fail: Status code 400 is not in the accepted range: 100:399

이전에 작성했던 ArgoCD를 API로 조작하던 중, 특정 Application을 sync하거나 수정할 때에 위의 에러를 많이 마주해왔다. 에러를 보면 400 응답값을 받은 것으로 보인다. 하지만 400 응답코드는 흔히 말하는 400 Bad Request인데, 이를 연관짓기가 쉽지 않았다. 특히나 다른 Application에는 똑같은 코드로도 API가 정상응답이 오고, 특정 Application에만 400응답이 오는게 너무 미심쩍었다. 어려운 문제일 수록 해결법은 간단하다. 사실 위의 … Read more

[Jenkins] Jenkins에서 ArgoCD API 사용하기

k8s로 신규 프로젝트를 진행하는 만큼, 기존에 사용해왔던 tool이랑 신규로 사용하는 tool을 적절히 조화롭게 써야한다고 생각했다. 신규 프로젝트라고 처음 사용하는 tool들을 사용하다보면 학습시간이 더 많이 소요될 수 있기 때문이다. 그래서 난 평소에 자주 쓰던 Jenkins와 처음 사용해보는 ArgoCD를 조합하고자 했다.(사실 ArgoCD는 API를 통해서 조종하는거라 조합이라기에는 애매하다….) ArgoCD Token 받아오기 먼저 Jenkins에서 ArgoCD Token을 받아오고 해당 Token을 … Read more

[Jenkins] HTTP Request 사용하기

업무에 있어서 많이 사용하고 있는 Tool중 하나인 Jenkins에서 HTTP Requset를 날리는 법을 작성하고자 한다. curl을 사용해서 스크립트를 작성할 수도 있지만 뭔가 멋이 안난다. Jenkins는 수많은 플러그인을 제공하고 있기에 이를 사용하면서 스크립트를 작성하고자 욕구가 있다… 간단하게 현재 사용하고 있는 방법에 대해서만 작성해야겠다. HTTP Requset Example 위의 3가지 response들은 각각의 예제들인데, 특정 헤더값을 넣고 싶거나 Body형태에 따라서 … Read more

[gRPC] gRPC의 이해

Pinpoint에서 gRPC를 사용해서 통신을 하는 방법이 있기도 하고, 현재 gRPC에 대한 제대로 된 이해조차 없이 무지성 사용중이기에 이를 조금 이해하고자 한다. gRPC와 비교할만한 군이 REST라고 생각하는데, gRPC에 대해 중점적으로 알아봤다. gRPC? RPC? gRPC는 구글이 최초로 개발한 오픈소스 RPC 시스템이다.(참조: https://ko.wikipedia.org/wiki/GRPC) 원격 프로시저 호출(RPC) 모델을 기반으로 한다는데… 사실 이게 무슨 말인지 하나도 이해가 안간다. 먼저 RPC에 … Read more

[Linux] netstat 명령어

현업에서 자주 사용되는 명령어 중 하나인 netstat에 대해 다뤄볼까 한다. 간단한 명령어기도 하고, 자주 쓰이는 옵션들은 한정적이라 깊게 다룰만한 명령어는 아니지만 정말 유용하게 쓰인다. netstat 네트워크 연결에 관한 정보를 표시해주는 명령어인데, 주로 현재 서버에서 열려있는 port 및 해당 port를 물고 있는 프로세스 확인의 용도로 사용하고 있다. 단순하게 netstat을 쳐보면 어지러운 글자들의 향연이 펼쳐진다. 그렇기에 필요한 … Read more

[Kubernetes] VSCode virtualbox 연결하기

virtualbox로 만든 vm에 있는 minikube에 붙는 것이 목적이다. minikube 설치하는 방법은 아래의 링크를 참고하면 좋을 것 같다. VSCode virtualbox 연결하기 먼저 연결할 vm에 네트워크 설정에 들어가 어댑터 1번의 포트포워딩을 추가한다.(로컬 PC의 13222 port를 해당 장비의 22 port로 포워딩하는 규칙이다.) VSCode의 Remote-SSH로 위와 같은 config를 작성한다. 그 후 원격연결을 시도하면 SSH를 통해 해당 VM에 붙는 것을 … Read more

[Kubernetes] minikube 설치 in Windows

Windows에 minikube 설치를 필요로 한 계기는 딱 하나였다. 개발자들이 로컬 PC에서 개발을 할 때, kubernetes의 환경을 미리 접하면 좋을 것 같다라는 의견이 시작이였다. 물론 개인마다 k8s를 줄 수 있다면 좋겠지만, 여러 문제들이 있기에 로컬 PC에 minikube를 설치하여 진행하기로 한 것이다. 개발자들의 PC는 MacOS가 대부분이지만 Windows도 있고, 내 컴퓨터도 마찬가지기에 Windows로 진행을 해보기로 했다. VirtualBox 설치하기 … Read more