728x90 데브옵스 이야기20 [Kafka] Kafka - 기본 (Topic) 더보기https://www.udemy.com/course/apache-kafka-korean/ Udemy의 Apache Kafka 시리즈 – 초보자를 위한 아파치 카프카 강의 v3를 보고 공부하는 내용을 정리합니다. Kafka TopicKafka Topic이란 Kafka cluster안에 있는 데이터 스트림을 가리킵니다. logs, purchases, twitter_tweeis등의 이름으로 많은 Topic이 존재할 수 있습니다.예를 들어, DB에서 table을 만들려고 한다면 Topic은 DB의 table과 비슷합니다. 하지만 아무런 제약 조건이 없습기 때문에 원하는 건 모두 kafka topic에 전송할 수 있고, 그 과정에서 데이터 검증이 없습니다.원하는 만큼 만들 수 있습니다.또한, Kafka C.. 2024. 8. 9. K8s의 Memory? (RAM, Storage) Memory?많은 사람들이 메모리와 스토리지를 동일한 것으로 생각하기도 합니다. 아마 지칭하는 단위를 GB를 사용하기 때문이 아닐까 싶은데요.둘 다 용량을 나타내는 GB단위를 사용하는 이유는 기본적으로 용량을 측정하는 표준 단위이기 때문입니다. 엄연히 다른 Memory우리가 흔히 말하는 메모리에는 크게 RAM이라고 하는 휘발성 메모리, Storage라고 불리는 영구적 메모리 2가지가 존재합니다. K8s의 Memory이 두 가지의 차이를 살펴보기 전에 먼저 Pod를 정의하는 manifest file에 선언하는 resource.limit.memory와 resource.request.memory는 무엇을 의미할까요?apiVersion: v1kind: Podmetadata: name: example-pods.. 2024. 8. 2. Kubernetes common errors CrashLoopBackOff설명: 파드가 반복적으로 충돌하고 재시작합니다.문제 해결 방법 : 애플리케이션의 시작 및 초기화 코드를 조사합니다.명령어 # 파드 로그 확인kubectl logs # Pod 명세 확인kubectl describe pod ImagePullBackOff설명: Kubernetes가 레지스트리에서 컨테이너 이미지를 가져올 수 없습니다.문제 해결 방법:이미지 이름과 태그를 확인합니다.이미지 레지스트리 자격 증명을 확인합니다.지정된 레지스트리에 이미지가 존재하는지 확인합니다. Pending Pods설명: 파드가 "Pending" 상태에 머물며 스케줄링되지 않습니다.문제 해결 방법:노드 자원 (CPU, 메모리)을 확인하여 충분한 용량이 있는지 확인합니다.노드 셀렉터 또는 어피니티를 사용.. 2024. 7. 29. AWS 리소스를 IAM ResourceTag로 더욱 세밀하게 제어하기 (feat. 공식문서의 위대함) 들어가며사내에서 특정 서비스가 배포된 EC2에만 SSM(AWS Systems Manage) 허용하도록 하는 요청이 있었습니다. 해당 요청의 대상 EC2에는 특정 Tag가 할당되어 있었는데, Service: store 같은 방식으로 서비스의 내용이 tag로 할당되어 있었습니다. 그렇기에 해결 방법은 2가지로 구상해보았습니다.ec2 목록을 노출시킬 때 특정 Tag가 있는 EC2 목록을 노출시켜 그 EC2들에게만 SSM 접근을 허용한다.전체 EC2 목록을 노출시키고, 특정 Tag가 있는 EC2에만 SSM 접근을 허용한다.바로 1번 방법을 시행해보자!1번의 방법이 가장 효율적으로 보였기에 바로 아래와 같이 IAM 권한을 할당했습니다.{ "Sid": "ec2Describes", "Action": [ "ec.. 2024. 7. 23. CKA, CKAD 취득 후기 들어가며 사내에서 Kubernetes를 도입하기 위해 공부하던 찰나 쿠버네티스 관련 자격증이 있다는 것을 알게 되었습니다. 하지만 당시에 자격증 취득을 위한 공부보단 하루 빨리 실무에 적용하기 급급했던터라 수박겉핥기 식으로 공부를 했었습니다. 그렇게 오직 이론보단 실무를 위하여 Kubernetes를 도입하여 운영했었고, 어느정도 시간이 지남에 따라 안정화가 되어 자격증을 공부를 하기 시작했습니다. (시기로 보자면 23년 11월부터 준비를 했네요.) 23년 12월에 2번의 시험을 본 후 연달아 불합격했고 24년 1월에 한 번 더 결제를 하여 2번을 보아 합격했습니다!(총 4번을 보았네요…) 그리고 바로 2주 뒤 45% 설날 세일때 이때다 싶어 CKAD까지 1번의 불합격에 이어 결국 합격을 했습니다..! (.. 2024. 3. 4. 좌충우돌 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. 이전 1 2 3 다음 728x90