본문 바로가기

IT/Kubernetes21

[Kubernetes] StatefulSet 이번 포스팅에서는 StatefulSet에 대해 알아보려고 한다. ReplicaSet 그림 1. ReplicaSet 다시금 ReplicaSet을 살펴보면 그림 1 처럼 미리 정의해 놓은 Pod의 설정을 Replicas 개수에 따라 만든다. 그림 2. PVC & PV 더군다나 Pod를 설정 할 때 PVC와 같은 Volume을 포함하게 되면 그림 2와 같이 Replicas로 만들어진 모든 Pod는 동일한 PVC를 참조하게 된다. (ReplicaSet으로 만들어지는 모든 Pod는 동일한 매니페스트 파일을 사용하기 때문에) 만일, 위와 같이 사용하고 싶다면 큰 문제는 없지만 그렇지 않다면 문제가 될 수 있다. 이미 매니페스트 파일을 만들 때 PVC를 정의했기 때문에 각 Pod는 다른 PVC를 접근할 수 없다. 이.. 2019. 6. 7.
[Kubernetes] Headless Service 그림 1. Service 일반적으로 Service는 Client에 의해 요청이 들어올 경우 Service가 관리하고 있는 여러 Pod들 중 임의로 하나를 선택해서 연결을 한다. 그런데 만일 Client가 Service가 제공하는 모든 Pod와 연결이 필요하다면 어떻게 해야 할 것인가? 어찌보면 당연하게도 모든 Pod의 주소를 알면된다.이를 위해 k8s에서는 Client가 DNS lookup을 통해 Pod의 IP를 찾는 것을 허용한다. 그런데 매니페스트 파일을 구성할 때 속성에 따라 DNS lookup 에서 나오는 결과가 다르다.spec: clusterIP: None 위와 같이 Service의 ClusterIP를 None으로 설정하면 DNS는 Service의 ClusterIP 대신에 모든 Pod의 IP 목.. 2019. 6. 7.
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.