본문 바로가기

IT105

Docker, Pod 인자 전달 비교 이번 포스팅에서는 비슷하지만 다른 Docker와 k8s의 Container에서 Argument 전달 방식을 비교해 보려고 한다. Docker k8s Pod ENTRYPOINT Command 내부 실행 명령어 CMD args 실행 파일에 전달되는 인자 위의 표와 같이 비슷한 내용이 표현만 다르게 사용된다. 그럼 아래에서 각 값을 사용하는 예시를 확인해보자.1. DockerFile FROM ubuntu:latest RUN apt-get update; apt-get -y install nginx ENTRYPOINT ["/bin/command", "echo"] CMD ["hello test"] 2. Pod (Manifast File) apiVersion: batch/v1beta1 kind: CronJob met.. 2019. 5. 27.
[Kubernetes] ConfigMap 이번 포스팅은 k8s의 ConfigMap에 대해 알아보려고 한다. ConfigMapConfigMap은 Container의 Application에서 사용하는 설정 값을 분리 하여 소스 코드 상에서 직접 사용하던 설정 값들을 유지한다. 이렇게 ConfigMap에서 따로 유지하는 이유는 여러 가지가 있겠지만 그 중 Application에서 자주 변경되는 설정 값으로 인해 자주 재배포해야하기 때문이다.다시 돌아와서 k8s에서 ConfigMap은 말 그대로 설정 값을 Mapping 하고 있는 k8s 별도의 리소스로 Key-Value 형태로 설정 값을 가지고 있다.(ConfigMap은 간단한 문자부터 큰 설정 파일까지 값으로 가질 수 있다.) 그림 1. ConfigMap 그림 1에서 확인 할 수 있듯이 Pod는 C.. 2019. 5. 27.
Heap Heap은 Recursively하게 다음과 같은 속성을 가지고 있다.- Max Heap 일 때 : C 노드가 있을 때, P가 C의 부모 노드라면 P의 값은 C보다 같거나 커야 한다. (C = P)(여기서 P는 부모가 없는 노드로 루트 노드라 일컫는다.) 이렇듯 Heap은 위와 같은 속성을 지닌 "트리" 기반의 자료 구조이다. (일반적으로 Heap의 트리는 완전한 바이너리 트리(Binary Tree)를 사용한다.)또한 Heap은 우선 순위 큐(Priority Queue)로도 볼 수 있는데 우선 순위 큐 방식이 Heap과 동일하게 가장 높은 값을 루트 노드에 놓거나 가장 작은 값을 루트 노드에 놓기 떄문이다.다만 Heap이 바이너리 트리를 사용하기도 하고 무조건 루트를 사용하므로 정렬이 되어있다고 할 수는 .. 2019. 5. 27.
[Kubernetes] Internals - Pause Container 이번 포스팅에서는 Pod 내부의 Pause Container에 대해 알아보려고 한다. 그림 1. Node Overview 그림 1을 살펴보면 Node에 여러 구성 요소들이 존재하는 것을 확인 할 수 있다. 특히 그림 1에서 kubelet과 Docker를 주목해보자.Node가 생성될 때 기본 구성처럼 kubelet이 만들어지는데 이는 kubelet이 Node에서 Pods 및 Containers 관리를 하기 때문이다. 추가로 볼 수 있는 Docker는 k8s에서 기본적으로 사용하는 Container Runtime이다. (rkt 와 같은 다른 Container Runtime이 사용될 수 있다.) 그럼 여기서는 Docker를 기본 Container Runtime으로 가정하고 Pods가 실행할 때 내부에서 어떤 .. 2019. 5. 16.