Operating System

Operating System/Kubernetes

[Kubernetes] EKS 생성시 자동으로 생성되는 노드의 라벨

EKS 생성시 자동으로 생성되는 노드의 라벨Amazon EKS(Elastic Kubernetes Service)에서 매니지드 노드 그룹을 생성하거나, eksctl과 같은 툴을 사용해서 노드를 생성했을 때, 노드에는 AWS에서 자동으로 설정해주는 여러 가지 라벨(Label)이 붙음.이러한 라벨들은 크게 아래와 같은 목적을 가짐. 1. AWS 리소스 정보 노출2. 클러스터/노드 그룹 구분3. 리전/가용영역(Zone) 정보4. 쿠버네티스(및 Add-on) 스케줄링 최적화 리전(Region) 및 가용영역(Zone) 관련 라벨1. topology.kubernetes.io/region예시: topology.kubernetes.io/region=us-west-2역할: 해당 노드가 속해 있는 AWS 리전을 나타냅니다...

Operating System/Kubernetes

[Kubernetes] Affinity 개념

쿠버네티스의 Affinity쿠버네티스(Kubernetes)에서 애피니티(Affinity)는 파드를 어떤 노드, 혹은 어떤 다른 파드와 함께(또는 떨어져) 배치할지를 제어하는 스케줄링(Scheduling) 정책임.즉, 단순히 CPU, 메모리와 같은 리소스 사용량만을 보는 것이 아니라, 클러스터에 존재하는 노드 라벨, 파드 라벨 등을 기준으로 세밀하게 파드를 배치하는 방식임.애피니티에는 크게 아래와 같은 유형이 있음. 1. Node Affinity2. Pod Affinity3. Pod Anti-Affinity Node AffinityNode Affinity는 파드를 특정 노드 라벨(label)이 있는 노드에 스케줄링하도록 강제하거나, 혹은 스케줄러가 선호(prefer)하도록 유도하는 정책임.예를 들어, “r..

Operating System/Kubernetes

[Kubernetes] Deployment 배포 전략 종류

Deployment 배포 전략 종류쿠버네티스(Kubernetes)에서 Deployment 객체를 사용하여 애플리케이션을 배포할 때, 원하는 방식에 따라 여러 가지 배포 전략(Deployment Strategy)을 적용할 수 있음.기본적으로 쿠버네티스 Deployment에는 크게 두 가지 전략이 내장되어 있음.이를 확장하거나 변형해서 다양한 배포 패턴을 구현할 수 있음. RollingUpdate 전략 - 개요RollingUpdate 전략은 기존 버전의 파드를 점진적으로 종료하고, 새 버전의 파드를 점진적으로 생성하면서 트래픽 중단을 최소화하는 전략임.이 방식은 한 번에 하나 혹은 여러 개의 파드를 새 버전으로 교체해나가기 때문에, 애플리케이션 다운타임을 최소화하고 점진적(Gradual) 배포가 가능함. R..

Operating System/Kubernetes

[Kubernetes] Keycloak 개념

KeycloakKeycloak은 오픈소스 통합 인증 및 액세스 관리 솔루션(Identity & Access Management, 이하 IAM)임.주로 싱글 사인온(SSO), OAuth 2.0, OpenID Connect(OIDC), SAML 등의 표준 프로토콜을 지원하여 사용자 인증과 권한 관리를 중앙 집중화해주는 플랫폼임.Red Hat이 지원하는 프로젝트로서, 회사 혹은 조직 환경에서 애플리케이션과 서비스를 효율적으로 보호하고 사용자 인증을 일원화하기 위해 많이 사용됨. 통합 IAM 플랫폼으로서의 Keycloak1. 싱글 사인온(SSO) 제공여러 애플리케이션, 마이크로서비스가 있을 때, Keycloak을 통해 한 번 로그인하면 다른 서비스에도 별도의 로그인 없이 접근할 수 있음.세션 관리, 토큰 발급 ..

Operating System/Kubernetes

[Kubernetes] Airflow의 웹서버 개념

