전체 글 794

Argocd가 겪는 문제: 닭이 먼저냐, 닭걀이 먼저냐

음... 스크린샷 화질을 높이는 방법을 생각 중입니다. 1. 닭이 먼저냐, 달걀이 먼저냐 문제란? gitops 닭이 먼저냐 달걀이 먼저냐(chicken and eggs)용어는 gitops방법론을 사용할 때 겪는 어려움을 말합니다. 이 어려움은 gitops에서 관리 주체를 어떻게 관리할 것인가에 대한 어려움입니다. Argocd에서는 "Argocd appliation을 어떻게 관리할 것인가"에 대한 고민이 있습니다. Argocd는 git에 있는 내용을 쿠버네티스에 반영하기 위해 Argocd application이 필요합니다. 문제는 git 저장소에 코드를 푸시해도 Argocd application이 자동으로 생성되지 않습니다. 따라서 사용자가 수동으로 Argocd application을 만들어야 하며, 필요..

istio가 무엇인지 쉽게 이해해보자!

istio는 가상 네트워크 istio는 서비스 메시(service mesh)입니다. 하지만, 처음 서비스 메시를 들으면 무슨 뜻인지 매우 이해하기 어렵습니다. 그래서 저는 istio를 서비스 메시라고 표현하는 것보다, 다른 말로 바꿔서 istio를 해석했습니다. istio는 “내 마음대로 네트워크를 제어하는 가상 네트워크”입니다. 마음대로 제어하는 의미는 istio컨셉 3가지에서 설명합니다. 기능1. 트래픽 관리(Traffic Management) istio가 istio네트워크 트래픽을 마음대로 제어하는 것을 트래픽 관리(Traffic Management)라고 합니다. 트래픽 관리는 로드 밸런싱, 서킷 브레이크, 커스텀 HTTP 헤더 추가 등을 지원합니다. 예를 들어보겠습니다. A 서비스와 B 서비스가 ..

istiod 관리자 대시보드 여는 방법

istiod pod는 관리자(controlz) 대시보드를 가지고 있습니다. 대시보드는 로깅 레벨 즉시 변경, 메모리 사용량 보기 등 디버깅시 매우 유용합니다. istioctl dashboard를 사용하면 매우 쉽게 대시보드를 엽니다. 명령어 실행 원리는 istiod pod에 port-foward를 합니다. istioctl dashboard controlz deployment/istiod.istio-system istioctl 명령어가 없는 경우 수동으로 istiod pod에 port-foward합니다. kubectl port-forward -n istio-system deploy/istiod 15000:15000

istioctl로 istio-proxy 인증서 남은 기간 확인

istio-proxy 인증서 정보는 envoy proxy 설정 중 secret에 있습니다. istioctl를 이용하면 설정 정보를 직접 확인하지 않고 쉽게 인증서 정보를 조회합니다. 명령어 실행 원리는 envoy proxy API에서 "http://localhost:51625/config_dump"를 호출합니다. istioctl pc secret -n {namespace} {pod 이름} 아래 예제는 default namespace에 있는 pod 인증서 정보를 조회했습니다. 인증서 정보에 인증서 남은 기간이 있습니다. 참고자료 istio github issue: https://github.com/istio/istio/issues/37291 이하여백

Istio Error adding/updating listener(s) virtualInbound: Didn't find a registered implementation" 오류 해결 방법

오류 메세지 Istiod pod에서 아래처럼 오류가 발생했습니다. 약 50일동안 아무 문제 없었던 Istio pod에서 갑자기 오류가 발생했습니다. ADS:LDS: ACK ERROR Internal:Error adding/updating listener(s) virtualInbound: Didn't find a registered implementation for 'istio_authn' with type URL: 'io.istio.network.authn.Config' istio-proxy 컨테이너에서는 NOT ready오류 로그가 있었습니다. Envoy proxy is NOT ready: config received from XDS server, but was rejected 해결 방법 Istiod문..

쿠버네티스 Metrics server

안녕하세요. 이 글은 쿠버네티스 메트릭 API인 metrics server를 설명합니다. 실습 환경은 제 github에 공개되어 있습니다. github: https://github.com/choisungwook/k8s-metrics-server-practice.git Metrics server이란? metrics server는 노드, pod, 컨테이너 메트릭을 노출시키는 API서버입니다. 노출시키는 메트릭은 cpu, memory 사용량입니다. 원리 metrics server는 메트릭을 노출시키기 위해, 직접 kubelet API를 호출하여 메트릭을 수집합니다. metrics server는 HPA(Horizontal Pod Autoscaling), kubectl top 명령어 등에서 사용합니다. Metri..

ALB controller 잘못된 설정으로 발생한 장애

안녕하세요. 이 글은 ALB controller가 어떻게 시큐리티 그룹을 관리하는지 설명합니다. 그리고 시큐리티 그룹을 잘못 설정하여 발생한 장애 사례를 공유합니다. 또한 장애를 직접 발생시킬 수 있는 예제코드를 제공합니다. 마주쳤던 장애를 잠깐 설명하면, 아래 그림에서 첫 번째 pod와 ALB를 삭제했더니 두 번째 ALB를 사용하지 못했습니다. 장애에 대한 설명은 영상으로도 만나 볼 수 있습니다. 1. ALB controller이란? ALB Controller는 EKS가 AWS ELB(NLB 또는 ALB)를 사용할 수 있게 해줍니다. service 또는 ingress 생성/수정/삭제 이벤트가 발생하면, ALB controller가 이벤트를 감지하여 ELB를 관리합니다. 2. ALB controller가..

코딩주제를 유투브 쇼츠로 녹화하는 방법

안녕하세요. 이 글은 코딩과 관련된 주제를 유투브 쇼츠로 찍는 과정을 설명합니다. 1. 준비물 미리 캔버스 회원가입 obs studio 설치 davinci resolve 설치 2. 영상 녹화 2.1 프레임 생성 유투브 쇼츠 크게 맞는 프레임을 생성합니다. 프레임은 쇼츠에서 보이는 화면 크기입니다. 프레임 크기는 1080 x 1920입니다. 저는 미리캔버스에서 프레임을 만들었습니다. 만든 프레임을 다운로드하여 이미지(png)파일로 저장합니다. 2.2 녹화할 IDE를 프레임 위에 놓기 프레임 이미지 파일을 엽니다. 그리고 녹화할 IDE를 엽니다. IDE 위치를 이미지 위에 이동시키고 크기를 프레임 크기에 맞게 수정합니다. IDE크기를 프레임에 맞게 수정하면, 아래 그림처럼 이미지 파일에 IDE가 쏙 들어갑니..