본문 바로가기
728x90

DevOps6

좌충우돌 AWS EKS NodeGroup EC2 Type 전환기 개요 현재 AWS EKS를 이용하여 K8s 를 구축하고 운영하고 있습니다. 하지만 최근들어 신규 서비스도 런칭하고, 배포해야 할 Pod 수도 늘어나고, 여러 가지 devops 관련 pod를 구축하고 싶어 프로젝트로 일정을 수립하고 진행하고 있던 와중 Pod가 정상적으로 생성되지 않는 현상이 발생했습니다..! 찾아보니 EKS Workernode로 사용중인 EC2 Instance 의 Memory 의 용량이 부족하여 Pod를 띄울 수 없었습니다. 적절한 EC2 Instance Type을 찾아보자! 제가 처음 고려했던 Type은 현재쓰고 있는 다음 크기의 EC2 였습니다. As-Is : t3.xlarge To-Be : t3.2xlarge 타입 비교 vCPU* 메모리(GiB) 네트워크 성능(Gbps)*** 최대 .. 2023. 8. 14.
AWS OpenSearch를 활용해 EFK Stack 구축하기 들어가며 Kubernetes는 생성된 Pod들에 대하여 Stateless하게 관리되어야하는 것이 기본 관리 원칙이다. 그렇기에 STDOUT/STDERR등 SYSOUT의 형태로 쌓이는 로그들을 노드내에 저장하는 방식이 아닌 중앙 집중식 로깅 시스템을 구축해야 한다. Pod로부터 수신된 로그를 Fluent-bit를 통해 AWS Kinesis로 전송하고, 수신된 로그 데이터를 AWS OpenSearch의 ElasticSearch가 받게 되고 Kibana를 통해 시각화하게 된다. What Is EFK Stack? ELF Stack ELK Stack은 ElasticSearch + Logstash + Kibana의 로그 분석 프로세스를 지칭한다. 하지만 이 중 Logstash보다 fluent-bit이 쿠버네티스 환.. 2023. 5. 3.
AWS EC2 Storage 용량 늘리기(scale-up) 들어가며 k8s를 운영하다보면 어느날 갑자기 resource 에 대한 부족으로 인해 문제가 생길 수 있습니다. 그럴 때 AWS Console에 접속하여 해당 EC2 Instance의 storage 용량을 증가시켜 해결할 수 있습니다. WorkFlow 인스턴스에 접속합니다. (보통은 pem key를 통한 SSH 접속) 아래의 명령어로 해당 노드의 파티션을 확인합니다. $ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 30G 0 disk /data nvme0n1 259:1 0 16G 0 disk └─nvme0n1p1 259:2 0 8G 0 part / └─nvme0n1p128 259:3 0 1M 0 part growpart 명령을 사용.. 2023. 4. 29.
[ArgoSlackBot] ArgoCD의 상태를 Slack에 메시지 보내기 들어가며 사내에서 배포 자동화로 ArgoCD 를 사용하고 있는데, 여러 개발자가 Sync 를 맞추는 작업을 할때에 동시에 작업을 수행할 수도 있는 우려가 있었습니다. 그래서 누군가 Sync 를 맞추는 작업을 할때나 완료되었을때, 실패하였을때, 파드가 죽었을 때 슬랙을 통해 알림을 보내는 설정을 하였습니다. How To Setting Slack 먼저 Slack에서 새로운 앱을 만듭니다. Create an App > From scratch 버튼을 눌러 애플리케이션을 만들 수 있습니다. 생성한 후 왼쪽 메뉴의 OAuth & Permissions 메뉴에 접근합니다. Scopes > Bot Token Scopes에서 chat:write 기능을 활성화합니다. 그 후 상단으로 이동하여 Install To Worksp.. 2023. 4. 27.
fluent-bit를 활용한 Metric Data 수집하기 들어가며 kubernetes를 상용으로 운영하기 전 CPU나 system에 대한 Metrics Data를 수집하고 시각화하여 원활한 운영을 해야할 필요가 있었습니다. 현재 EFK Stack으로 logging system을 구축해놓았었는데, 그 중 fluent-bit를 활용하여 metrics data를 수집하는 방법에 대해 다뤄보려고 합니다. CPU Metric fluent-bit의 input plugin중 cpu는 기본적으로 프로세스 혹은 전체 시스템의 CPU 사용량을 측정합니다. 설정된 시간에 대해 백분율 단위로 수집되며 현재 이 plugin은 linux에서만 사용하실 수 있습니다. key key name description cpu_p 이 값은 사용자 및 커널 공간에 소요된 사간 대비 전체 시스템의 .. 2023. 4. 26.
AWS EFS를 사용하여 POD Storage 구성하기 들어가며 사내에서 POD를 생성할 때에 EFK Stack으로 구성하기전, POD별로 log를 저장해야할 이슈가 있었습니다. (물론 파드는 stateless하게 관리되어야하지만 어떤 이유 때문에 Stateful하게 관리가 되었었습니다 ㅎㅎ,,,) 그래서 Deployment나 Replicaset으로 POD를 띄우는 것이 아닌 Statefule로 POD를 띄우게 되었었는데, 그때 공유 스토리지 볼륨이 필요하였었습니다. 여러 자료를 찾던 중 AWS에서 제공되는 서비스인 EBS(Elastic Block Store)와 EFS(Elastic File System) 사이에 고민을 하였었고, 결국 여러 가용영역을 지원하는 EFS를 선택하게 되었습니다. Volum kubernetes에는 데이터를 저장하는 Storage 즉.. 2023. 4. 25.
728x90