인프라는 개발자가 작성한 코드를 돌아가게끔 하는 틀을 제공하는 것이다흔히 알고있는 서버 구축 이외에도 모니터링, 로그 관리 등 여러 부분이 포함되어 있다개인적인 생각으로 개발의 꽃이자, 가장 중요한 부분이라고 생각한다필자도 개발자로 일하면서 서버 구축만으로 생각하고 가
Docker는 컨테이너 환경 기반의 플랫폼으로, 애플리케이션을 패키징하고 실행할 수 있는 기능을 제공합니다Docker를 사용하면 애플리케이션을 관리하는 것과 같은 방식으로 인프라를 관리할 수 있습니다컨테이너는 가볍고 애플리케이션을 실행하는 데 필요한 모든 것을 포함하므
Docker를 사용하기 위해서는 물론 CLI를 활용하는 방법도 있겠지만, 설정 하나하나를 일일히 CLI를 통해 관리할 수는 없다이를 간편하게 해주는 것이 바로 DockerFile 인데, 이는 말 그대로 Docker에 관한 설정파일을 말한다컨테이너 구동 시 원하는 설정들
Image를 통해 Container를 생성하는 것은 알고있다그렇다면 Image로 부터 Container를 어떻게 만들어낼까?또 Image는 어떻게 만들어지는 것일까?이를 위해 Container나 Image가 어떻게 내부 데이터를 관리하는지를 먼저 알 필요가 있다앞서 설
쿠버네티스를 사용하기 위한 서비스들은 굉장히 많다이 책에서는 Minukube를 사용하는데, 다른 책에서는 Rancher를 쓰는 등 책이나 강의마다 모두 다르다쿠버네티스는 실제 구축해보며 배워가는 것이 가장 좋다고 생각하는데, 이처럼 선택지가 많으면 어떤 걸 사용해야 할
객체들이 어떻게 구성되어 쿠버네티스 구조를 이루는지?쿠버네티스는 가장 큰 단위인 클러스터 여러대로 구성될 수 있으며, 하나의 클러스터는 마스터-슬레이브의 구조를 따라 하나의 마스터 노드와 여러개의 워커 노드로 구성되어 있다그렇기에 우선 클러스터부터 알아보도록 하자클러스
Service는 Deployment 오브젝트로 동일 파드가 여러개 있을 경우, 이를 어떻게 통신하느냐의 문제를 해결해준다파드와 연결하려면 단순히 IP를 통해 통신하면 된다하지만 파드는 쉽게 삭제/생성될 수 있는 것이 특징이다만약 파드 A와 IP로 통신중이었는데, A가
언제든지 바뀔 수 있는 설정값들이나 환경별(개발, 테스트, 운영 등)로 다른 값들은 직접 설정해줘야 하는 값 이기에 애플리케이션이 자체적으로 가지고있기 어렵다때문에 그러한 값들은 외부에서 주입해주는 방식으로 사용하게 되는데, 이를 위한 리소스가 바로 컨피그맵과 비밀값이
볼륨이란 도커를 이해하고 있다면 익숙한 개념일 것이다쿠버네티스 역시 도커와 마찬가지로 무상태성을 추구하기에 상태를 기록하기 위해 볼륨을 관리하는데, 도커와는 달리 리소스의 종류(파드, 노드, 클러스터 등)가 많기에 그 범위가 조금 넓다때문에 쿠버네티스의 볼륨은 범위가
앞서 살펴본 PV, PVC는 어떤 스토리지를 프로비저닝 하느냐에 따라 로컬 스토리지, 분산 스토리지로 나누기도,프로비저닝 방식에 따라 정적과 동적으로 나누기도 한다분산 스토리지NFS 및 클라우드 분산 스토리지로컬 스토리지local 볼륨 활용앞서 설명한 local 볼륨을
앞서 살펴본 동적 프로비저닝은 직접 PV를 생성하지 않고 자동 생성하기에 어떻게 프로비저닝을 할 것인지에 대한 정의가 별도로 필요하다이것이 정의되어 있는 것이 바로 Storage Class 이다스토리지 유형으로는 여러가지가 존재하며, 현재 플랫폼에서 지원하는 스토리지만
데몬셋 은 모든(또는 일부) 노드가 파드의 사본을 실행하도록 한다. 노드가 클러스터에 추가되면 파드도 추가된다. 노드가 클러스터에서 제거되면 해당 파드는 가비지(garbage)로 수집된다. 데몬셋을 삭제하면 데몬셋이 생성한 파드들이 정리된다.데몬셋의 일부 대표적인 용도