본문 바로가기

분류 전체보기

(80)
[k8s] ConfigMap, Secret으로 DB 서버 접속 간단 개념이번에는 ConfigMap, Secret 이 두 가지 오브젝트를 다뤄보겠습니다.개발을 하다보면 상황에 따라 IP 주소나 key 값과 같은 설정 값을 바꿔야 할 때가 있습니다. 여러가지 테스트를 하며 바꿀 수도 있고, 또 개발 환경과 배포 환경을 분리하기 위해 값을 바꿔줄 수도 있는데 각 상황에 맞게 이미지를 따로 두어 관리하기에는 용량의 부담도 있고 번거로우므로! ConfigMap과 Secret을 사용하여 상황에 맞게 환경 변수를 관리합니다. 💡 일반 상수를 담은 ConfigMap과, 키를 담은 Secret을 만들고 Pod 생성 시 이 두 오브젝트들을 연결하면 Container의 환경변수에 이 데이터가 반영됩니다. 마치 개발 시 사용하곤 했던 .env 파일과 비슷하죠? 실습ConfigMap과 ..
[k8s] Pod 생성 및 볼륨 설정 Pod를 생성해보겠습니다.제가 생성하려는 pod는 두 개의 컨테이너를 담고있으며, volume을 서로 공유하는데요. 여기서 1) emptyDir 방식으로 공유하는 버전과 2) hostPath를 공유하는 버전 이렇게 두 가지로 생성해보겠습니다.각 컨테이너의 이미지로 nginx와 busybox를 사용했습니다. 버전 1은 대시보드로, 버전 2는 cli로 해볼게요! 1️⃣ emptyDir로 파일을 공유하는 Pod 생성Pod 내부에 생성되고, 최초 생성 시 항상 볼륨이 비어있기 때문에 emptyDir이라고 불립니다. Pod가 재생성되면 데이터가 전부 사라져요.동일한 디렉토리에 대해 컨테이너별로 서로 다른 이름으로 마운트할 수 있습니다.하지만 결국 동일한 디렉토리를 가리키고 있습니다. apiVersion: v1ki..
[Docker] Multi-stage Build Docker 이미지를 만들 때, 빌드 과정에서 사용하는 여러 패키지나 라이브러리가 최종 이미지에 포함되면 불필요하게 이미지 크기가 커질 수 있다.애플리케이션을 배포하기 위한 최종 이미지는 빌드에 사용된 도구나 개발 의존성을 포함할 필요가 없으므로 이런 부분을 제거하고 필요한 파일만을 포함시키는 것이 좋다.이를 해결하기 위해 Multi-stage 빌드(Multi-stage Build)를 사용한다. Multi-stage 빌드란?Multi-stage 빌드는 Dockerfile에서 여러 개의 스테이지를 정의하여 빌드 과정과 실행 환경을 분리하는 방법이다. 각 스테이지는 독립적으로 실행되며, 이전 스테이지에서 생성된 아티팩트를 다음 스테이지로 전달하는 방식으로 진행된다. 이 방식은 최종 이미지에 필요한 파일만 남..
[Docker] Node.js 경량 웹서버 컨테이너화 및 MySQL 연동 소스코드 다운로드Node.js 경량 웹서버 코드는 여기서 받을 수 있다. GitHub - docker/getting-started-app: A simple application for the getting started guide in Docker's documentationA simple application for the getting started guide in Docker's documentation - docker/getting-started-appgithub.com $ git clone https://github.com/docker/getting-started-app.git MySQL 컨테이너 활성화1. 네트워크 생성$ docker network create todo-app 2. MySQ..
[Docker] Networking 이 글은 도커 공식문서(Docker workshop)를 기반으로 정리되었습니다.  공식 튜토리얼에서 이렇게 설명한다.'컨테이너 시작 시 네트워크를 할당하거나, 이미 실행 중인 컨테이너에 네트워크를 할당할 수 있다.'$ docker network create todo-app 네트워크를 할당하는 것치고 명령어가 너무 간단하다.내가 아는 그 네트워크가 맞는 건가 싶어 공식 문서의 설명을 읽어보았다.  NetworkingLearn how networking works from the container's point of viewdocs.docker.com ❓네트워킹 : 컨테이너의 관점에서.컨테이너 네트워킹은 컨테이너들이 서로 또는 Docker 외부의 워크로드와 연결 및 통신할 수 있도록 하는 기능을 의미한다. ..
Openstack 구축 매뉴얼 내가 쓴 글이 아니다.예전에 오픈스택 구축 시 참고한 Openstack Study 자료인데 여기 기록해둔다. 출처👇🏻 openstack-study/2017-fall-basic/2017.11.30_class_3.md at master · openstack-kr/openstack-studyThe repository for study activities in OpenStack Korea User Group (오픈스택 한국 커뮤니티 스터디를 위한 저장소입니다) - openstack-kr/openstack-studygithub.com Second Heading# 2017.11.30 (목) Class 3========================메뉴얼 설치OS Ver : ubuntu 16.04.03 LTSOPE..
[Docker] 볼륨(Volume)을 이용한 데이터 영속성 관리 도커는 모든 컨테이너를 격리하기 때문에 컨테이너 삭제시 컨테이너 내부에서 변경된 데이터는 저장되지 않고 사라진다.데이터를 유지하기 위해서는 볼륨(volume)을 사용해야 한다. 도커 볼륨에는 두 가지 종류가 있다.Volume Mount (Docker가 관리)Bind Mount (호스트 디렉토리를 직접 마운트)volume mount는 docker에서 관리하기 때문에 volume을 생성하면 docker 측에서 자체 생성한 디렉토리에 데이터가 저장되지만 bind mount는 직접 마운트하기 위한 host 디렉토리를 지정한다. Volume Mount1. 볼륨 생성$ docker volume create todo-db  2. 생성한 볼륨을 연결해 컨테이너 실행$ docker run -dp 127.0.0.1:300..
[Docker] 도커를 이용한 애플리케이션 컨테이너화 및 배포 과정 도커를 쓰는 이유컨테이너를 실행하면 호스트 PC에 영향을 주지 않고 서로 다른 종속성을 동시 실행할 수 있다.  컨테이너 실행 과정도커 파일로 도커 이미지를 만들고, 이미지를 실행하면 컨테이너가 된다.(마치 프로그램을 메모리에 올리면 프로세스가 되듯, 이미지를 실행하면 컨테이너가 됨)  주요 명령어docker images : 조회docker pull {이미지 이름} : 이미지 다운로드docker run : 실행 (image -> container)docker ps -a : 실행 중인 도커 컨테이너 목록 조회docker exec : 실행 중인 컨테이너 내부에 들어가는 경우 (자주 쓰는 명령어)docker rm : stop, 컨테이너 삭제docker rmi : 이미지 삭제컨테이너 내부로 들어가는 기본 명령어..