전공영역 공부 기록 405

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

aws VPC 생성

안녕하세요. 이번시간에는 아마존 클라우드 서비스(이하 aws)에 외부 통신이 되는 VPC를 생성하는 과정을 소개합니다. 통신 테스트는 글에는 생략되어 있지만 영상(10:53)에서 확인 가능합니다. ▶영상: https://youtu.be/SJWmWwVIH2g 1. VPC란? aws공식 홈페이지를 참조하면 VPC는 aws에서 동작하는 가상 네트워크(Virtual Private Cloud)입니다. VPC는 외부와 통신하기 위해서 인터넷 게이트웨이를 연결합니다. aws에서 생성한 리눅스 등 ec2는 default VPC안에 위치하게 됩니다. 2. 외부와 통신하기 위한 VPC 최소 구조 당연히 VPC가 필요하고 서브넷, 인터넷 게이트웨이, 라우팅 테이블 설정이 필요합니다. 3. VPC생성 VPC -> Your V..