전체 글 794

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..

istio circuit break

1. circuit break란?circuit break에 대해 다양한 관점이 있습니다. 이 글에서 말하는 circuit break는 쿠버네티스 pod 안정성 관점에서 circuit break입니다. pod 안전성 관점에서 circuit break는 pod가 죽지 않도록, 강제로 pod에 들어오는 요청을 거절합니다. 2. 왜 pod에 들어오는 요청을 거절할까요?요청을 거절하는 이유는 쿠버네티스 관점에서 pod가 죽지 않게 보호하기 위해서입니다.  pod가 처리할 수 있는 요청수보다 많은 요청을 받으면, pod는 재실행 될 수 있습니다. pod의 cpu, memory가 100%를 넘게 사용하는 상황이 발생하고 OOM 또는 probe검사 실패로 pod가 재실행됩니다. 만약 모든 pod가 재실행되는 경우 서비..

github action을 로컬에서 실행해보자

https://youtu.be/qQdUFjayxYA1. 로컬실행이란?github action 로컬실행은 git push를 하지 않고 workflow를 로컬에서 실행하는 방법입니다.  2. 로컬실행의 장점이전에 workflow 변동사항을 확인하기 위해 시간이 매우 많이 걸렸습니다. git push를 하고 workflow가 실행될 때까지 기다려야 했습니다. 로컬 실행은 이 과정을 모두 생략하고 로컬에서 worfklow를 바로 실행하여 시간을 절약합니다. 3. 제약사항github action이 주입하는 설정이 일부 없습니다. 예로 github.event객체의 일부 이벤트필드가 없습니다. 그리고 github 관리자페이지에서 설정한 github action environment, secrets을 가져올 수 없어 ..

github action workflow로 cron을 실행할 때 주의사항

https://youtu.be/zZ62M-qcX_8cron 사용방법github action worklfow는 cron을 지원합니다. 내가 정한 시간에 workflow를 실행할 수 있습니다. 사용방법은 트리거 조건인 on에 schedule필드를 설정하면 됩니다.on: schedule: - cron: "15 4,5 * * *" cron 주의사항cron을 운영환경에 사용할 때 3가지 주의사항이 있습니다. 치명적인거는 cron이 실행이 지연되거나 안될 수 있습니다.cron에 설정한 시간에 workflow가 실행이 안되고 지연될 수 있다.때때로 실행이 안될 수 있다.디폴트 브랜치(main)에 있는 workflow만 cron을 사용할 수 있다.

EKS IRSA 동작원리 톺아보기

1. IRSA란? IRSA(IAM Roles for Service Accounts)는 쿠버네티스 service account에 IAM role을 설정하는 기능입니다. pod는 service account에 설정된 IAM role을 사용하여 AWS리소스 작업을 합니다. pod가 IAM role을 사용할 때, AssumeRoleWithWebIdentity API가 호출되어 assume role이 수행됩니다. 2. 사용방법 사용방법은 매우 간단합니다. service account annotation에 IAM role arn을 설정하면 됩니다. 그리고 2가지 설정이 필요한데 다음 챕터인 [IRSA를 사용하기 위한 설정]에서 설명합니다. 예제코드: https://github.com/choisungwook/eks-..

IRSA가 등장하기 전, 설정했던 방법들

https://youtu.be/J4drta_ImfM IRSA가 등장하기 전에는 쿠버네티스 관리자 또는 개발자가 IRSA와 비슷한 로직을 구현했습니다. 구현 방법은 다양하지만 구현 원리는 아래 범위에서 벗어나지 않습니다. Access key, Secret key를 사용 IAM Assume을 사용(권장) AWS EC2 인스턴스 IAM profile 사용 이 글에서 실습한 예제는 저의 github에 공개되어 있습니다. github 링크: https://github.com/choisungwook/eks-practice/tree/main/irsa/k8s_manifests 1. Access key, Secret key를 사용한 방법(추천하지 않음) Access key, Secret key 방법은 IAM user의 ..