[Docker] k8s Image digest값 사용

쿠버네티스를 구축하면서 GCP 관계자분들에게 배울 수 있는 Deep-Dive 라는 일주일 교육(?)을 들을 수 있었다. 교육이라지만 단순히 이론이 아닌 실제 App들을 준비해서 이를 k8s에 올려보고 시행착오를 풀어나가는 과정을 같이 수행하는 것이다. 이 교육 중 한가지를 이제 적용해보고자 한다. Kubernetes docker의 보안 현재 Container Image Registry로 GCP의 Artifact Registry를 사용중이고, App:30 과 같은 Image 태그에 빌드 번호를 … 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

[Pinpoint] Collector Starter, Web Starter, Agent 설치

Pinpoint 3.0을 활용하고 싶으면 Pinot, Kafka를 설치해서 Metrics을 수집할 수 있기에 매뉴얼은 위에 기록했다. Pinpoint 3.0에는 일반적인 Collector, Web도 있지만 Pinot와 Kafka를 붙여서 사용하는 Collector Starter, Web Starter라는 것이 있다. 여기서 크게 문제가 됐던 부분이 있어서…. 헤맨 기억이 있다. Collector Starter v3.0 설치하기 위경로에서 jar 파일을 다운 받고 기존에 설치했던 java를 통해 실행만 시켜주면 끝이다. … Read more

[Pinpoint] Pinot, Kafka 설치

Pinpoint 3.0을 사용하려면 Pinot, Kafka 설치 전 HBase를 설치하는 매뉴얼은 위에 기록했다. Pinpoint 3.0부터는 System Metrics를 수집하는 것이 하나의 특징을 보인다. 그렇다면 이러한 System Metrics를 수집해보는 것이 당연하다 느껴져서 이를 도전해보고자 했다. System Metrics 수집은 Pinot와 Kafka를 필요로 하기에 설치를 진행했다.(Pinot는 처음 들어보는…..) Kafka v2.13 설치하기 위 경로에서 2.13 버전을 다운받아 압축을 풀어준 후에는 zookeeper.properties에서 … Read more

[Pinpoint] HBase v2.5.10 설치하기

Naver에서 개발한 오픈소스인 Pinpoint… APM Tool이면서 성능 분석도구로 많이 사용하고 있다. 다른 APM 툴에 비해서 장단점은 명확히 존재하지만, 오픈소스기도 하고 따로 소스코드쪽 수정이 필요없기에 많은 선택을 받고 있다고 생각한다. Pinpoint는 여러가지 서비스(모듈)들이 합쳐지는데 각각의 버전 호환 여부가 중요하다. https://github.com/pinpoint-apm/pinpoint 위 링크를 통해 버전들을 확인해보면서 아직 정식출시되지는 않았지만 어느정도 개발이 완료된 것 같은 Pinpoint 3.0을 채택하였다.(실제 … Read more

[Linux] fstab 파일에 대한 이해

서버를 관리하는 엔지니어면 대부분 알고 있는 fstab에 대해서 기록하고자 한다. fstab은 한마디로 “서버 부팅단계에서 마운트되어야 할 볼륨 정보를 담은 파일”이다. 서버 부팅중 에러가 나는 경우의 절반은 fstab이 차지했던 것 같다.(이제는 별로 그럴 일은 없지만..) 먼저 간단하게 fstab에 예는 아래와 같다. fstab 파일 /etc/fstab에 존재하고 있으며 크게 6개의 정보로 이루어진다. 1번 – UUID 또는 /dev/vdb(장치명)으로 표현되는데 … Read more

[RabbitMQ] RabbitMQ에 대한 이해

사내 서비스들 중 대부분 RabbitMQ를 사용하고 있지만, 과연 우리가 RabbitMQ를 100% 활용하고 있는가에 대한 의문이 들었다. 내가 알고 있는 RabbitMQ에 대한 정보는 극히 적었다. AMQP를 통해 Producer와 Consumer 사이에서 메시지를 중계해주는 “메시지 브로커”라는 것이며, 크게 Standalone과 Cluster로 구성할 수 있으며, Standalone은 흔히 아는 단독으로 1개의 노드를 띄우며, Cluster는 3개 이상의 노드로 홀 수의 노드를 띄우는 … Read more