일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kubernetes
- MySQL
- Spring
- mysql 튜닝
- Pinpoint
- 정보처리기사 실기
- Elasticsearch
- 정보처리기사실기 기출문제
- Java
- CKA 기출문제
- 정보처리기사 실기 기출문제
- CKA
- APM
- Linux
- 티스토리챌린지
- aws
- 공부
- IntelliJ
- 기록으로 실력을 쌓자
- minikube
- AWS EKS
- CloudWatch
- kotlin
- kotlin spring
- 오블완
- AI
- PETERICA
- 코틀린 코루틴의 정석
- kotlin coroutine
- kotlin querydsl
- Today
- Total
목록전체 글 (791)
피터의 개발이야기
ㅁ 개요 ㅇ AWS Console의 컴퓨팅(Compute) 탭에서 리소스(Resources) 탭 및 노드(Nodes) 섹션을 보려면 AWS Management Console에 로그인되어 있는 사용자 또는 로그인 후 전환하는 역할에는 특정 최소 IAM 및 Kubernetes 권한이 있어야 한다. ㅇ EKS 클러스터가 kubernetes 객체에 엑세스 할 수 있도록 권한을 설정하는 과정을 정리하였다. ㅁ EKS cluster 권한 문제 ㅇ EKS cluster 화면 상단에 현재 사용자 또는 역할이 이 EKS cluster에 있는 Kubernetes 객체에 액세스할 수 없습니다.라는 문구와 함께 안내를 볼 수 있는데, 자세히 알아보기를 클릭한다. ㅁ IAM 문제 해결 ㅇ 현재 사용자 또는 역할이 이 EKS c..
DBeaver에서 쿼리작업 시 다량의 쿼리를 실행 해야 하는 경우가 있다. 다량의 쿼리를 순차적으로 실행시켜주는 단축키가 있다. 일별 파티션 작업 시 다중 SQL수행으로 도움을 받았다. 1. 실행할 쿼리들을 드래그한다. 2. Alt + x 를 클릭하면 쿼리들 순차적으로 실행한다. 3. Statistics를 보면 실행된 쿼리 수와 수행시간, 끝난 시간을 확인 할 수 있다. 4. 수행 결과는 Result탭에서 확인 할 수 있다. ㅁ 함께 보면 좋은 사이트 ㅇ [DBeaver] 필수 단축키 [DBeaver] 필수 단축키 ㅁ DBeaver 필수 단축키 ㅇ Ctrl + Enter : 현재 SQL문 실행 ㅇ Crt + Shift + F : 선택된 SQL문 자동정리 ㅇ Alt + ↑/↓ : 이전 / 다음 쿼리로 이동..
ㅁ 개요 ㅇ 젠킨스의 타임 존을 설정하는 방법을 정리하였다. ㅇ 사용자별 설정, JAVA Option, Jenkins Script Console으로 설정하는 방법이 있다. ㅁ 사용자별 설정 ㅇ 사람들 > 사용자 > 설정으로 이동하면 사용자별 타임존을 설정할 수 있다. ㅁ Java system property java -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Seoul ... ㅇ 젠킨스가 jvm으로 실행되기에 위와 같이 젠킨스 실행 시 jvm option을 줄 수 있다. ㅇ kubernetes 환경에서 deploy를 수정하여 jvm option을 추가하였다. ㅁ Jenkins Script Console System.setProperty('org.apache...
ㅁ 개요 K9s를 aws ec2 linux에 설치하고 기동하였을 때에 k9s exec plugin: invalid apiVersion \"client.authentication.k8s.io/v1alpha1\" 에러가 발생하여 이를 해결하는 과정을 정리하였다. ㅁ 에러 내용 5:38AM INF 🐶 K9s starting up... 5:38AM WRN Unable to dial discovery API error="exec plugin: invalid apiVersion \"client.authentication.k8s.io/v1alpha1\"" 5:38AM ERR Fail to locate metrics-server error="exec plugin: invalid apiVersion \"client.au..
ㅁ 개요 kubectl 설치 또는 업데이트 방법 정리하였다. 다른 많은 글에서 설치 및 업데이트를 진행하였는데, 테스트를 위해 다운그레이드 업그레이드 시 필요하여 다시 정리한 글이다. ㅁ kubectl 버젼별 다운로드 링크 확인 ㅇ 페이지 이동은 여기 ㅇ ec2의 cpu가 애플 실리콘이면 arm을 링크에서 확인해야한다. ㅁ 바이너리에 실행 권한을 적용 chmod +x ./kubectl ㅇ 바이너리에 실행 권한을 적용한다. ㅁ path 폴더 이동 sudo mv ./kubectl /usr/local/bin/kubectl ㅁ 함께 보면 좋은 사이트 kubectl 설치 또는 업데이트 - Amazon EKS Amazon EKS 클러스터 제어 영역과 마이너 버전이 하나 다른 kubectl 버전을 사용해야 합니다. ..
ㅁ 개요 taint와 tolerations는 주로 노드를 특정해서 스케줄하기 위해 사용한다. taint가 걸려 있는 노드에는 toleration을 주지 않으면 kube-system의 coreDns, metric-server 등 pending된다. 해결 방법은 toleration을 주는 것이다. ㅁ CloudFormation으로 특정노드에 taint 주입 ㅇ CloudFormation으로 WorkNode의 AutoScale그룹까지 생성된다. ㅇ 이 때에 생성되는 노드에 taint를 주입하였다. ㅁ 시스템 Pod들의 Pending 확인 68s Warning FailedScheduling pod/coredns-556f6dffc4-bfs7s 0/2 nodes are available: 2 node(s) had ..
ㅁ 개요 ㅇ EKS 업그레이드 과정에 대해서 작성한 스크립트를 정리하였다. ㅇ EKS를 핸들링하기 위한 Bastion 서버 구성을 위한 작업 스크립트를 정리하였다. ㅁ 사전구성-1 (PM시작 전에 구성가능) 1. 신규 클러스터 및 kubectl 설치를 위한 신규 Bastion 서버 생성 (0) Bastion userdata 를 기존 Main노드그룹에서 사용하는 userdata 활용하여 적용 (1) 인스턴스 생성 및 ID/PW 로그인활성화, 보안그룹은 기존 Bastion것을 재활용, Disk는 gp3로 30G로 구성 (#중요. 클러스터생성을 위한 인스턴스 IAM을 user아닌 role로 사전세팅할것) (2) EFS Mount 및 Kubectl 설치 (#주의. Kubectl 작업 시에는 root 계정이 아닌..
ㅁ 이전 글 [Kubernetes] 쿠버네티스 볼륨 개념 2편 (pv, pvc, AWS EBS, AWS EFS ) 글에서 EBS와 EFS의 차이를 설명하였다. 이번 글에서는 AWS EKS에 EFS를 연동하는 방법에 대해서 공부하였다. ㅁ AWS EBS와 AWS EFS 차이 EBS는 쿠버네티스 PV 설정 시 ReadWriteOnce(노드 하나에만 읽기쓰기 가능)만 가능하다. 그 이유는 AvailabilityZone에 종속되기 때문에 다른 AZ에 있는 WorkNode에 EBS 스토리지를 공유할 수 없다. 쿠버네티스의 철학에 시스템 이중화를 위해 2개 이상의 AZ에 WorkNode을 생성하게 되면 작업 상 공유가 필요한 파일이 있는 경우 EFS를 활용해야 한다. AWS EFS를 사용하기 위해서는 EFS CSI..
ㅁ 쿠버네티스 볼륨 쿠버네티스 환경에서 노드에 장애가 발생하면 컨테이너를 새로 실행하기 마련이다. 그렇기 때문에 쿠버네티스는 기본적으로 컨테이너는 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에 직접 접근하기 위하여 클러스터를 맥 환경에 연..