[KR] Kubernetes - Resource Requirements

쿠버네티스 상에서의 자원 할당 쿠버네티스에서 Pod가 구동되기 위해서는 스케줄링 된 노드 내 가용할 수 있는 리소스를 사용한다. kube-schduler 는 Pod가 필요로 하는 자원을 어느 노드에서 구동시킬 지 결정함. 만일 모든 노드에서 Pod를 구동시킬 수 있는 자원이 충분히 남아있지 않을 경우 스케줄러는 Pod를 할당하지 않고 스케줄링을 멈춤. Pod를 Pending State 이 됨. STATUS=pending 표기가 되며, Event 에도 Insufficient resource로 표기됨 Resource Requirements Resource Requirements 는 Pod를 구동시키기 위해 필요한 최소 자원을 명시하는 것....

March 16, 2024 · 3 min · Wonyoung Seo

[KR] Kubernetes - SecurityContext

K8s에서의 컨테이너 보안 기능 도커에서는 Namespace를 통해 user (User Namespace), file system (Mount Namespace) 등을 분리하고, Capabilities 에서 선택적인 권한을 부여하는 등 보안 기능이 있는데, 쿠버네티스에서도 Security Context를 통해 동일하게 적용이 가능하다. 쿠버네티스에서 컨테이너는 Pod로 캡슐화 되므로, 위의 보안 적용은 컨테이너 레벨 또는 Pod 레벨 모두 적용 가능함. Pod 레벨에서 적용할 경우, Pod 내 모든 컨테이너에 동일하게 적용됨. 만일 서로 다른 설정을 컨테이너와 Pod에 설정하면, 컨테이너 설정이 Pod를 오버라이드 함....

March 14, 2024 · 1 min · Wonyoung Seo

Kubernetes - Command / Args / Configmap / Secret

Command & Arguments Docker Image를 기반으로 Pod 를 생성하면서 command 와 argument를 주입하려는 경우 예시 Docker Image # 예시 DockerfileFROMubuntuENTRYPOINT ["sleep"]CMD ["5"] Pod definition 파일에서 CMD 오버라이드 하기 apiVersion: v1 kind: Pod metadata: name: ubuntu-sleep-pod spec: containers: - name: ubuntu-sleep-pod image: ubuntu-sleep-pod args: ["10"] ## <--- CMD override Pod definition 파일에서 ENTRYPOINT 오버라이드 하기 apiVersion: v1 kind: Pod metadata: name: ubuntu-sleeper-pod spec: containers: - name: ubuntu-sleeper-pod image: ubuntu-sleeper-pod command: ["echo"] # <--- ENTRYPOINT override args: ["10"] # <--- CMD override Environment Variables 환경변수 K8s Pod을 생성하는 과정에서 환경 변수 타입은 크게 3가지가 있음...

March 12, 2024 · 4 min · Wonyoung Seo

[KR] Kubernetes - Multi-Container Pod

Multi-Container Pod (처음 쿠버네티스와 Pod의 개념에 대해 설명할 때) 파드는 최소의 배포단위이기에 여러 개의 어플리케이션 컨테이너를 묶어 하나의 파드로 배포하는 것은 적절한 사용법이 아님. 그러나, 하나의 파드에 복수의 컨테이너를 함께 구성하여 배포하는 방식이 충분히 고려될 수 있음. 다른 컨테이너를 통해 실행되는 서비스가 메인 어플리케이션을 보조하는 경우 동일 스토리지 또는 네트워크의 공유하는 서비스가 필요한 경우 동일한 라이프사이클을 이루는 경우 생성, 배포, 삭제, 스케일 업다운이 동일하게 적용되어야 하는 경우. 예) 웹서버와 별도로 로깅 서비스가 함께 페어를 이룬 경우 따라서 굳이 별도의 파드에 분리할 필요가 없음....

March 8, 2024 · 2 min · Wonyoung Seo