일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 공부
- 오블완
- go
- AI
- Linux
- 정보처리기사실기 기출문제
- PETERICA
- Elasticsearch
- golang
- CKA
- kotlin querydsl
- aws
- APM
- 기록으로 실력을 쌓자
- 정보처리기사 실기 기출문제
- tucker의 go 언어 프로그래밍
- SRE
- minikube
- Kubernetes
- Pinpoint
- CloudWatch
- kotlin coroutine
- kotlin
- Spring
- Java
- MySQL
- CKA 기출문제
- AWS EKS
- 코틀린 코루틴의 정석
- 티스토리챌린지
- Today
- Total
목록분류 전체보기 (887)
피터의 개발이야기

ㅇ DevOps는 일종의 문화이다. 개발과 운영을 통합하여 전인적인 개발자로 성장할 수 있는 길이라고 생각한다. 전체를 바라보고 미쳐 알지 못했던 DevOps로서 알아야 할 덕목들을 한분에 볼 수 있는 로그맵을 발견하려 글을 남겨본다. DevOps는 한사람으로 하여금 정말 많은 역할을 수행할 수 있는 기술력을 갖추게 한다.

ㅁ 개요 ㅇ Amazon Elastic Kubernetes Service(Amazon EKS)환경에서 Jenkins를 Pod로 생성하여 사용 중이다 ㅇ 검수계의 경우 비용절감을 위해 일과시간만 사용하다보니 포드가 생성되는 과정에서 에러가 발생할 때가 있다. ㅇ 젠킨스의 error 상황을 확인하고 조치하는 과정을 정리해 보았다. ㅁ 포드 상태 확인 kubectl get pod | grep jenkins ㅇ CrashLoopBackOff 상태로 현재 포드는 기동되어 있지 않은 상태이다. ㅇ CrashLoopBackOff에 걸린 포드가 반복적으로 시작되고 충돌합니다. ㅇ "Back-Off restarting failed container" 출력 메시지를 수신하는 경우 Kubernetes가 컨테이너를 시..

ㅁ 개요 ㅇ Kubernetes환경에서 시스템을 운영하면서 트래픽에 따라 수시로 scale In/Out된다. ㅇ 이런 과정에서 pod가 종료되는 시점에 502 에러가 발생하여 이를 해결하기 위해 고민하게 되었다. ㅇ [Kubernetes] Kubernetes환경에서 graceful shutdown이란 글을 작성하였고, 이 글에서는 graceful shutdown을 적용하는 방법에 대해서 정리하였다. ㅁ SpringBoot에서 graceful Shutdown이란 graceful Shutdown이란 할건 하고 종료하자이다. graceful shutdown은 SpringBoot 어플리케이션 서버 종료 시 webserver를 우선 종료시켜 새로운 요청을 받지 않고, 처리 중인 요청을 완료한 후에 종료하는 것이다..

ㅁ SpringBoot 2.3 이전 버젼에서 graceful shutdown 구현 import org.apache.catalina.connector.Connector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextClosedEvent; import java.util.concurrent.Executor; import java.u..

ㅁ 개요 Kubernetes환경에서 graceful shutdown의 적용방법을 공부하면서 Kubernetes환경에서 오케스트레이션 작업 중 Pod가 종료되는 과정이 많다. 로드밸런싱 역할을 하는 Service와 속해 있는 Pod 들이 종료하는 과정을 정리하였습니다. ㅁ Kubernetes의 Pod 종료과정 1- Pod가 Terminating 상태로 전환되고 새 트래픽 수신을 중지합니다. 컨테이너는 여전히 Pod 내에서 실행 중입니다. 2- preStop hook은 특별한 명령이나 HTTP 요청이 실행되어 Pod 내부의 컨테이너로 전송됩니다. Termination 상태가 된 Pod은 Service의 로드밸런싱 대상에서 제외된다. 로드 밸런싱 대상에서 제외됐으므로 더이상 해당 Pod으로 트래픽이 전달되지 ..

