본문 바로가기

Infrastructure

(276)
[CKA] Security (KubeConfig) Security (KubeConfig)이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "KubeConfig"에 대해서 자세하게 알아보도록 한다.KubeConfigKubeConfig 파일의 필요성kubectl 명령어를 사용하여 쿠버네티스 API 서버와 상호 작용하려면 서버 주소, 사용자 인증 정보(인증서, 키), CA 인증서 등의 정보가 필요하다.매번 명령어를 실행할 때마다 이러한 정보를 입력하는 것은 번거롭기 때문에 kubeconfig 파일을 사용하여 설정을 저장하고 관리한다.kubeconfig 파일은 클러스터, 사용자, 컨텍스트 정보를 정의하여 kubectl이 사용할 설정을 결정한다.KubeConfig 파일 구조KubeConfig 파일은 YAML 형식..
[CKA] Security (Certificates) Security (Certificates)이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "인증서"에 대해서 자세하게 알아보도록 한다.Certificate인증서 생성 도구 및 개요쿠버네티스 클러스터 인증서 생성에는 Easy-RSA, OpenSSL, CFSSL 등 다용한 도구를 사용할 수 있다.OpenSSL은 가장 많이 사용되는 도구이다.인증서 생성 과정은 CA 인증서, 클라이언트 인증서, 서버 인증서 순으로 진행된다.CA 인증서 생성개인키 생성: openssl genrsa -out ca.key 명령어를 사용하여 CA 개인키를 생성한다.CSR 생성: openssl req -new -key ca.key -out ca.csr 명령어를 사용하여 CSR을 생성한..
[CKA] Security (Authorization & TLS) Security (Authorization & TLS)이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "인증과 TLS"에 대해서 알아보도록 한다.SecurityHosts 보안쿠버네티스 클러스터를 구성하는 물리적 또는 가상 호스트에 대한 보안이 최우선이다.루트 접근 제한, 비밀번호 기반 인증 비활성화, SSH 키 기반 인증만 허용 등 기본적인 호스트 보안 조치를 적용해야 한다.호스트가 침해되면 클러스터 전체가 위험에 노출될 수 있다.Kubernetes API 서버 보안kube-apiserver는 쿠버네티스 클러스터의 모든 작업을 관리하는 핵심 구성 요소다.API 서버 접근 제어가 쿠버네티스 보안의 첫 번째 방어선이다.API 서버 접근 제어는 크게 두 가지..
[CKA] Backup & Restore Backup & Restore이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "백업과 복구"에 대해서 알아보도록 한다.고려 사항ETCD Cluster: 클러스터의 모든 관련 정보가 저장되는 핵심 구성 요소다.Persistent Volumes: 애플리케이션이 영구 스토리지를 사용하는 경우 해당 스토리지도 백업해야 한다.쿠버네티스 리소스 정의 파일명령형 방식: kubectl 명령어를 사용하여 리소스를 생성하는 방식이다. (예: 네임스페이스, 시크릿, ConfigMap, 서비스)선언형 방식: YAML 정의 파일을 사용하여 리소스를 생성하는 방식이다. (kubectl apply -f )선언형 방식이 설정 관리에 더 효율적이며, 정의 파일을 소스 코드 저장소에 ..
[CKA] Upgrade Upgrade이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "쿠버네티스 구성요소들을 업그레이드하는 방법"에 대해서 알아보도록 한다.OS Upgrade노드 다운 시 발생하는 상황쿠버네티스 클러스터의 노드 중 하나가 다운되면 해당 노드에서 실행 중인 파드에 접근할 수 없게 된다.다중 레플리카 파드: 다른 노드에 레플리카가 존재하면 서비스에 영향이 없다. (예: 파란색 파드)단일 레플리카 파드: 해당 파드만 실행 중이었다면 서비스에 영향이 발생한다. (예: 초록색 파드)파드 축출 타임아웃(pod-eviction-timeout):마스터 노드는 노드가 오프라인 상태가 되면 기본적으로 5분 동안 기다린다.5분 이내에 노드가 다시 온라인 상태가 되면 kubelet..
[CKA] Scaling Scaling이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "Scaling에 관련된 내용"에 대해서 알아보도록 한다.Multi Containers PodsMicroservices거대한 단일 애플리케이션(모놀리식 애플리케이션)을 작은 독립적인 하위 컴포넌트(마이크로서비스)로 분리하는 것은 개발 및 배포를 용이하게 한다.각 마이크로서비스는 독립적으로 확장, 축소, 수정될 수 있다.다중 컨테이너 Pod 필요성때로는 웹 서버와 로깅 서비스처럼 두 개의 서비스가 함께 작동해야 할 수 있다.각 웹 서버 인스턴스에 하나의 로깅 에이전트 인스턴스를 페어링해야 한다.각 서비스는 서로 다른 기능을 담당하므로 코들르 병합하거나 함께 로드하고 싶지 않다.두 서비스가 함께 ..
[CKA] Secret Secret이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "Secret"에 대해서 알아보도록 한다.Secret필요성 애플리케이션 코드에 데이터베이스 비밀번호와 같은 민감한 정보를 직접 하드코딩하는 것은 보안상 위험하다.ConfigMap은 일반 텍스트 형태로 데이터를 저장하므로 비밀번호와 같은 민감한 정보를 저장하기에 적합하지 않다.Secret은 비밀번호, API 키, 인증서 등 민감한 정보를 안전하게 저장하고 관리하기 위해 사용된다.특징ConfigMap과 유사하게 키-값 형태로 데이터를 저장한다.데이터는 인코딩된 형태로 저장되어 보안성을 높인다.생성 방법명령형 방식 (Imperative):kubectl create secret generic 명령어를 ..
[CKA] ConfigMap ConfigMap이번 장에서는 Certified Kubernetes Administrator (CKA) 을 준비하며 "ConfigMap"에 대해서 알아보도록 한다.Environment Variables환경 변수 사용 예시도커에서의 환경 변수쿠버네티스에서의 환경 변수변수 유형ConfigMap필요성Pod 정의 파일에 직접 환경 변수를 정의하면 관리하기 어려워진다.ConfigMap은 키-값 쌍 형태의 설정 데이터를 중앙 집중적으로 관리한다.Pod 생성 시 ConfigMap을 주입하여 컨테이너 내부 애플리케이션에서 환경 변수를 사용할 수 있도록 한다.생성 방법명령형 방식 (Imperative):ConfigMap 정의 파일 없이 kubectl create configmap 명령어를 사용한다.--from-liter..