kubernetes 90

맥북(ARM)에서 influxDBv1 helm 차트 실행방법

문제ARM 맥북에서 influxdb v1 helm 차트를 릴리즈하면, 컨테이너 이미지 pull 에러가 발생합니다.helm repo add influxdata https://helm.influxdata.com/helm upgrade --install influxdata/influxdb influxdb influxdb v1 pod는 이미지 pull에러가 발생하과, v2 pod는 잘 실행됩니다.kubectl get pod describe pod를 하면 ARM계열 컨테이너 이미지가 없는 것을 확인할 수 있습니다.kubectl describe pod {influx v1 pod} 문제 해결방법컨테이너 이미지 pull에러를 해결하려면 ARM계열 컨테이너 이미지를 사용하면 됩니다. influxDB v1은 ARM계열 이..

쿠버네티스 node not ready이면 어떤 일이 일어날까?

1.  개요이 글은 쿠버네티스 node가 not ready일 때, 내부적으로 어떤 동작을 하는지 설명합니다. 2.  요약not ready인 node에 pod가 스케쥴링되지 않도록 taint를 설정not ready 상태가 5분이 지나면 pod를 eviction 3.  node가 not ready가 되면3.1.  node taint 업데이트쿠버네티스는 not ready가 된 node에 pod가 스케쥴링 되지 않도록, node에 taint를 설정합니다. taint는 node.kubernetes.io/unreachable:NoExecute와 node.kubernetes.io/unreachable:NoSchedule를 설정합니다.kubectl describe node {not ready node} | grep..

Nestjs Liveness, Readiness 설정 전략

1.  개요안녕하세요. 이 글은 쿠버네티스에서 Nestjs 헬스체크를 하기 위한 LivenessProbe, ReadinessProbe 설정 전략에 대해 이야기 합니다. 설정 방법이 아니라 설정 전략입니다. 2.  설정 방법LivenessProbe, ReadinessProbe 설정 방법은 Nestjs Healthchecks 공식문서에 너무 자세히 설명되어 있습니다. Terminus패키지를 사용합니다.Nestjs Healthchecks 공식문서: https://docs.nestjs.com/recipes/terminus LivenessProbe ReadinessProbe API를 생성하고, 어떤 목록을 검사할지 구현하면 끝입니다. 구현 시 Terminus패키지에서 제공하는 Health Indicator를 사용..

ReactJS와 Kubernetes Controller의 원리는 비슷

2025년 설날에 ReactJS를 공부를 하고 있었는데, ReactJS 동작원리가 쿠버네티스 controller manager와 매우 비슷하다는 것을 느꼈습니다. ReactJS는 가상 DOM을 사용하여 HTML을 수정합니다. 사용자가 작성한 JSX파일은 가상 DOM으로 렌더링되는데, 새로 생성된 가상 DOM이 최종 HTML에 적용되는 것을 기대합니다. 마치 쿠버네티스 controller manager가 의도된 상태를 적용하는 원리와 매우 비슷합니다. 결국, 사용자가 작성한 개 발코드는 쿠버네티스에 비유하면 desired state가 됩니다. 제가 생각한 이론이 맞는지 ChatGPT를 활용했습니다. 아래 그림은 ChatGPT에게 여러 질문들을 해보고 비교한 결과입니다.

쿠버네티스 노드 헬스체크 원리(lease API)

1.  개요이 글은 쿠버네티스가 어떻게 노드를 헬스체크하는지 설명합니다. 노드 헬스체크의 원리는 비정상 노드의 kubelet로그를 분석할 때 활용할 수 있습니다. 2.  이 글을 읽으면 알 수 있는 것노드 헬스체크에 사용하는 kubernetes lease API헬스체크가 실패한 node를 not ready로 변경하는데 걸리는 시간 3.  헬스체크 알고리즘: lease쿠버네티스의 노드 헬스체크는 lease 알고리즘을 사용합니다. lease는 번역하면 임대라는 뜻입니다. lease라는 개념은 일정 시간 동안만 자원을 빌린다는 뜻입니다. 쿠버네티스는 노드를 lease 객체로 등록하여 노드자원을 lease 합니다.kubectl get leases -n kube-node-lease lease 알고리즘은 일정..

pod 안전성 설정 - Readiness gate

1. 개요이 글은 pod Readiness Gate가 무엇이고 왜 필요한지 설명합니다.  2. Readiness gate란Readiness gate는 pod conidtion 중 한개입니다. 디폴트로 비활성화 되어 있고 활성화하면 true, false속성을 갖습니다. 3. Readiness gate를 왜 사용하는걸까?Readiness gate는 인프라 레이어에서 pod를 안전하게 호출하기 위한 기능입니다. 인프라 레이어와 안전한 호출 키워드가 핵심입니다. 인프라 레이어는 쿠버네티스 외부에 있는 환경입니다. 그리고 쿠버네티스와 관계가 높은 외부 리소스는 로드밸런서입니다. pod를 외부에서 호출하려면 노드포트를 제외한 방법은 로드밸런서를 통해서 호출하는 방법밖에 없습니다. 로드밸런서는 쿠버네티스가 제어하지 ..