본문 바로가기

개발자: 지식 정리/쿠버네티스8

쿠버네티스 - 시크릿 시크릿 소개 컨피그맵과 매우 비슷하며, 컨피그맵과 같은 방식으로 사용 가능. 다음의 상황에서 사용 환경변수로 시크릿 항목을 컨테이너에 전달 시크릿 항목을 볼륨 파일로 노출 시크릿 유지 방법 쿠버네티스는 시크릿에 접근해야 하는 파드가 실행되고 있는 노드에만 개별 시크릿을 배포해 시크릿을 안전하게 유지 노드 자체적으로 시크릿을 항상 메모리에만 저장. 물리 저장소에 기록 X 컨피그맵과 시크릿 사용 민감하지 않고, 일반 설정 데이터는 컨피그맵 사용 본질적으로 민감한 데이터는 시크릿을 사용해 키 아래에 보관하는 것이 필요. 설정 파일이 민감한 데이터와 그렇지 않은 데이터를 모두가지고 있다면 해당 파일을 시크릿 안에 저장해야 한다. 기본 토큰 시크릿 모든 파드는 secret 볼륨이 자동으로 연결돼어 있다. 모든 실.. 2023. 1. 15.
쿠버네티스 - 컨피그맵 컨피그맵 배경 개별 Pod-definiton file에서 env 키로 환경변수를 관리할 수 있다. kind: Pod spec: containers: - image: luksa/fortune:env env: - name: INTERVAL value: "30" name: html-generator ... 하지만 Pod-definiton 파일이 많아질 경우, 환경변수 데이터 관리가 복잡해질 수 있다. 컨피그맵은 이를 중앙에서 손쉽게 관리할 수 있도록 해준다. Pod를 생성할 때, config map을 통해 환경변수를 주입해줄 수 있다. 컨피그맵 소개 apiVersion: v1 kind: Pod metadata: name: fortune-env-from-configmap spec: containers: - im.. 2023. 1. 15.
쿠버네티스 클러스터 구성 요소 및 동작 이해 (4) - Kubelet Kubelet 작업 Kubelet은 워커 노드에서 실행하는 모든 것을 담당한다. Kubelet은 실행 중인 노드를 노드 리소스로 만들어서 API 서버에 등록한다. 실행 중인 노드를 모니터링하고 상태를 API 서버에 보고한다. API 서버를 지속적으로 모니터링해서 해당 노드에 파드가 스케줄링되면, 파드의 컨테이너를 실행한다. 설정된 컨테이너 런타임(도커, rkt 등) 에 지정된 컨테이너 이미지로 컨테이너를 실행함으로써 이 작업을 수행한다. Kubelet은 실행 중인 컨테이너를 계속 모니터링 하면서 상태, 이벤트, 리소스 사용량을 API 서버에 보고한다. 컨테이너가 제대로 실행되지 못하면, 컨테이너를 다시 시작한다. 컨테이너가 제대로 실행되지 못하면, 컨테이너를 다시 시작한다. API 서버에서 파드가 삭제되.. 2023. 1. 15.
쿠버네티스 클러스터 구성 요소 및 동작 이해 (3) - 스케줄러, 컨트롤러 스케줄러 스케줄러는 API 서버의 감시 메커니즘을 통해 새로 생성될 파드를 기다리고 있다가, 할당된 노드가 없는 새로운 Pod를 노드에 할당하는 일만 한다. 스케줄러는 선택된 노드에 파드를 실행하도록 지시하지 않는다. 단지 스케줄러는 API 서버로 파드 정의를 갱신한다.(어떤 노드에 할당될지) -> API 서버는 (감시 메커니즘에 의해) kubelet에 파드가 스케줄링된 것을 통보한다. -> 대상 노드의 Kubelet은 파드가 해당 노드에 스케줄링된 것을 확인하자마자 파드의 컨테이너를 생성하고 실행한다. 컨트롤러 API 서버는 리소스를 etcd에 저장하고 변경 사항을 클라이언트에게 통보하는 것 외에 다른 일을 하지 않는다. 스케줄러는 파드를 노드에 할당만 한다. 그러므로 API 서버로 배포된 리소스에 지.. 2023. 1. 15.
쿠버네티스 클러스터 구성 요소 및 동작 이해 (2) - API 서버 동작 과정 쿠버네티스 API 서버는 클러스터 상태를 조회하고 변경하기 위해 RESTful API로 CRUD 인터페이스를 제공한다. 쿠버네티스 상태는 etcd 안에 저장된다. API 서버의 클라이언트 중 하나는 kubectl 명령줄 도구이다. 예를 들어 yaml 파일에서 리소스를 생성할 때 kubectl은 파일의 내용을 API에 HTTP POST 요청으로 전달한다. api 서버 옵션 조회 kubeadm 툴을 이용했을 시, kube-apiserver 는 master 노드 kube-system 네임스페이스에서 Pod 로 존재함을 확인할 수 있다. kubectl get pods -n kube-system cat /etc/kubernetes/manifests/kube-apiserver.yaml kubeadm 툴을.. 2023. 1. 15.
쿠버네티스 클러스터 구성 요소 및 동작 이해 - (1) etcd 쿠버네티스 클러스터 구성요소(component) 이전 글 쿠버네티스 etcd 쿠버네티스는는 기본 데이터 저장소로 etcd를 채택했다. etcd 는 분산 시스템에서 사용할 수 있는 분산형 키-값 (key-value) 저장소로, 공식 문서는 다음과 같다: https://etcd.io/docs/ 쿠버네티스에서 etcd는 클러스터의 상태를 저장하고 있다. 클러스터에 필요한 설정 정보와, 포드와 서비스 같은 각 리소스들의 명세와 상태 정보 등을 저장한다. 모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소로 사용되는 일관성·고가용성 키-값 저장소이다. 카카오 테크에서 정리한 etcd 참고 etcd 블로그 글 쿠버네티스가 etcd를 사용하는 방법 쿠버네티스가 클러스터 상태와 메타데이터를 저장하는 유일한 장소가 e.. 2023. 1. 15.
반응형