데이터 엔지니어

Operating System/Kubernetes

[Kubernetes] Nginx Dockerfile을 arm64로 ECR에 배포하는 방법

Nginx Dockerfile을 arm64로 ECR에 배포하는 방법ARM64 아키텍처의 Nginx 이미지를 생성하여 AWS ECR에 배포하는 방법은 다음과 같음.ARM64 지원을 위해 Docker의 multi-platform 빌드 기능을 활용함. Dockerfile 작성Nginx 이미지를 기반으로 Dockerfile을 작성함.# Base imageFROM nginx:1.21# Copy custom configuration (optional)COPY nginx.conf /etc/nginx/nginx.conf# Expose port 80EXPOSE 80# Start nginxCMD ["nginx", "-g", "daemon off;"] 빌드 환경 설정ARM64 아키텍처 이미지를 생성하려면 Docker의 Bu..

Operating System/Kubernetes

[Kubernetes] Liveness, Readiness, Startup Probe 정리

쿠버네티스 프로브쿠버네티스에서 프로브는 파드 내 컨테이너의 상태를 모니터링하기 위해 사용되는 매커니즘임.프로브는 주기적으로 컨테이너의 상태를 확인함.이를 통해 컨테이너가 정상적으로 작동 중인지, 재시작이 필요한지, 혹은 서비스에서 제외해야 하는지를 판단함. Liveness Probe1. 목적컨테이너가 "살아 있는지" 확인함.살아있지 않으면, 쿠버네티스는 해당 컨테이너를 재시작함. 2. 사용 시나리오애플리케이션이 무한 루프에 빠지거나, 데드락 상태에 빠질 때. livenessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 3 periodSeconds: 5 Readiness Probe1. 목적컨테이너가 "트래픽을 받을 준비가 되..

Operating System/Kubernetes

[Kubernetes] k8s, 파드란?

쿠버네티스 파드쿠버네티스의 파드는 쿠버네티스에서 애플리케이션의 배포 및 관리의 가장 작은 단위임.파드는 하나 이상의 컨테이너를 그룹으로 묶어 실행 환경을 제공함.이를 통해 컨테이너 간의 긴밀한 협업과 관리가 용이함. 파드의 주요 특징1. 컨테이너 그룹파드는 하나 이상의 컨테이너를 포함할 수 있음.파드 내 컨테이너는 서로 밀접하게 연관된 작업을 수행함.같은 네트워크 네임스페이스와 스토리지 볼륨을 공유함. 2. 공유 네트워크파드 내 모든 컨테이너는 동일한 IP 주소와 포트를 공유함.같은 파드 내 컨테이너는 localhost를 통해 서로 통신할 수 있음.파드 간 통신은 쿠버네티스 네트워크 정책을 따름. 3. 공유 스토리지파드 내 컨테이너는 공통 볼륨을 마운트하여 데이터를 공유할 수 있음.예를 들어, 한 컨테이..

Operating System/Kubernetes

[Kubernetes] k8s, 서비스 유형 종류

