목록전체 글 (291)
내 잡다한 노트
LDAP(Lightweight Directory Access Protocol)을 사용하는 시스템에서 /etc/nsswitch.conf, /etc/pam.d/common-password, /etc/pam.d/common-session, /etc/pam.d/common-auth 파일들은 사용자 인증 및 시스템 자원 접근을 관리하는 중요한 역할을 합니다. 1. /etc/nsswitch.conf역할: nsswitch.conf 파일은 Name Service Switch의 설정 파일로, 시스템이 사용자, 그룹, 호스트 이름 등 다양한 정보 소스를 어떻게 조회할지 정의합니다. 이 파일을 통해 시스템은 로컬 파일, LDAP, NIS 등 여러 소스에서 정보를 가져올 수 있습니다.LDAP와의 관계: LDAP을 사용자 정보..
Stateless 애플리케이션이란?Stateless 애플리케이션은 클라이언트의 요청을 처리할 때 어떠한 상태를 유지하지 않는 애플리케이션입니다. 요청 간에 데이터나 상태를 저장하지 않으므로, 모든 요청은 독립적으로 처리됩니다. 이 특성 덕분에 수평 확장(Scaling) 및 **HA(High Availability)**를 구현하기 쉽습니다. Stateless 애플리케이션의 예시API 서버예: Node.js, Flask, Express, Spring Boot 등으로 작성된 RESTful API.클라이언트 요청을 처리하고 데이터베이스와 통신한 후 결과를 반환하지만, 요청 처리 완료 후 상태를 유지하지 않음.웹 서버예: Nginx, Apache HTTP Server, Node.js로 만들어진 정적/동적 웹 서..
Stateful 애플리케이션은 데이터를 지속적으로 저장하고, 해당 데이터의 상태에 따라 작동하는 애플리케이션을 의미합니다. 이 애플리케이션은 이전 작업의 상태를 기억해야 하며, 이를 기반으로 다음 작업을 처리합니다. 1. 데이터베이스예시:MySQLPostgreSQLMongoDBRedisCassandra특징:데이터베이스는 클라이언트 요청을 처리하고 데이터를 저장해야 합니다.노드 간 데이터 일관성(consistency)을 유지하는 것이 중요합니다.Kubernetes에서 **Persistent Volume(PV)**을 사용해 데이터를 지속적으로 유지해야 합니다. 2. 메시지 브로커예시:RabbitMQApache KafkaActiveMQ특징:메시지 브로커는 메시지를 큐(queue)에 저장하여 처리하거나 전달해야..
1. 노드가 다운되었을 때 발생하는 문제클러스터에서 **노드(Node)**가 다운되면, 해당 노드에서 실행 중이던 Pod에 접근할 수 없게 됩니다.Pod가 여러 복제본(Replicas)으로 구성된 경우:예: 블루 Pod는 여러 복제본이 있어 다른 노드에서 서비스가 계속 제공되므로 사용자에게 영향이 없음.Pod가 단일 인스턴스로 실행 중인 경우:예: 그린 Pod는 다른 복제본이 없으므로 사용자에게 서비스가 중단됨.2. Kubernetes의 동작 원리노드가 빠르게 복구된 경우:노드가 빠르게 복구되면, kubelet이 다시 시작되어 Pod가 정상적으로 실행됩니다.노드가 5분 이상 다운된 경우:Kubernetes는 기본적으로 5분간 노드 상태를 감시하다가 노드가 복구되지 않으면 Pod을 종료(terminate)..
Kubernetes에서 Multi-Container Pods는 여러 컨테이너를 하나의 Pod에 배치하여 서로 긴밀하게 협력하는 애플리케이션 아키텍처를 구현하는 데 사용됩니다. 이러한 디자인은 컨테이너 간의 데이터 공유, 통신, 라이프사이클 관리를 단순화합니다. Multi-Container Pods는 특정 디자인 패턴에 따라 구성되며, 이를 통해 애플리케이션의 다양한 요구사항을 충족할 수 있습니다. 1. Sidecar Pattern설명Sidecar는 주 컨테이너(Main Application Container)를 지원하기 위해 함께 동작하는 보조 컨테이너입니다.주로 주 컨테이너의 기능을 확장하거나 개선하는 역할을 수행합니다.Sidecar 컨테이너는 주 컨테이너와 동일한 네트워크와 스토리지를 공유하여 밀접하..
Kubernetes에서 **~From**이라는 키워드는 보통 여러 데이터를 한꺼번에 가져와 리소스에 적용할 때 사용됩니다. 이런 키워드는 선언적 방식으로 매니페스트 파일을 작성할 때 유용하며, 대표적으로 envFrom과 같은 키워드가 있습니다. 아래는 Kubernetes 매니페스트에서 자주 사용되는 ~From 유형을 정리한 목록입니다.1. envFromPod의 환경 변수를 ConfigMap 또는 Secret에서 한꺼번에 가져올 때 사용됩니다.대상 리소스에서 정의된 모든 키를 환경 변수로 자동으로 추가합니다.예시apiVersion: v1 kind: Pod metadata: name: app-pod spec: containers: - name: app-container image: ngin..
1. Secrets란 무엇인가?Secrets는 Kubernetes에서 비밀번호, 인증키, API 토큰과 같은 민감한 정보를 저장하고 관리하기 위한 객체입니다.ConfigMap과 유사하지만, 민감한 데이터를 인코딩(Base64) 형식으로 저장한다는 차이점이 있습니다.ConfigMap과의 차이:ConfigMap: 일반적인 환경 설정 데이터를 저장 (평문).Secrets: 비밀번호와 같은 민감한 데이터를 저장 (Base64로 인코딩). 2. Secrets 생성 방법Secrets를 생성하는 두 가지 주요 방법이 있습니다:(1) 명령형(Imperative) 접근 방식kubectl create secret 명령어를 사용하여 Secrets를 생성합니다.예제 1: from-literal 옵션 사용 kubectl cre..
쿠버네티스에서 환경변수를 정의하는 것은 definition file 에서 env를 통해 정의를 한다.하지만 Pod definition file이 많아지면, 환경 변수를 각각의 파일에서 관리하기가 어려워진다. 그래서 ConfigMap 이 존재한다.ConfigMap은 키-값 쌍(Key-Value Pair) 형태로 환경 설정 데이터를 관리할 수 있는 Kubernetes 리소스입니다.ConfigMap을 생성한 뒤, Pod에 주입하여 애플리케이션에서 환경 변수나 파일 형태로 사용할 수 있습니다. ConfigMap은 명령어나 manifest 파일을 작성하여 ConfigMap 리소스를 생성한다.이때, 데이터를 파드에 주입하려면 환경 변수로 주입을 하거나, 파일 형태로 볼륨에 마운트하여 주입한다. ConfigMap 데..