Airflow WebServerApache Airflow를 쿠버네티스(Kubernetes) 환경에서 운영할 때, Airflow WebServer는 Airflow 시스템의 UI를 제공하는 핵심 구성 요소임.사용자는 WebServer를 통해 DAG(Directed Acyclic Graph) 편집, 모니터링, 실행 상태 확인, 로그 확인, 설정 변경 등을 수행할 수 있음.특히 쿠버네티스에서 Airflow를 운영할 때에는 WebServer 역시 컨테이너로 배포되어 동작하며, Helm 차트 등을 활용해 스케일링, 보안, 네트워킹 등 다양한 요소를 관리할 수 있음. Airflow 컴포넌트 개요1. SchedulerDAG을 해석하고, 태스크를 스케줄링함. 2. Worker스케줄링된 태스크(작업)을 실행함. (Cele..

Operating System/Kubernetes

[Kubernetes] Jupyterhub 개념

JupyterhubJupyterHub는 여러 사용자가 동시에 Jupyter 노트북 서버(또는 JupyterLab)를 사용할 수 있도록 해주는 멀티 사용자 환경을 제공하는 오픈소스 도구임.이를 통해 중앙 집중적으로 사용자 인증과 환경 관리, 자원 할당 등을 수행할 수 있어서 대규모 조직(예: 대학교, 연구소, 기업)에서 편리하게 Jupyter 기반 분석 환경을 제공할 수 있음. Jupyterhub 핵심 개념1. 멀티 사용자(Multi-user) 환경JupyterHub는 여러 사용자가 동시에 Jupyter 노트북을 사용하도록 허용함.사용자는 각자 분리된 서버 세션을 갖게 되고, 자신의 Python/R/Julia 등 커널 환경에서 독립적으로 작업을 수행함.중앙 집중형 서버에 의해 사용자의 인증, 환경 프로비저..

Operating System/Kubernetes

[Kubernetes] 쿠버네티스에서 서비스 메쉬 개념

쿠버네티스에서 서비스 메쉬 개념쿠버네티스에서 마이크로서비스 아키텍처를 운영하다 보면, 서비스 간 트래픽 제어·보안·관찰성(Observability) 등 통신 전반을 체계적으로 관리해야 할 필요성이 커짐.이를 효과적으로 해결하기 위한 핵심 접근 방식이 바로 서비스 메쉬(Service Mesh)임.서비스 메쉬는 “서비스 간 통신을 전담하는 별도의 인프라 레이어”임.애플리케이션 코드 변경 없이도 다양한 트래픽 관리, 정책 적용, 모니터링, 보안 기능 등을 제공함. 서비스 메쉬의 정의서비스 메쉬(Service Mesh)는 마이크로서비스 간의 네트워크 통신을 일관되고 표준화된 방식으로 제어, 관측, 보호하기 위한 인프라 구성 요소임.보통 Sidecar 프록시(예: Envoy)를 각 서비스 파드(Pod)에 주입하여..

Operating System/Kubernetes

[Kubernetes] Ingress + ClusterIp 및 Ingress + NodePort

Ingress + ClusterIp 및 Ingress + NodePort쿠버네티스 환경에서 애플리케이션을 외부로 노출하는 방법은 다양함.크게 보면 다음과 같은 방식이 있음. 1. Service 타입을 통해 직접 노출 : NodePort, LoadBalancer, (혹은 클러스터 내부 전용) ClusterIP2. Ingress를 활용하여 여러 서비스를 단일 진입점(도메인/URL/path 등)으로 외부에 노출 인그레스 컨트롤러가 각 애플리케이션 서비스를 바라볼 때, 그 서비스들을 NodePort 형태로 둘 것인가(=Ingress + NodePort), 아니면 ClusterIP 형태로 둘 것인가(=Ingress + ClusterIP)에 대한 선택이라고 볼 수 있음.결론을 먼저 말하자면, 대부분의 경우 ‘Ing..

Operating System/Kubernetes

[Kubernetes] CoreDNS 개념

쿠버네티스의 CoreDNSCoreDNS는 쿠버네티스 클러스터 내에서 DNS(Domain Name System) 서비스를 제공하는 기본 도구임.클러스터의 네트워킹 구조에서 중요한 역할을 하며, Pod와 서비스 간의 네트워크 통신을 효율적으로 관리함.쿠버네티스 1.13부터는 kube-dns를 대체하여 기본 DNS 서버로 채택됨. CoreDNS의 주요 역할1. DNS 이름 해석클러스터 내부에서 서비스 이름을 IP 주소로 변환함.예: my-service.default.svc.cluster.local → 10.0.0.1. 2. 클러스터 서비스 검색서비스 검색(Service Discovery)을 지원하며, 클러스터 내에서 실행 중인 서비스와 Pod를 찾는 데 사용됨. 3. 외부 도메인 쿼리 전달클러스터 외부의 도메..

Operating System/Kubernetes

[Kubernetes] NodeSelector 개념

쿠버네티스의 NodeSelectorNodeSelector는 쿠버네티스에서 Pod를 특정 노드에 스케줄링하기 위한 간단한 메커니즘임.Pod가 실행될 노드를 지정하는 방법 중 가장 기본적이고 직관적인 방식임. NodeSelector의 개념쿠버네티스 클러스터에는 여러 노드가 존재하며, 각 노드는 특정 레이블을 가질 수 있음.NodeSelector는 Pod의 매니페스트에서 nodeSelector 필드를 사용하여 Pod가 실행될 노드의 조건을 설정함.설정된 레이블과 일치하는 노드에만 해당 Pod를 스케줄링할 수 있음. NodeSelector의 동작 원리1. 노드 레이블노드는 클러스터 관리자가 레이블을 수동으로 지정하거나 자동화된 방식으로 특정 레이블을 부여받음.레이블은 키-값 쌍으로 표현됨.예: disktype=..

박경태
'Operating System' 카테고리의 글 목록 (2 Page)