분류 전체보기 718

EKS 설치(aws에 쿠버네티스 설치)

▶ 영상: youtu.be/7saoGfHY4zQ 1. EKS란? AWS 쿠버네티스 서비스로서 마스터(control plane) 노드를 직접 관리하고 기존 AWS리소스(예: IAM, EC2, VPC 등)와 연동하여 쿠버네티스를 관리합니다. 시간당 0.1$달러 요금이 부과되고 무중단 한달 운영하면 78달러가 부과됩니다. EKS이외의 요금은 별도로 계산됩니다. 워커노드는 EC2를 사용하고 네트워크는 VPC를 사용합니다. 워커노드는 워커노드 그룹으로 묶어서 eks가 관리합니다. 2. 설치 준비 eksctl명령어를 사용하기 위해 eksctl설치가 필요합니다. eskctl는 aws cli설치와 설정이 필요합니다. kubctl은 eks를 설치하고 쿠버네티스를 제어하는 목적으로 사용합니다. 2.1 aws cli설치 공..

anti-affnity를 활용한 장애대비 전략

▶영상: youtu.be/Y2fe1EE_-Jo 활용사례 anti-affinity는 pod가 특정 노드에 스케쥴링 되지 않게 하는 방법입니다. mysql, oracle같이 중요한 서비스는 anti-affnity를 활용해서 한 노드에 한 replica pod만 실행되도록 설정하는 경우가 많습니다. 한 노드가 장애가 발생하더라고 다른 노드에서 서비스를 진행할 수 있기 때문입니다. anti-affinity 설정 DuringScheduling을 required로 설정하면 조건 만족시 무조건 스케쥴링하지 못합니다. 조건은 라벨셀렉터(labelSelector)로 pod라벨을 선택합니다. 그리고 topologykey를 kubernetes.io/hostname로 설정합니다. 설정한 topologykey 각 노드를 가르키..

쿠버네티스 로그 수집 원리

▶영상: youtu.be/w46VAXSKK-g 1. 원리 파드의 각 컨테이너의 stdout, stderr을 파일로 저장합니다. 각 파일은 log확장자로 저장되고 pod가 실행중이 노드에 저장됩니다. 저장위치는 /var/log/containers/[pod이름_namespace-컨테이너이름].log입니다. 예를 들어 nginx pod가 A노드에서 실행중이라고 가정해봅시다. nginx pod로그는 A노드의 /var/log/containers/nginx.log이름으로 저장되어 있습니다. 로그 파일을 보기 위해서 root권한이 필요합니다. 2. kubectl logs 명령어 kubectl logs명령어는 tail /var/log/containers/[pod].log와 같은 기능을 수행합니다.

EFK시스템에서 키바나 시각화 데이터 손실 주의

▶ 영상: youtu.be/RMnhhU-LJTY 1. 문제점 kibana에서 엘라스틱에 저장된 index를 불러올 때 aggregation을 수행합니다. 문제는 변환이 실패한 로그는 키바나에서 불러올 수가 없습니다. 심지어 실패 메세지도 없어서 로그가 손실을 알아채기가 어렵습니다. 2. 상세내용 log는 elasticsearch에 저장된 데이터입니다. 키바나 visualize에서 log로 접근을 못하고 aggregation이 끝난 log.keyword로 접근이 가능합니다. missing value옵션을 체크하고 log.keyword데이터를 보면 aggregation이 실패한 갯수가 많은 것을 볼 수 있습니다. 3. 임시 해결 실무에서는 적용해보지 않았지만 fluent-bit에서 데이터를 정제해서 보내면 ..

리눅스 base64인코딩 사용시 주의사항

문제점 echo와 함께 base64인코딩을 사용하면 "엔터"도 포함되어 base64인코딩 됩니다. 그러므로 이 값을 그대로 사용하면 분석하기 힘든 장애를 겪으실겁니다. ㅜ.ㅜ 해결방법 echo명령어 인자 중 "-n"이 공백을 제거해줍니다. 아래 그림과 같이 -n인자 유무에 따라 결과 값이 달라진 것이 보일겁니다. ▶영상: youtu.be/8FaKtor-AFA