일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- aws
- MySQL
- 정보처리기사 실기
- kotlin
- 기록으로 실력을 쌓자
- minikube
- Pinpoint
- mysql 튜닝
- Kubernetes
- Java
- AWS EKS
- kotlin querydsl
- CKA 기출문제
- kotlin spring
- 공부
- CloudWatch
- IntelliJ
- 정보처리기사 실기 기출문제
- Spring
- PETERICA
- kotlin coroutine
- Linux
- 오블완
- CKA
- 티스토리챌린지
- APM
- AI
- Elasticsearch
- 코틀린 코루틴의 정석
- 정보처리기사실기 기출문제
- Today
- Total
목록전체 글 (791)
피터의 개발이야기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/1ENzv/btrIwIpRKJE/wPBicIK035e1Nb6Jd7vD6k/img.png)
ㅁ 개요 ㅇ 검수기 전용회선 네트워크 오류가 발생하였다. ㅇ Grafana 컨테이너를 추가하면서 Ingress 변경작업으로 인해 ALB 주소가 변경 되어 발생한 문제점이었다. ㅇ ALB 주소와 연결된 다른 설정부분을 설명하며, 해결과정에 대해서 정리하였다. ㅁ 검수기 전용회선 네트워크 오류 확인 요청이 인입되어 네트워크 확인 작업 ㅇ전체 네트워크 흐름에 따라 체크를 시작하였다. ㅇ Route53의 레코드 확인, 문제 없음. ㅇ 로드밸런서도 활성화 상태이다. ㅇ 접속 장애가 나고 있는 443 리스너의 대상그룹을 확인해야 한다 ㅇ Grafana 컨테이너 추가 작업 후 외부 접속을 위해 Ingress 수정 작업을 했던 시점에서 헬스케크에 문제점이 시작되었다. ㅇ 네트워크 인터페이스에서 해당 IP를 확인해 보았..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b26nBw/btrNcmuRXrF/QmZ1pz9GbsizDYgScgBL61/img.png)
ㅁ 개요 ㅇ 검수기 서비스와 연동되어 있는 Agent에서 세션 절단 및 재접속 테스트를 위해 서비스를 단절 및 재기동요청이 왔다. ㅇ 작업을 진행하면서 POD재기동 방법을 정리하였다. ㅁ 테스트를 위한 5개 POD 생성 ㅁ Rollout ㅇ rollout에 명령어에 대한 사용방법이다. kubectl rollout restart deployment hello-world ㅇ rollout은 말그래도 pod들이 순차적으로 재기동되고 있다. ㅇ 순차적으로 재기동 되어 기존 POD는 Terminating 되었다. ㅁ Scale kubectl scale deployment hello-world --replicas=5 ㅇ replicas를 0으로 변경하여 모든 pod를 Terminating 한다. ㅇ replicas..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6N16c/btrM4QXhbD0/BhlvzuE8EeKL7jK1XiNQSk/img.png)
ㅁ 개요 ㅇ 긴 코드를 미니맵 형태로 에디터 창에 표시하는 CodeGlance 플로그인 설치 과정 정리 ㅁ CodeGlance 플로그인 설치 ㅇ 파일 > 설정 창에서 플러그인을 검색하여 설치를 한다. ㅇ 설치가 완료되면 IDE를 재시작한다. ㅁ 설치 확인 ㅇ코드가 미니맴 형태로 표시된 것을 확인할 수 있다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/RZgxz/btrMXkkpSa3/NjHqWLd9c53OWtxhOE95Y1/img.png)
ㅁ 개요 ㅇ GitToolBox 플러그인은 소스라인 별 마지막 커밋 정보를 보여 준다. ㅇ 개발하면서 소스의 이력을 바로 확인 할 수 있어, 해당 플러그인을 설치하였다. ㅁ GitToolBox 설치 ㅇ File > Settings로 이동해서 플러그인을 설치한다. ㅇ 설치 완료 후 재기동을 해야한다. ㅇ 재기동 후 GIT에 접속을 위한 인증정보를 입력해야한다. ㅁ 적용 확인 ㅇ 선택된 라인의 마지막 커밋정보를 바로 확인할 수 있다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/XAEky/btrMWd6dTjA/nk1zYkTecUJK2bKqE7vmK1/img.png)
ㅁ 개요 ㅇ 이전 글에서 skaffold로 kubernetes 로컬 개발환경을 구성하였다. ㅇ 이번 글에서는 kubernetes pod에서 실행 중이 Spring Application를 직접 Debugging 하는 환경을 구성한다. ㅇ 이전 글: [kubernets] Kubernetes 로컬 개발환경 skaffold, Intellij ㅇ 소스 위치 ㅁ Cloud Code Plugin 설치 ㅇ Cloud Code 플러그 인을 설치하였다. ㅇ Cloud 환경에서 개발의 속도와 능률을 증가하기 위해 제공되는 플러그 인이다. ㅇ 쿠버네티스에서 실행되는 resource에 대한 디버깅이 가능하고, 리소스 선언을 위한 YAML 파일 편집을 지원한다. ㅁ Cloud Code:Kubernetes Run Configura..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xpeOq/btrMVtBpHRw/e1qstiZ2KKGDwpJtvmO3s0/img.png)
[kubernetes] 개발환경 목차 ㅁ 개요 ㅇ skaffold와 Intellij를 연동하여 쿠버네티스 로컬 개발환경 세팅하면서 발생한 문제를 해결하는 과정 정리 ㅇ 이전 글: [kubernets] Kubernetes 로컬 개발환경 skaffold, Intellij ㅁ 목록 ㅇ Gradle 오류발생 ㅇ skaffold build 중 Git init 오류 ㅇ skaffold run 시 image pull 에러 ㅁ 트러블슈팅1, Gradle 오류발생 ㅇ Gradle 7.5가 로컬에서 실행되면서 문제가 발생하였다. ㅇ 현재 개발환경과 최근 Gradle의 버젼이 맞이 않아서 발생. ㅇ Gradle 6.8.3으로 수정하여 문제 해결함. ㅁ 트러블슈팅2, skaffold build 중 Git init 오류 $ s..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bhJsLv/btrMUS2nZOV/hRUARyRWAULKmV7f608Jck/img.png)
[kubernetes] 개발환경 목차 ㅁ 개요 ㅇ [kubernets] skaffold란, Kubernetes 로컬 개발환경에서 skaffold를 알아보았습니다. ㅇ skaffold와 Intellij를 연동하여 쿠버네티스 로컬 개발환경 세팅하는 과정을 정리하였습니다. ㅇ 궁극적으로 skaffold를 통해 쿠버네티스 환경에서 Debug모드로 프로세스의 흐름을 분석하는 것이다. ㅇ skaffold를 구성을 공부하는 과정에서 트러블 슈팅은 여기에 정리되어 있다. ㅁ Spring 샘플 프로젝트 생성 ㅇ Spring 샘플 프로젝트를 생성하여 해당 프로젝트를 Intellij로 실행하였다. ㅇ 참고로 위 이미지는 트러블 슈팅으로 인해 예전에 만든 프로젝트 이름임. ㅁ skaffold.yaml 생성 ㅇ skaffold..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pXIJQ/btrMRqcyEdw/sYQs8BjYDwKjlFG0kmd4fk/img.png)
[kubernetes] 쿠버네티스 목차 [kubernetes] 모니터링 방법 정리 ㅁ 개요 ㅇ 현재 EKS 업그레이드 작업을 진행 중에 Describe를 통해 개별 Event를 확인하기는 번거로움이 있었다. ㅇ 그래서 업그레이드 과정에서 이상이 발생한 pod들 전체 event를 볼 수 있는 방법에 대해 정리하였다. ㅁ 테스트용 Pod 실행 $ kubectl run centos --image=centos:7 --port=8081 pod/centos created ㅁ Pod Event 확인 ㅇ kubectl describe po centos 명령어를 통해 하단의 Events를 확인할 수 있다. ㅁ 전체 이벤트 확인 $ kubectl get events LAST SEEN TYPE REASON OBJECT ME..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bz4gQw/btrMJt1E5n4/8yxwoFCkJUkvfVoVkqpLyk/img.png)
ㅁ 개요 ㅇ AWS EKS 1.20 지원일이 2022년 11월 1일까지이다. 현재 사용중인 1.20에서 1.21으로, 다시 1.22로 업그레이드 할 예정이다. ㅇ 실질적인 EKS 버젼업 작업을 하기 전에 kubernetes 스키마 유효성 검사를 수행하는 방법에 대해서 정리하였다. ㅁ Amazon EKS Kubernetes 릴리스 일정 ㅇ 자세한 내용은 이곳에서 확인할 수 있다. ㅁ kubernetes 클러스터, dry-run Kubernetes CLI(kubectl)에는 클러스터에 적용되기 전에 리소스를 확인할 수 있는 기능이 있다. 클러스터에 Kubernetes 리소스를 적용하지 않고 유효성 검사를 수행하는 kubectl create 또는 kubectl apply 명령을 수행할 때 dry-run ( -..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cWa6gI/btrMFGatxGI/X23Sjku9DIjHwdrkmnUQs0/img.png)
[kubernetes] 개발환경 목차 ㅁ kubernetes 로컬 개발 환경의 한계 Kubernetes 는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 탁월한 도구이다. 하지만 Kubernetes의 로컬 개발환경은 고통스러운 프로세스일 수 있다. 일반적인 워크플로를 설명하자면, 로컬에서 코드의 수정 및 기능 테스트를 확인하고, 도커 이미지를 빌드 및 태그 지정하고, 배포 구성을 만들고 Kubernetes에 배포한다. 버그가 있거나 업그레이드가 필요한 경우 개발자는 처음부터 동일한 절차를 따라야 한다. ㅁ Skaffold란? Skaffold는 Kubernetes 네이티브 애플리케이션을 위한 지속적인 개발을 용이하게 하는 CLI 도구이다. Skaffold는 애플리케이션을 빌드, 푸시 및..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/112cK/btrMIn8ZHZg/LoMzoQBwIYna4p8MeG5m50/img.png)
[kubernetes] 개발환경 목차 ㅁ 개요 ㅇ DevOps 개발자로서 k8s schema를 편집할 일이 자주 발생한다. ㅇ 편집된 k8s에 대한 보안적, 문법적 이슈에 대해서 검증해 줄 수 있는 Datree를 사용 중이다. ㅇ 자동완성기능과 쿠버네티스 타켓 버젼을 바꾸는 방법을 정리하였다. ㅁ 자동완성기능 $ echo 'source
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tlI81/btrME1K4qPK/I13Fp1JTLyq77R3hvsZPZk/img.png)
ㅁ 개요 ㅇ 이글은 [EBS] EKS 생성, MongoDB 구성, gp2에서 gp3 EBS 볼륨으로 마이그레이션 에서 이어지는 글이다. ㅇ CSI Driver 설치 없이 AWS Console에서 gp2에서 gp3로 타입변경을 한 상태에서 포퍼먼스 테스트를 진행하려 한다. ㅇ 테스트를 위한 gp2 생성과 테스트 pod는 AWS 문서를 참조하였다. ㅁ Storageclasses gp2에 대한 이해 [ec2-user@ip-172-31-43-214 gp3Test]$ kubectl get sc gp2 NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE gp2 (default) kubernetes.io/aws-ebs Delete Wai..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baZZau/btrMkGa5saS/Z5fcBkropF5qWYkRxrw2K1/img.png)
ㅁ 개요 ㅇ MonogoDB의 볼륨이 gp2로 구성되어 있는 것을 gp3로 변경 테스트환경 구성과정 정리 ㅇ EKS에 CSI Driver를 설치 하지 않고 AWS Console에서 gp3 업그레이드 후 볼륨 접속 확인 ㅁ EKSCTL를 이용한 EKS 생성 및 확인과정 $ eksctl create cluster --name k8s-peter --region ap-northeast-2 --version 1.20 --nodegroup-name work-nodes --nodes 1 --nodes-min 1 --nodes-max 3 --node-type t3.medium --node-volume-size=20 --with-oidc --ssh-access --ssh-public-key aws-login-key --..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/4mJSv/btrMozBJMEz/0SWVJ13rKoXEveTy2WPgSK/img.png)
ㅁ 개요 ㅇ 생성되어 있는 CloudFormation 스택을 삭제하는 과정 정리 ㅁ 삭제 이유 ㅇ EKS는 유지하는 비용이 발생한다. 그래서 사용하지 않은 EKS는 삭제처리 하였는데, CloudFormation의 스택은 그대로 남아있었다. ㅇ CloudFormation의 비용은 발생하지 않는다. 다만 생성된 스택의 리소스만 비용이 발생한다. ㅇ 기타 리소스도 깔끔하게 정리하기 위해 삭제처리한다. ㅁ 스택 조회 ㅇ eksctl-k8s-demo-cluster를 삭제하려고 한다. ㅇ 스택을 선택하고 삭제를 클릭한다. ㅁ 삭제 시 모든 스택 리소스 삭제 ㅇ CloudFormation으로 구성된 스택의 리소스를 확인할 수 있다. ㅇ 스택 삭제 작업 중에 선택한 리소스는 삭제를 하지 않느다. ㅁ 삭제 진행 중, D..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DgiMQ/btrICPVnLPL/IjghbbqIOrn07DXeKxEFc1/img.png)
ㅁ 헬렘 설치하기 $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 $ chmod 700 get_helm.sh $ ./get_helm.sh ㅁ 설치 확인 helm version ㅁ 헬렘 자동완성기능 추가 # helm zsh 자동완성기능 추가 $ echo 'source > ~/.bashrc [ec2-user@ip-172-31-43-214 ~]$ helm completion (generate autocompletion scripts for the specified shell) push (push a chart to remote) create (create a new chart with t..