일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- kotlin coroutine
- Elasticsearch
- mysql 튜닝
- CKA
- kotlin
- 정보처리기사 실기 기출문제
- Java
- CloudWatch
- 정보처리기사실기 기출문제
- 오블완
- PETERICA
- APM
- IntelliJ
- minikube
- CKA 기출문제
- 정보처리기사 실기
- MySQL
- aws
- 코틀린 코루틴의 정석
- 기록으로 실력을 쌓자
- AWS EKS
- kotlin spring
- 공부
- Linux
- 티스토리챌린지
- AI
- Spring
- Kubernetes
- Pinpoint
- kotlin querydsl
- Today
- Total
목록전체 글 (798)
피터의 개발이야기
[kubernetes] 쿠버네티스 목차 ㅁ 들어가며 ㅇ 4편 [kubernetes] kubernetes event exporter 작업 과정에서 metricbeat kubernetes DNS lookup failure: no such host 이슈가 발생하여 이를 해결하는 과정을 정리하였다. ㅁ 이슈 내용 {"level":"debug","error":"dial tcp: lookup elasticsearch-svc on 10.96.0.10:53: no such host","sink":"elasticsearch-dump","event":"Successfully assigned monitoring/event-exporter-5b67ddd755-xkzhc to minikube","time":"2023-02-21..
ㅁ 개요 개발을 하면서 정규식을 다양하게 사용하게 된다. 로그분석 시 텍스트에서 특정패턴의 값을 추출할 때도 있고, 로그인 시 비밀번호와 이메일의 정합성을 식별하기 위해서도 정규식을 사용한다. 이 글에서는 그 정규식에 대해서 정리하고 자주 사용하는 패턴들에 대해서 정리하였다. ㅁ 정규식이란? 정규식이란 사전적인 의미로는 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어를 말한다. 주로 문자열의 검색과 치환을 위한 용도로 많이 쓰이고 있다. 입력한 문자열에서 특정한 조건의 문자를 추출하는 경우 일반적인 방법은 다소 복잡하고 반복적인 경우가 발생하지만, 정규식을 이용하면 매우 간단하게 표현하고 식별할 수 있다. 하지만 코드는 간소화 되었지만 정규식 자체의 복잡도로 인해 가독성이 많이 떨어지는..
구글 자바 컨벤션 가이드 ㅁ 코드 컨벤션(Code Convention) 코딩 컨벤션은 읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약이다. 개발은 대부분 혼자가 아닌 협업으로 개발하기 때문에 본인이 작성한 코드가 다른 사람들이 이해하기 어렵다면 협업에 문제가 발생하게 된다. 같은 프로젝트 안에서 다른 개발자의 코드를 이해하는데 시간이 소요된 만큼 작업의 능률은 떨어지고, 기능에 대한 오해로 인해 오류가 쉽게 발생할 수 있다. 그래서 코드의 스타일(코딩 규칙)을 통일하기 위한 협약, 약속을 코드 컨벤션이라고 한다. 코드 컨벤션의 궁극적인 목표는 누구나 쉽게 코드를 이해하고 사용할 수 있게 하기위함이다. ㅁ 코드컨벤션의 필요성소프트웨어를 개발하는 일련의 모든 과정에 들어가는 비용 중..
ㅁ 개요 ㅇ 로컬 쿠버네티스 환경에서 테스트 하였던 daemonset을 정지시키는 방법을 정리하였다. ㅁ 중지방법(삭제) 가장 간단한 방법으로 daemonset을 삭제처리하면 된다. $ kubectl delete daemonsets.apps -n elastic fluentd daemonset.apps "fluentd" deleted 하지만 다시 사용하려면 daemonset을 다시 생성해 줘야하는 문제점이 있다. 그래서 별도로 생성 yaml의 관리가 필요하다. $ kubectl apply -f fluentd.yaml serviceaccount/fluentd unchanged clusterrole.rbac.authorization.k8s.io/fluentd unchanged clusterrolebinding..
소스가 IO 채널인 Files.lines(Path, Charset) Stream만 닫아야 합니다. 스트림에는 BaseStream.close() 메서드가 있고 AutoCloseable을 구현하지만 거의 모든 스트림 인스턴스는 실제로 사용 후 닫을 필요가 없습니다. 일반적으로 소스가 IO 채널인 Stream(ex: Files.lines(Path, Charset)에서 반환된 스트림)만 닫아야 합니다. 대부분의 스트림은 특별한 리소스 관리가 필요하지 않은 Collections, Arrays, generating functions에 의해 지원됩니다. 스트림을 닫아야 하는 경우 try-with-resources 문에서 리소스로 선언할 수 있습니다. public static void main(String[] args..
ㅁ 개요 ㅇ Helm 차트를 이용하여 Grafana를 설치하는 과정을 정리하였다. ㅇ 로컬환경(Docker Desktop)에 구성된 kubernetes 환경에서 설치하였다. ㅁ Grafana의 Helm Repository 추가 $ helm repo add grafana https://grafana.github.io/helm-charts "grafana" has been added to your repositories ㅇ Grafana 설치를 위해 Helm Repository를 추가한다. ㅁ Grafana Helm Chart를 다운로드 $ git clone https://github.com/grafana/helm-charts.git Cloning into 'helm-charts'... remote: Enu..
[kubernetes] 쿠버네티스 목차 [kubernetes] 모니터링 방법 정리 ㅁ 개요 지난 글 [Kubernetes] 쿠버네티스API 서버 CURL 접속 방법에서 쿠버네티스API와 REST API 요청을 위한 JWT Token, Service Account 권한 설정을 완료하였다. 이번 글에서는 Spring에서 쿠버네티스 이벤트 정보를 가져오는 방법에 대해서 공부하였다. 아래의 코드를 베이스로 주기적으로 pod 정보를 조회하여 eks fail-over 상황이 발생 시 SMS알람이 발송되도록 개발을 하였다. 하지만 여기서는 pod 정보를 조회하는 부분까지만 정리하였다. 1편 [kubernetes] EKS fail-over 상황정리 및 방어방법 2편 [Kubernetes] 쿠버네티스API 서버 CURL..
[kubernetes] 쿠버네티스 목차 [kubernetes] 모니터링 방법 정리 ㅁ 개요 ㅇ 쿠버네티스 서버에 kubectl이 아닌 curl을 통해 API서버에 직접 접속하는 방법에 대해서 정리하였다. ㅇ 지난 글에서 말한 EKS fail-over 상황을 모니터링하는 방법을 모색하던 중, curl로 직접 접속하는 방법이 있지 찾게 되었다. ㅇ 이곳을 참고하여 공부를 하였다. 1편 [kubernetes] EKS fail-over 상황정리 및 방어방법 2편 [Kubernetes] 쿠버네티스API 서버 CURL 접속 방법 3편 [Kubernetes] Spring에서 쿠버네티스 Pod 정보조회 4편 [kubernetes] kubernetes event exporter ㅁ kubectl은 결국 curl 호출 k..
[kubernetes] 쿠버네티스 목차 [kubernetes] 모니터링 방법 정리 ㅁ 개요 ㅇ EKS에 순단이 발생하여 원인 파악을 위해 이벤트를 보는 방법([kubernetes] Events 보는 방법)을 정리하였다. ㅇ AWS에 장애 상황에 대해 문의를 하였고, EKS fail-over 상황이 발생한 것을 확인 할 수 있었다. ㅇ EKS 장애를 통해 장애 인지 및 모니터링을 위한 개선점을 도출하여, 그 과정을 정리하였다. ㅇ 이 번 글에서는 EKS fail-over 시 발생 현상을 정리하였고, kubectl 수행 시 방어코드를 작성해 보았다. 1편 [kubernetes] EKS fail-over 상황정리 및 방어방법 2편 [Kubernetes] 쿠버네티스API 서버 CURL 접속 방법 3편 [Kube..
ㅁ 개요 ㅇ 테스트를 위해 신규 EKS 클러스터를 생성하였다. ㅇ 하지만 기존 EKS 클러스터dml kubeconfig가 남아 있어서 신규 EKS 클러스터와의 config 설정이 실패하였다. ㅇ 기존 kubeconfig를 삭제하고 신규 kubeconfig를 연결하는 과정을 이력남김. ㅁ 신규 클러스터 생성 시 에러 상황 ㅇ 신규 클러스트를 생성하였지만 실패메시지가 확인되었다. ㅇ AWS console에서 확인한 결과 정상 생성이 완료되었다. ㅇ 신규 클러스터의 상태를 확인하기 위해 pod 정보를 조회하여 보았지만 connection 실패가 확인되었다. ㅁ 로컬 use context확인 ㅇ kubectl config get-contexts 명령어를 통해 kubectl context정보를 확인하였다. ㅇ 기..
[kubernetes] 쿠버네티스 목차 [kubernetes] 모니터링 방법 정리 ㅁ 개요 ㅇ EKS에 순단이 발생하여 장애상황이 발생하였다. ㅇ 장애상황을 확인하는데, 정렬되어 있지 않은 EKS 이벤트 확인이 어려웠다. ㅇ EKS 이벤트의 정렬 방법을 정리하였다. ㅁ 소팅 조회방법 kubectl get events --sort-by='.metadata.creationTimestamp' -A kube-system 60m Normal LeaderElection lease/kube-scheduler ip-10-0-96-181.ap-northeast-2.compute.internal_f02cf5ab-2657-4180-ba3c-a2d39f55f3dd became leader kube-system 60m Norm..
ㅁ 개요 ㅇ CloudWatch 볼륨 지표상에서 Elasticsearch Data Node 볼륨의 병목현상이 발견됨. ㅇ 병목현상의 원인 분석 및 해결 과정 정리 ㅁ 병목현상 확인 ㅇ data node의 볼륨 IO가 병목이 발생하여 IO가 100% 상황 발생하였다. ㅁ 원인분석 GET /_nodes/hot_threads?pretty ㅇ 키바나의 Dev Tools를 이용하여 부하가 발생하는 스래드를 찾았다. 100.0% [cpu=71.2%, other=28.8%] (500ms out of 500ms) cpu usage by thread 'elasticsearch[elasticsearch-data-0][write][T#1]' 5/10 snapshots sharing following 30 elements j..
ㅁ 개요 ㅇ 이번 글에서는 공식문서를 토대로 시작구성을 시작 템플릿으로 마이그레이션을 정리하였다. 1편 [AWS AutoScaling] 시작구성 생성, AutoScalingGroup 생성 2편 [AWS AutoScaling] 시작 구성과 시작 템플릿의 차이점 3편 [AWS AutoScaling] 시작구성을 시작 템플릿으로 마이그레이션하기 ㅁ 시작구성 마이그레이션하기 현재 시작 구성을 사용 중인 경우 콘솔에서 기존 시작 구성의 데이터를 복사하여 해당 데이터를 시작 템플릿으로 마이그레이션할 수 있다. 그런 다음 시작 구성을 사용하는 배포된 오토 스케일링을 새 시작 템플릿으로 마이그레이션할 수 있다. 이렇게 하려면 인스턴스 새로 고침을 시작하여 그룹의 롤링 업데이트를 수행합니다. 자세한 정보는 Auto Sca..
ㅁ 개요 ㅇ AWS AutoScaling의 시작구성의 서비스 지원 종료로 인해 시작구성과 시작템플릿의 차이점을 공부 중이다. ㅇ 공식문서의 내용을 전반적으로 실습하고 그 과정을 정리하고 있다. ㅇ 이 전 글에서 시작구성과 시작템플릿의 차이를 정리하면서 이번 글에서는 시작구성 수정방법에 대해서 정리하였다. 1편 [AWS AutoScaling] 시작구성 생성, AutoScalingGroup 생성 2편 [AWS AutoScaling] 시작 구성과 시작 템플릿의 차이점 3편 [AWS AutoScaling] 시작구성을 시작 템플릿으로 마이그레이션하기 ㅁ 시작구성의 수정방법, 시작 구성 복사 시작구성은 한번 생성된 것은 수정할 수 없다. 그래서 수정을 원한다면 신규로 시작구성을 생성해야한다. 그 과정은 수정을 위한..
ㅁ 개요 ㅇ 2022년 말까지 Amazon EC2 Auto Scaling이 시작 구성(Launch Configuration)에 새로운 EC2 기능에 대한 지원을 더 이상 지원하지 않을 계획을 AWS Compute Blog에서 밝혔다. ㅇ 현재 운영 중인 시작구성을 시작템플릿으로 변경하기위한 작업을 진행하게 되었다. ㅇ 그래서 우선 AutoScaling Group의 시작 구성과 시작 템플릿의 차이점에 대해서 공부하였다. 1편 [AWS AutoScaling] 시작구성 생성, AutoScalingGroup 생성 2편 [AWS AutoScaling] 시작 구성과 시작 템플릿의 차이점 3편 [AWS AutoScaling] 시작구성을 시작 템플릿으로 마이그레이션하기 ㅁ 시작 구성이란? AWS Launch Confi..