728x90 데브옵스 이야기22 [오픈소스 기여하기] 첫번째 기여 - ArgoCD (Implement graceful shutdown in application-controller) 제 올해 목표 중 하나였고 지난 주에 첫 문을 성공적으로 열었던 따끈따끈한 오픈소스에 기여하기에 대해 작성 해보려고 합니다. ArgoCD-OSS 참여 먼저, 저는 OSSCA에서 주관하는 ArgoCD 오픈소스에 기여하는 프로젝트에 합격해서 현재 참여하고 있습니다! (현재는 마스터 멘티로 선정되어서 조금 더 주도적으로 참여하고 있습니다!)왜 오픈소스 기여일까?대학생때부터 막연하게 오픈소스에 기여해보고 싶다라는 생각을 갖고 있었습니다. 하지만 막상 실행에 옮기지는 못했었고, 시간나면 해야지라는 생각만 갖고 있었습니다. 그러던 중 이렇게 팀으로서 활동할 수 있게 되어 오픈 소스에 기여하기 위해선 무엇을 해야 할 지 명확해져서 바로 실행에 옮길 수 있게 되었습니다. 저는 현재 SRE/Devops로 현업에 종사하고.. 2024. 8. 12. [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. TerminalTextEffects(TTE)로 터미널에 영화에서 보던 효과주기! Overview 평소 터미널로 업무를 진행하여 터미널에 관련된 다양한 애플리케이션, 오픈소스등 찾아보는데 GeekNews를 둘러보던 중 재미져 보이는 칼럼을 발견해서 바로 적용해보았습니다. (실무에 도움은 안되겠지만 재미를 위해,,, 따분한 업무에 재미를 더하기 위해,,)TTETerminalTextEffects(TTE)는 터미널에 시각 효과를 적용시켜주는 하나의 엔진입니다. 설치에는 두가지의 방법이 존재하는데, 시스템 애플리케이션으로 설치하여 터미널에서 효과를 생성하거나 Python 라이브러리로 설치하여 Python 스크립트/애플리케이션 내에서 효과를 적용할 수 있습니다.대표적인 효과는 아래의 목록들이 보여집니다.빔 효과: 캔버스 위를 이동하며 문자를 밝히는 빔을 생성함.바이너리 경로: 문자를 이진 형.. 2024. 5. 30. 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. 이전 1 2 3 다음 728x90