분류 전체보기 718

git repo는 한개로 관리하는게 좋은 것 같다

데브옵스 4년차로 일하다보니, 1,2,3년차 때 생각한 것과 4년차때 생각이 많이 달라진 것이 있습니다. 그 중 한개가 git repo 관리방법입니다. 1~3년차 때까지는 프로젝트 별로 git repo를 따로따로 관리하는게 좋았다고 생각했습니다. 하지만 지금은 git repo는 한개 또는 소수로 관리하는게 좋다고 생각합니다. 즉, git repo는 모노레포 방식이 좋다고 생각합니다. 여러 가지 이유가 있지만 관리를 효율적으로 하기 위해서입니다. repo가 10개, 100개, 1000개 등으로 증가하면 git repo가 어떤 프로젝트로 사용하는지 알기가 어렵습니다. 그리고 관리도 매우 어렵죠. 제일 중요한 것은 담당자가 퇴사하고 직원이 세대교체되면 알지 못하는 git repo는 관리가 안됩니다. 제가 ..

회고모음 2024.06.07

쿠버네티스 임시 볼륨을 잘못 사용하면 장애 발생

이 글은 쿠버네티스 임시 볼륨(Ephemeral Volumes, 또는 임시 스토리지)을 잘못 사용했을 때 발생할 수 있는 서비스 장애 상황을 설명합니다. 이 글에서 다루는 예제는 github에 공개되어 있습니다.github 주소: https://github.com/choisungwook/k8s_ephemeral_storage 1. 시나리오이 시나리오는 임시 볼륨을 잘못 사용하는 Pod로 인해 동일한 노드에 있는 다른 Pod가 비정상 상태가 되는 상황을 재현합니다. 쿠버네티스는 EKS를 사용합니다. 서비스 pod는 nginx를 사용하고 외부에서 nginx pod를 접속할 수 있도록 ALB를 사용합니다. 장애가 발생하기 전에는 nginx pod는 아래 그림처럼 정상적으로 실행됩니다 하지만, 갑자기 임시 볼륨..

iterm 설정

PS1(프롬프트) 디자인제가 사용하는 PS1은 현재경로, git branch, 실행시간을 표시합니다. oh my zsh에서 amuse테마를 사용하면 제가 사용하는 PS1이 적용됩니다.$ vi ~/.zshrcZSH_THEME="amuse" 외계어 제거터미널에서 외계어 문자가 나타나는 현상이 종종있습니다. 이유는 폰트에서 인식하지 못한 글자는 외계어로 표시됩니다.  네이버 D2폰트를 iterm에 적용하면 외계어 문자가 제거됩니다. 참고자료https://kdohyeon.tistory.com/122https://velog.io/@imysh578/Mac-Terminal-theme-%EA%BE%B8%EB%AF%B8%EA%B8%B0이하여백

Amazon Managed Prometheus를 지금 사용하는건 시기상조같다.

Amazon은 Managed Prometheus를 제공합니다. prometheus를 관리하지 않기 때문에 비지니스에 집중할 수 있습니다. 하지만, 아직 단점이 많습니다. 가장 큰 단점은 설정을 바꿀때마다 삭제 후 재생성하는데, 최소 20분이상 걸립니다. EKS에 관리하는 애플리케이션(ArgoCD, Argo Rollouts, Karpenter 등)이 생길때마다 설정을 추가해야 하는데, 추가할 때마다 20분 이상 걸린다는 뜻입니다. 테라폼으로 최초 생성할 때 15분이 걸렸고, 설정을 수정하니 약 30분이 걸렸습니다. 두 번째 단점은 prometheus 웹 콘솔이 없습니다. prometheus API만 제공만 제공합니다. 따라서 설정이 잘못되었을 때 디버깅이 너무 어렵습니다. 그러므로, 2024년 5월 ..

EKS access entry로 EKS 권한 분리

사전지식EKS access entry 지식이 필요합니다. 이 글에서 다루는 내용EKS access entry을 사용하여, IAM role에 "project-a"이름을 갖는 EKS namespace 리소스 조회만 가능하도록 권한을 설정합니다. IAM role은 개발자가 사용한다고 가정합니다.https://youtube.com/shorts/iuNPq2HBHBQ  실습1. 개발자에게 줄  IAM role을 생성합니다. IAM policy는 EKS list, describe를 설정했습니다. 저는 아래 테라폼 코드로 IAM role을 생성했습니다. resource "aws_iam_role" "access_entry_test_role" { name = "access_entry_test..

카테고리 없음 2024.05.19

EKS 클러스터 생성 시 부여되는 관리자 권한의 변화와 관리 방법

사전지식EKS 관리자 권한은 EKS를 생성할 때 사용한 IAM Role 또는 IAM user가 가지게 됩니다. 만약 IAM User 또는 Role이 삭제되면 EKS를 관리하기 매우 어렵습니다.  자동 관리자 권한 비활성화23년 11월 쯤에 EKS 관리자 권한을 다른 주체에게 부여할 수 있는 기능이 생겼습니다. 이 기능을 사용하려면 2가지 설정이 필요합니다.EKS 클러스터 생성 시 bootstrapClusterCreatorAdminPermissions를 false로 설정EKS Access entry사용하여 EKS관리자 권한을 누구에게 부여할지 설정 테라폼 코드 예제테라폼에서는 위 두가지 설정을 access_config필드로 설정합니다.resource "aws_eks_cluster" "main" { na..