예전에 가볍게 읽는 도커 안내서라는 내용으로 짧게 강의를 한 적이 있었는데 정리한 내용을 묵히기 아쉬워서 공유하려고 한다. 도커의 등장 프로젝트를 할 때 잘 동작하던 라이브러리가 다른 라이브러리를 설치하니 안되거나, OS 버전이 맞지 않아 에러가 발생하는 경험을 해본 적이 있을 것이다. 이렇듯 하나의 서버에 여러개의 프로그램을 설치하는 것도 문제이지만 서로 사용하는 라이브러리의 버전이 다르거나 동일한 포트를 사용하는 경우는 설치가 훨씬 더 까다롭다. 특히 요즘은 MSA를 지향하면서 굉장히 많은 서버를 설치하고 관리해야 하는 일이 많아졌고 이러한 서버 관리에 대한 혁신적인 기술을 필요로 하였다. 도커가 뭔가요? 정의 컨테이너 기반의 오픈소스 가상화 플랫폼 가상화란 가상화는 물리적인 하드웨어(HW) 장치를 ..
쿠버네티스에서는 context라는 개념이 있는데, 어떤 역할을 하는지 알아보자 여러 개의 쿠버네티스 클러스터를 운영한다면 다른 클러스터로 이동하기 위해 kubectl config use-context 명령어를 사용한 경험이 있을건데요. 저 또한 꽤나 많이 사용하는 명령어입니다. 하지만 해당 명령어를 사용하면서도 다른 클러스터로 이동하는 건데 왜 cluster가 아닌 context라고 하는 거지? 라는 의문이 있었습니다. 이번 포스팅에서는 context가 무엇이고 어떤 역할을 하는지 이야기 해보려 합니다. 쿠버네티스에 접근하기 위한 kubeconfig kubeconfig 파일은 쿠버네티스의 설정 파일로 kubectl로 쿠버네티스의 API 서버에 접근할 때 사용하는 인증 정보를 가지고 있습니다. 보통은 ~/..
docker container에서 docker를 사용하는 방법을 알아보자 Docker in Docker(DinD)는 컨테이너 내부에서 docker를 사용할 수 있는 기술입니다. 저 같은 경우는 컨테이너 내부에서 knative function 빌드를 위해서 해당 방법이 필요했는데요. 이번 포스팅에서는 DinD가 무엇이고 어떤 장단점이 있는지 한 번 알아보도록 하겠습니다. DinD에 대해 알아보자 먼저 Docker는 어떤 방식으로 작동할까요? 보통 Docker를 이용하기 위해 CLI를 이용하는데요. 우리가 Docker CLI 명령어를 입력한다면 해당 명령이 Socket을 통해 Docker Daemon에게로 전달됩니다. CLI 명령어는 /var/run/docker.sock이라는 파일 인터페이스를 통해서 도커 ..
kubeflow를 배우기 전에 먼저 쿠버네티스 구축을 해야하는데, 스왑메모리를 꼭 끄라는 설명이 있어 왜 그런지 호기심이 생겼다. 이 궁금증을 해결하면서 스왑 메모리가 무엇인지도 제대로 알아보고 쿠버네티스와 스왑 메모리의 관계도 알아보려 한다. swap 메모리란 우선 swap 메모리가 무엇인지부터 간단하게 살펴보자. 스왑(swap)이란 물리 메모리(RAM)의 용량이 부족할 때 하드 디스크의 일부 공간을 메모리처럼 사용하는 것이다. 이러한 동작은 swap in과 swap out으로 구분할 수 있다. 현재 메모리에 최대 100개의 프로세스가 올라갈수 있는데 이때, 101번째 프로세스가 추가로 올라가야 할 경우를 생각해보자. swap out은 100개의 실행된 프로세스중 특정 프로세스를 잠시 Swap Part..
쿠버네티스를 사용하기 위해서 YAML을 아는 것은 필수적이다. 대충 어떤 느낌으로 돌아가는지 감은 잡고 있었는데, 쿠버네티스에서 YAML 파일을 직접 건드려보니 몰랐던 부분이 있어 우리가 잘 알고있는 JSON과 비교하여 정리해보려 한다. --- doe: "a deer, a female deer" ray: "a drop of golden sun" pi: 3.14159 xmas: true french-hens: 3 calling-birds: - huey - dewey - louie - fred xmas-fifth-day: calling-birds: four french-hens: 3 golden-rings: 5 partridges: count: 1 location: "a pear tree" turtle-do..
k8s의 마스터 노드와 워커 노드kubeadm이 무엇인지를 알려면 먼저 쿠버네티스가 기본적으로 마스터 노드와 워커 노드로 구성된다는 것을 알아야 한다. 마스터 노드는 워커 노드에 Pod를 할당하고 Pod 안에 컨테이너를 띄우게 하는 역할을 한다. 또한 쿠버네티스의 상태를 관리하고 여러 Pod 들의 스케줄링도 하는 등 쿠버네티스에서 중추적인 역할을 한다. 워커 노드는 마스터 노드와 통신하면서 Pod를 할당 받고 그 안에 컨테이너를 띄워 유지 및 관리하는 역할을 한다. 또한 네트워크나 볼륨에 대한 기능도 컨트롤한다. 쿠버네티스는 이러한 노드들이 모인 클러스터 환경을 통해 컨테이너를 오케스트레이션 하는 도구이다.kubeadm이 하는 역할쿠버네티스를 사용하려면 위에서 살펴보았듯 기본적으로 클러스터를 구성해야 한..
우분투를 도커에서 실행할 때 착각할 수 있는 부분을 잘 정리해놓은 글인 것 같다! https://www.popit.kr/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EC%B2%98%EC%9D%8C-docker-%EC%A0%91%ED%95%A0%EB%95%8C-%EC%98%A4%EB%8A%94-%EB%A9%98%EB%B6%95-%EB%AA%87%EA%B0%80%EC%A7%80/