일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AI
- 기록으로 실력을 쌓자
- Elasticsearch
- MySQL
- IntelliJ
- CKA 기출문제
- AWS EKS
- 코틀린 코루틴의 정석
- CKA
- Java
- kotlin querydsl
- Linux
- PETERICA
- 정보처리기사실기 기출문제
- Spring
- 정보처리기사 실기
- minikube
- mysql 튜닝
- APM
- kotlin coroutine
- Pinpoint
- Kubernetes
- CloudWatch
- kotlin
- aws
- 공부
- 오블완
- kotlin spring
- 티스토리챌린지
- 정보처리기사 실기 기출문제
- Today
- Total
목록전체 글 (798)
피터의 개발이야기
ㅁ 쿠버네티스 볼륨 쿠버네티스 환경에서 노드에 장애가 발생하면 컨테이너를 새로 실행하기 마련이다. 그렇기 때문에 쿠버네티스는 기본적으로 컨테이너는 stateless를 추구하고 있다. 이를 통해 서비스를 자동으로 쉽게 운영할 수 있는 장점을 가지게 되지만, 데이터를 꼭 보존해야할 경우 단점이 될 수 있다. 앱의 특성에 따라 컨테이너에 문제가 발생해도 데이터를 보존하기 위해 볼륨을 사용한다. 볼륨을 사용하면 컨테이너가 재시작하여도 데이터를 유지할 수 있다. 더욱이 퍼시스턴트 볼륨을 사용하여 노드에 종속하지 않고 다른 노드에서 컨테이너가 재시작하더라도 볼륨의 데이터를 그대로 사용할 수 있다. 볼륨이나 퍼시스턴트 볼륨을 사용하면 서버 하나에 종속되지 않고 데이터를 접근하여 안정적으로 서비스를 운영할 수 있다. ..
ㅁ 이전 글 [EBS] EKS 생성, MongoDB 구성, gp2에서 gp3 EBS 볼륨으로 마이그레이션 [Kubernetes] 쿠버네티스 볼륨 개념 1편 (emptryDir, hostPath) 일전 StorageClass 변경에 관한 글을 작성하면서 AWS 볼륨과 PV, PVC 관계이해 정리한 적이 있다. 그래도 복잡했다. 실제 볼륨의 증설 작업을 하면서 pvc에 스토리지 용량을 변경해야하는지 pv의 스토리지 용량을 변경해야하는 지 헷갈리기도 했는데, 문득 궁금하였다. 왜 pv와 pvc를 구분하여 복잡하게 했을까? 그래서 공부하다가 이해한 부분을 이 글로 정리하게 되었다. 쿠버네티스 환경에서는 데이터의 안정적인 저장을 위해 볼륨을 Pod에 할당하지 않고 AWS 볼륨, PV와 PVC로의 연결, 마지막 P..
ㅁ 개요 현재 [EKS] Amazon EKS 클러스터(v1.20)에서 Kubernetes v1.22로 업그레이드 진행 중이다. (관련 글은 여기) 세부적으로 사용 중인 Ingress 객체를 업그레이드 하면서 ingress controller 무중단 업데이트를 테스트 중이다. 그 과정에서 운영 적용 시 최적화를 위해 시뮬레이터 테스트 환경을 구축하여 무중단 업그레이드 테스트를 진행 중 Spring boot DNS Cache 이슈를 겪게 되어 그 과정을 정리하였다. ㅁ NLB + ingress controller(ALB) 이중화를 이용한 업데이트 시나리오 우선 ingress controller 업그레이가 필요한데, 이 부분은 여기를 참조하여 이해가 필요하다. 외부에서 들어오는 트래픽이 ingress cont..
ㅁ 개요 ㅇ WireShark를 이용한 패킷 헤더를 분석하는 과정을 정리하였다. ㅇ 지난글 [Kubernetes] Kubernetes Pod별 Tcpdump 방법을 통해 얻게 된 pcap 파일을 분석하면서 정리한 내용이다. ㅇ 패킷의 head에를 분석 파악하는 것이 목적이다. ㅁ pcap 파일 로딩 ㅇ WireShark을 실행하고 tcpdumpNode.pcap 파일을 로딩하였다. ㅇ 패킷의 정보 분석 컬럼 내용 No 패킷을 수집한 순서 Time 패킷이 수집된 시간 Source 패킷을 보낸 주소 Destination 패킷 도착 주소 Protocol 프로토콜 정보 Length 패킷의 길이 Info 패킷 정보 ㅇ 제일 처음의 Standard query 0xc8d4 A peterica.tistory.co.def..
[kubernetes] 모니터링 방법 정리 ㅁ 개요 ㅇ kubernetes cluster 운영환경에서 pod에서 발생한 IP packet에 대한 tcpdump를 해야하는 경우가 발생한다. ㅁ tcpdump를 확인해야만 했던 이유 외부 연동된 사이트와의 통신에서 천만분의 1의 경우로 network timeout이 발생하여 확인하는 과정이었다. 연동된 사이트에서 확인한 결과 우리가 발신한 packet의 Accept-Charse의 길이가 길다는 이슈를 확인하였다. 받는 쪽에서 Accept-Charset 항목이 상당히 긴 편이라 짧은 메시지의 경우에도 네트워크 상에서 패킷이 다건 분할 되어 처리되고 있는 것 같다면서, 혹시 발송된 정보와 다르다면 알려달라는 요청이 있었다. 그 과정에서 나는 1차적으로 소스상 분..
ㅁ 개요 ㅇ kubernetes pod의 파일을 이동하는 방법에 대해서 정리하였다. ㅁ 주의사항 ㅇ kubectl cp --help를 통해 pod간 파일 및 폴더 복사 방법 설명이다. ㅇ 이 설명에 중요한 주의사항이 있다. !!!Important Note!!! Requires that the 'tar' binary is present in your container image. If 'tar' is not present, 'kubectl cp' will fail. For advanced use cases, such as symlinks, wildcard expansion or file mode preservation, consider using 'kubectl exec'. !!!중요 사항!!! 컨테이너 ..
[kubernetes] 개발환경 목차 ㅁ 개요 kubernetes 환경을 AWS EKS와 로컬 Docker Desktop을 다중으로 운영 중이다. 상황에 따라 클러스터를 다중으로 접속해야 하는 상황이 발생하여 Cluster 환경을 조회하고 변경하는 과정을 정리하였다. ㅁ Kubernetes Cluster 추가 ㅇ AWS에서 테스트용으로 구성된 EKS이다. ㅇ 기존에 ec2 인스턴스(t2.micro)를 구성하여 별도로 접속하는 환경을 구성하여 클러스터에 접근하였다. # AWS EKS 연결하기 aws eks --region ap-northeast-2 update-kubeconfig --name k8s-peterica ㅇ 현재 맥북을 사용 중이며, aws eks에 직접 접근하기 위하여 클러스터를 맥 환경에 연..
ㅁ 개요 ㅇ macOS에서 명령 자동완성을 구성하는 과정을 정리함. ㅁ aws Cli 버젼 확인 ㅇ 현재 aws-cli는 설치된 상태이다. ㅇ aws cli 미리 설치가 되어 있어야 한다. ㅇ 설치 과정은 [AWS] macOS에서 AWS CLI 설치하기에 정리하였다. ㅁ 경로에 completer 폴더가 있는지 확인 $ which aws_completer /usr/local/bin/aws_completer ㅁ 명령어 자동완성 활성화 echo "complete -C '/usr/local/bin/aws_completer' aws" >> ~/.zshrc ㅇ ~/.zshrc에 complete 명령을 추가하여 새 셸을 열 때마다 실행되도록 한다.
macOS에서 명령줄을 사용하여 AWS CLI를 설치하는 방법을 정리하였습니다. 설치방법은 AWS DOC을 참조하였습니다. 직접 설치하며 경험했던 내용을 정리하였습니다. 사전조건 Apple에서는 AWS CLI 버전 2를 권장합니다. 다른 리포지토리를 권장하지 않습니다. 최신버젼 다운로드 curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target / 설치확인 which aws aws --version ㅁ brew를 이용한 install $ brew install awscli ==> Installing dependencies for awscli: readline, sqlite..
[kubernetes] 개발환경 목차 ㅁ 개요 ㅇ kubectl 출력을 색상화하는 방법에 대해서 정리하였다. ㅁ 사용예 ㅇ kubectl 출력을 색상화 하여 가독성을 높일 수 있다. ㅁ 설치 및 압축 해제 # 다운로드 $ wget https://github.com/hidetatz/kubecolor/releases/download/v0.0.20/kubecolor_0.0.20_Linux_x86_64.tar.gz # 압축해제 $ tar zxvf kubecolor_0.0.20_Linux_x86_64.tar.gz # 생성폴더 확인 $ ls LICENSE README.md kubecolor kubecolor_0.0.20_Linux_x86_64.tar.gz ㅁ Path 이동 및 alias # 실행을 위한 path 이..
1편 kubernetes에게 Etcd란? kubernetes 백업의 필요성 Etcd의 백업 및 복구(Backup and Restore) Etcd의 백업의 두가지 방법 2편 etcd 내장 스냅샷 3편 Velero를 이용한 AWS EKS 백업 복구 방법 ㅁ 개요 ㅇ 지난 시간 Etcd 내장 스냅샷 기능에 대해서 실습하는 과정을 정리하였다. ㅇ 이번 글에서는 Velero를 이용한 AWS EKS 백업 복구 방법을 정리하도록 하겠다. ㅁ EKS Cluster ㅇ 백업 대상이 되는 EKS Cluster이다. ㅁ WorkNode Scale Out $ eksctl scale nodegroup --name=work-nodes --cluster=k8s-peterica --nodes=1 --nodes-min=1 --node..
ㅁ 개요 ㅇ 지난 시간 kubernetes에게 Etcd란, 백업과 복원을 위한 2가지 방법에 대해서 알아보았다. ㅇ Etcd 내장 스냅샷 기능에 대해서 실습하는 과정을 정리하였다. ㅇ 테스트환경은 minikube 환경을 사용하였다. ㅇ 테스트는 스냅샷을 생성하고 테스트 Pod를 삭제 후 스냅샷 복구하여 삭제된 Pod를 복구하려 한다. ㅇ 결론적으로 minikube 환경에서는 etcd가 pod타입이어서 복구가 불가하였다. ㅇ 하지만 그 과정과 다른 참조페이지를 정리하였다. 1편 kubernetes에게 Etcd란? kubernetes 백업의 필요성 Etcd의 백업 및 복구(Backup and Restore) Etcd의 백업의 두가지 방법 2편 etcd 내장 스냅샷 3편 Velero를 이용한 AWS EKS 백..
ㅁ 개요 AWS EKS 백업을 하는 방법을 공부하였다. 공부의 목적인 EKS 백업을 위한 방법을 찾기 위한 목적이었지만, 레퍼런스 검증단계에서 etcd 내장 스냅샷 기능으로는 AWS EKS를 백업할 수 없었다. 그래서 대안으로 Velero를 이용한 EKS 백업 및 복구하는 방법까지 정리하게 되었다. 공부가 진행되면서 글이 길어져서 Etcd의 개념과 백업 복구의 필요성에 대해서 설명하고 etcd 백업하는 두가지 방법에 대해서 총 3편으로 글을 쓰게 되었다. 1편 kubernetes에게 Etcd란? kubernetes 백업의 필요성 Etcd의 백업 및 복구(Backup and Restore) Etcd의 백업의 두가지 방법 2편 etcd 내장 스냅샷 3편 Velero를 이용한 AWS EKS 백업 복구 방법 ㅁ..
ㅁ 개요 ㅇ 자주 사용하는 eksctl 명령어를 저장하기 위한 글이다. ㅇ 사용했던 명령어를 조금씩 업데이트하고 있다. ㅁ EKS 클러스터 생성 eksctl create cluster --name k8s-peterica \ --region ap-northeast-2 \ --version 1.21 \ --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 \ --managed ㅁ 노드그룹 scale 조정 [ec2-user@ip-172-31-..
[kubernetes] 개발환경 목차 ㅁ kubectl convert란 kubectl convert은 쿠버네티스 커맨드 라인 도구인 kubectl의 플러그인으로서, 특정 버전의 쿠버네티스 API로 작성된 매니페스트를 다른 버전으로 변환할 수 있도록 한다. 이것은 매니페스트를 최신 쿠버네티스 릴리스의 사용 중단되지 않은 API로 마이그레이션하는 데 특히 유용하다. ㅁ kubectl convert 플러그인 설치 # for linux curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert" # for mac silicon curl -LO "https://..