쿠버네티스 서비스 유형쿠버네티스에서 서비스는 클러스터 내의 파드들이 안정적으로 통신할 수 있도록 네트워크 접근을 제공하는 추상화된 개념임.서비스에는 다양한 유형이 있으며, 각 유형은 다른 방식으로 네트워크 트래픽을 라우팅하거나 외부와의 통신을 가능하게 함. 1. ClusterIP기본값으로 설정되는 서비스 유형임.클러스터 내부에서만 접근 가능한 가상 IP를 생성함.외부에서 접근할 수 없으며, 클러스터 내에서 서비스 이름을 통해 접근함.사용 예: 내부 서비스 간 통신 (예: 백엔드-프론트엔드 간 통신). 2. NodePort서비스에 노드의 특정 포트를 노출함.클러스터 외부에서 접근하려면 노드 IP:NodePort 형식으로 접근함.클러스터 내 모든 노드에서 동일한 포트를 열어줌.제한: 포트 번호 범위(3000..

Operating System/Kubernetes

[Kubernetes] k8s, helm으로 redis 설치하는 방법

eksctl, kubectl, helm 설치brew tap weaveworks/tapbrew install weaveworks/tap/eksctleksctl versionbrew install kubectlkubectl versionaws eks update-kubeconfig --region ap-northeast-2 --name __cluster_name__brew install helmhelm versionhelm repo version namespace 생성# kubectl -n redis apply -f namespace.ymlapiVersion: v1kind: Namespacemetadata: name: redis bitnami 차트 설치 및 버전 확인helm repo add bitnami ..

Operating System/Kubernetes

[Kubernetes] k8s, helm으로 kafka 설치하는 방법

kafka 네임스페이스 생성# kubectl -n kafka apply -f namespace.ymlapiVersion: v1kind: Namespacemetadata: name: kafka Helm 차트 추가 및 업데이트 및 확인helm repo add bitnami https://charts.bitnami.com/bitnamihelm repo updatehelm repo list | grep bitnami 버전 확인 및 values.yaml 추출helm search repo bitnami/kafka --versionshelm show values bitnami/kafka --version=31.1.0 > values.yaml values.yaml 원본은 놔두고 복제cp values.yaml valu..

Data Engineering/Spark

[Spark] Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession

intellij 에서 Spark를 Scala로 실행하는 도중 만난 에러Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession$ at ReadCsvGzExample$.main(ReadCsvGzExample.scala:6) at ReadCsvGzExample.main(ReadCsvGzExample.scala)Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.SparkSession$ at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java..

Cloud/AWS

[AWS] istio

IstioIstio는 클라우드 네이티브 애플리케이션에서 마이크로서비스 아키텍처를 관리하기 위해 설계된 서비스 메쉬 플랫폼임.Istio는 서비스 간 통신, 트래픽 관리, 보안, 관찰 가능성 등을 지원하여 복잡한 분산 시스템의 운영을 단순화함. Istio의 기본 개념1. 서비스 메쉬서비스 메쉬는 애플리케이션 레벨에서 네트워크 통신을 관리하기 위한 레이어임.각 서비스 간 통신을 추상화하고 제어할 수 있게 함.Istio는 서비스 메쉬의 대표적인 구현체로, 서비스 간 데이터 플레인과 제어 플레인을 제공함. 2. 주요 목표A. 트래픽 관리: 서비스 간 트래픽 라우팅, 로드 밸런싱, 장애 복구 등 제어.B. 보안: 서비스 간 통신 암호화(TLS) 및 인증/인가 제공.C. 관찰 가능성: 서비스 메트릭, 로그, 트레이싱..

Cloud/AWS

[AWS] EKS Add-on

EKS Add-onAmazon EKS의 Add-on은 Kubernetes 클러스터에서 자주 사용되는 확장 기능이나 도구를 AWS에서 관리하고 자동으로 배포, 업데이트, 운영할 수 있도록 제공하는 서비스임.일반적으로 Kubernetes의 핵심 기능을 보완하거나 확장하기 위해 설치하는 애드온(Add-on)을 AWS 환경에 맞게 최적화하여 제공함.이를 통해 운영자는 직접 설치와 관리를 줄이고 더 안정적이고 일관된 환경을 구성할 수 있음. EKS Add-on의 주요 특징1. AWS 관리애드온 설치 및 업데이트는 AWS가 관리하므로 사용자는 Kubernetes 클러스터 관리 부담을 줄일 수 있음.최신 버전 관리 및 호환성 테스트가 AWS에 의해 이루어짐. 2. 통합 관리EKS 콘솔, CLI 또는 API를 통해 애..

Cloud/AWS

[AWS] EKS와 Secrets Manager 통합

EKS와 Secrets Manager 통합Amazon EKS와 AWS Secrets Manager를 통합하여 Kubernetes 클러스터에서 민감한 데이터를 안전하게 관리하는 방법은 다음과 같음.이 과정은 Kubernetes 애플리케이션에서 Secrets Manager에 저장된 비밀(예: 데이터베이스 자격 증명, API 키 등)을 안전하게 사용하도록 설정하는 단계로 구성됨. Secrets Manager에 비밀 저장1. AWS 콘솔에서 Secrets Manager로 이동.2. 비밀 생성(Create Secret) 버튼 클릭.3. 비밀 유형 선택 (예: "Other type of secrets" 또는 "Credentials for RDS database").4. 비밀 키와 값을 입력하거나 JSON 형식으로 ..

박경태
'분류 전체보기' 카테고리의 글 목록 (6 Page)