전체 글

DevOps Security Specialist를 목표하는 Security Compliance Engineer의 블로그
Kubernetes

Kubernetes 커든(Cordon) 및 드레인(Drain) 개념과 설정

1. 개념 커든 특정 노드를 스케줄러에서 제외시켜 파드가 할당되지 않도록 함 기존에 노드에 배포된 파드는 그대로 남아있음 드레인 특정 노드를 스케줄러에서 제외시켜 파드가 할당되지 않도록 하고, 기존에 배포된 파드를 다른 노드로 이동시킴 노드를 업데이트하는 경우 활용 가능 2. 커든 설정 2.1. 명령어 커든 적용 kubectl cordon [노드_이름] 커든 해제 kubectl uncordon [노드_이름] 2.2. 커든 적용 w3-k8s 노드에 커든 적용 후 디플로이먼트 배포 w3-k8s 노드를 제외한 다른 노드에만 배포된 것을 확인 커든을 해제하고 다른 노드의 파드를 삭제하면 w3-k8s 노드에 재배포된 것을 확인 3. 드레인 설정 3.1. 명령어 드레인 적용 kubectl drain [노드_이름] ..

Kubernetes

Kubernetes 멀티 컨테이너 파드(Multi Container Pod)와 초기화 컨테이너(Init Containers) 개념 및 설정

1. 개념 멀티 컨테이너 파드 하나의 파드에 2개 이상의 컨테이너를 실행하는 파드 파드 당 하나의 컨테이너를 운영하는 것이 일반적이지만, 목적에 따라 메인 컨테이너와 이를 보조하는 컨테이너로 구성 가능(ex. 웹 서버+로그 에이전트 등) 멀티 컨테이너 디자인 패턴으로는 사이드카 / 어댑터 / 앰버서더가 존재 초기화 컨테이너 메인 컨테이너 실행 전 초기화 역할을 수행하는 컨테이너 초기화 컨테이너의 작업이 성공적으로 완료되어야만 메인 컨테이너 실행 초기화 컨테이너의 작업이 실패할 경우 성공할 때까지 계속 재실행 초기화 컨테이너가 여러개일 경우 순차적으로 실행 2. 멀티 컨테이너 생성 yaml을 활용해 생성 apiVersion: v1 kind: Pod metadata: labels: run: test-mult..

Kubernetes

Kubernetes 환경변수(env), 컨피그맵(ConfigMap), 시크릿(Secrets) 개념 및 설정

1. 개념 파드에 환경변수를 지정하거나 데이터, 설정 등을 저장할 때 3가지 방식(환경변수, 컨피그맵, 시크릿) 활용 가능 시크릿의 경우 입력한 값이 base64로 인코딩되어 저장 2. 환경변수(env) 설정 환경변수 설정 apiVersion: v1 kind: Pod metadata: name: env-test labels: run: env-test spec: containers: - name: env-test image: kodekloud/webapp-color env: - name: APP_COLOR value: green 환경변수 적용 확인 3. 컨피그맵(ConfigMap) 설정 3.1. 컨피그맵 핸들링 yaml 파일을 활용한 컨피그맵 생성 apiVersion: v1 kind: ConfigMap m..

MR. ZERO
Security & DevOps