Kubernetes (102) 썸네일형 리스트형 [Istio]Configuring istio-ingressgateway with AWS NLB AWS Load Balancer Controller AnnotationsAWS EKS Network Load BalancingIstio Ingress Gateway using Network Load Balancer on EKS개요목표: istio-ingressgateway의 로드밸런서를 CLB에서 NLB로 변경배경: Istio Helm Chart 설치 시 기본적으로 istio-ingressgateway는 AWS CLB로 설정됨주의사항교차 영역 로드밸런싱을 활성화해야 함AWS NLB는 Kubernetes에서 Alpha 기능으로, 프로덕션 환경에서 사용 시 주의 필요Kubernetes Bug #69264로 인해, 동일한 영역에서 Istio를 실행하는 두 개 이상의 Kubernetes 클러스터에서 AWS NL.. [Istio]Configuring istio-ingressgateway with AWS ALB 개요이 설정은 AWS EKS(Elastic Kubernetes Service)에서 Istio의 인그레스 게이트웨이를 AWS Application Load Balancer(ALB)와 함께 사용하는 방법을 설명합니다. 이를 통해 AWS WAF 같은 ALB 전용 서비스를 활용할 수 있습니다.전제 조건AWS LoadBalancer Controller가 클러스터에 설치되어 있어야 합니다.설정 단계1. Service Type 변경기본적으로 Istio Ingress Gateway는 LoadBalancer 타입의 서비스로 설정되어 있어 Classic Load Balancer(CLB)가 자동으로 생성됩니다. ALB를 사용하기 위해 서비스 타입을 NodePort로 변경해야 합니다.istio-gateway Helm 차트의 .. [Istio]Install istio(istio-base, istio-gateway, istiod) with helm charts 💡아래에서는 istio 설치의 기본적인 내용을 다루고 있습니다. values.yaml 내용을 살펴보고 필요한 내용은 수정하여 사용 부탁드립니다.개요istio-base:역할: Istio의 기본 설정과 CRD(Custom Resource Definitions)를 설치합니다.특징:Istio의 핵심 구성요소를 위한 기반을 제공합니다.CRD를 관리하여 Istio의 커스텀 리소스를 Kubernetes에 등록합니다.istio-gateway:역할: Istio의 ingress gateway를 설정하고 배포합니다.특징:외부 트래픽을 Istio 서비스 메시로 라우팅합니다.로드 밸런서 설정, SSL 종료, 프로토콜 변환 등을 처리합니다.istiod:역할: Istio의 컨트롤 플레인을 배포합니다.특징:서비스 디스커버리, 구성.. [Loki]Per stream rate limit exceeded (limit: 3MB/sec) while attempting to ingest for stream 증상: loki-write 컴포넌트의 메모리가 지속적으로 증가함 로그: err="rpc error: code = Code(429) desc = entry with timestamp 2023-11-14 06:37:29.320051283 +0000 UTC ignored, reason: 'Per stream rate limit exceeded (limit: 3MB/sec) while attempting to ingest for stream 예상 원인: 높은 로그 볼륨: 소스에서 생성되는 로그의 양이 매우 많을 때 이 오류가 발생할 수 있습니다. 이는 특히 많은 양의 로그 데이터를 짧은 시간 내에 Loki로 전송할 때 발생합니다. 그리고 Loki는 속도 제한에 도달했을 때 로그를 버퍼링하고 나중에 재시도할 수 .. [Kubernetes]클러스터의 안정성을 최대화할 수 있는 여러 설정과 구성요소 이번 글에서는 Kubernetes의 안정성을 향상시키는 주요 설정과 구성요소에 대해 다룹니다. 이러한 설정과 구성요소는 파드의 생명주기 관리, 자원 할당 및 사용, 스케줄링 전략, 노드 관리 등 여러 범주에 걸쳐 있습니다. 특히 다음 주제에 초점을 맞춥니다. 파드의 생명주기 및 상태 관리: 파드의 정상 작동을 지속적으로 확인하고 필요에 따라 복구 또는 재시작하는 메커니즘. 스케줄링 전략: 파드가 클러스터 내에서 어떻게 배치되며, 고가용성과 효율성을 동시에 달성하기 위한 전략. 리소스 관리: 클러스터의 리소스를 효율적으로 할당하고 사용하는 방법. 노드 관리 및 안정성: 노드의 상태를 모니터링하고, 장애 발생 시 자동 복구를 위한 전략. Pod Lifecycle Probe 개요: Kubernetes에서 Po.. [Kubernetes]Sealed secrets - A Kubernetes controller and tool for one-way encrypted Secrets https://github.com/bitnami-labs/sealed-secrets 개요 kubernetes secrets config를 git에 저장하려고 한다. 문제는 secrets config는 base64 decode를 이용해 쉽게 해독이 가능하다. SealedSecret를 이용하면 이 대상 클러스터에서 실행되는 컨트롤러에 의해서만 secrets이 해독될 수 있고 다른 누구도(심지어 원래 작성자도) SealedSecret에서 원래 비밀을 얻을 수 없다. 방법 SealedSecret 를 이용하여 암호된 SealedSecret.yaml을 생성한다. SealedSecret.yaml를 배포하여 kubernetes secrets을 생성한다. 주기적으로 Sealed secrets, secrets(e.g. d.. [Mimir]Grafana Mimir Architecture Architecture Grafana Mimir는 개별적으로 또는 병렬로 실행할 수 있는 수평 확장 가능한 여러 개의 마이크로서비스로 구성됩니다. 그리고 이러한 마이크로서비스를 컴포넌트라고 합니다. Grafana Mimir 스토리지 format은 Prometheus TSDB 스토리지를 기반으로 합니다. 그리고 스토리지 format은 각 테넌트의 시계열을 자체 TSDB에 저장하여 온디스크 블록에 지속시킵니다. 기본적으로 각 블록의 범위는 2시간이며, 각 온디스크 블록 디렉터리에는 인덱스 파일, 메타데이터 파일, 시계열 청크가 포함되어 있습니다. TSDB 블록 파일에는 여러 시리즈에 대한 샘플이 포함되어 있습니다. 블록 내부의 시리즈는 블록별 인덱스로 색인되며, 이 인덱스는 메트릭 이름과 레이블을 모두 블록.. [Loki]Install Grafana loki-distributed with helm chart Service Account 설정 AWS EKS에서 S3를 사용할 수 있도록 Kubernetes의 Service Account 생성하고 AWS IAM Role을 설정하여 Kubernetes Service Account + AWS IAM Policy + Trust Relationship를 연결합니다. 아래 설명에 따라 Role을 생성한 뒤 helm chart의 `serviceAccount.annotations` 에 내용을 작성하여 사용할 수 있습니다. IAM Policy 생성 cat >Loki-S3-policy.json trust-relationship.json 이전 1 2 3 4 ··· 13 다음