ㅁ 개요 ㅇ Kubernetes가 배포 절차를 수행해 주지만 컨테이너 안에서 Spring Boot 애플리케이션의 정상적인 종료를 위해서는 Graceful shutdown이 필요하다. ㅇ 트래픽에 따라 AutoScaling 되면서 502error가 발생하기 때문이다. ㅇ 502 Error가 발생하는 과정을 설명하고 graceful shutdown의 적용필요성을 정리하였다. ㅁ Graceful shutdown이란 우아한 종료라고 직역할 수 있을 것이다. 이 말을 생각해보면, 마무리를 잘하여 좋게 끝난다는 의미를 내포하고 있다. 다시 말해 할일을 다 마치고 우아하게 종료하는 것이다. 예를 들어 생각해보자. 우리가 문서작업을 할 때에 우리가 원하는 작업이 정상적으로 완료되면, 파일을 저장하고 해당 문서편집파일을..

ㅁ Amazon ECR plugin 에러 발생 Amazon ECR Failed to load: Amazon ECR plugin (amazon-ecr 1.6) - Failed to load: Amazon Web Services SDK :: All (aws-java-sdk 1.12.215-339.vdc07efc5320c) Amazon Web Services SDK :: All Failed to load: Amazon Web Services SDK :: All (aws-java-sdk 1.12.215-339.vdc07efc5320c) - Plugin is missing: aws-java-sdk-codebuild (1.12.215-339.vdc07efc5320c) ㅁ 프로젝트 빌드 실패 ERROR: Could ..

ㅁ Minikube 관련 글 ㅇ [minikube] 맥에 minikube를 사용해 로컬 kubernetes 설치 ㅇ [minikube] minikube 기본 명령어 정리 ㅇ [minikube] minikube 다중노드 구성하기 ㅇ [minikube] minikube에서 meteric server 실행하기 ㅇ [minikube] minikube dashboard 활성화 방법 ㅁ 개요 ㅇ 로컬에서 쿠버네티스 공부를 시작하는 경우, minikube를 사용해 간단하게 단일 노드 클러스터를 구성할 수 있다 ㅇ 단일 노드의 가상머신에서만 실행되기 때문에 분산된 쿠버네티스 클러스터의 안정성은 보장할 수 없다. ㅇ Mac OS에서 minikube를 설치하는 과정을 정리하였다 ㅁ Minikube란? Minikube는 K..

ㅁ 개요 ㅇ 개발 젠킨스 플러그인이 문제가 발생하여 이를 조치하는 과정을 정리하였다. ㅁ Dependency errors Dependency errors: SSH Credentials Plugin (277.v95c2fec1c047) Update required: Trilead API Plugin (trilead-api 1.0.8) to be updated to 1.0.13 or higher Jackson 2 API Plugin (2.13.3-285.vc03c0256d517) Update required: JAXB plugin (jaxb 2.3.0) to be updated to 2.3.6-1 or higher Jenkins GIT server Plugin (1.11) Update required: SSH..

ㅁ 개요 ㅇ API 요청에 대한 상세정보의 히스토리 관리를 위해 사용하고 있던 MongoDB에 부하가 발생하였다. ㅇ 부하의 원인이 된 요청을 찾고 Kill하여 부하를 해소하였고, 그 과정을 정리하였다. ㅁ 장애인지 ㅇ MongoDB가 사용하는 볼륨의 DISK I/O가 96%가 넘었다고 알람이 발생하였다. ㅇ DISK I/O가 100%가 되었다. ㅇ CPU 사용량을 30%미만이었고, DISK I/O만 높은 상태였다. ㅇ 히스토리 관리를 위한 저장용으로 사용하다보니 단건에 대한 확인용으로만 설계되어 있어서 Collection당 많은 데이터가 존재하였다. ㅇ Key값이 아닌 다른 비교조건을 넣는 경우 상당한 데이터가 조회되는 구조였다. ㅇ 어떤 요청인지 정확히 알 수는 없지만(사실 원인파악보다 ..