본문 바로가기

Develop/DevOps8

쿠버네티스 쿠버네티스를 공부하면서 가장 헷갈리는 부분이 용어와 컨셉이다. 이 컨셉만 잘 이해하면 쿠버네티스를 쉽게 이해하고 사용할 수 있지만, 적어도 내 기준에서는 문서들의 용어나 개념 설명이 다소 어려웠다. 쿠버네티스의 개념은 크게 오브젝트 두개의 개념에서 출발한다. 각각을 살펴보도록 하자 마스터와 노드 쿠버네티스를 이해하기 위해서는 먼저 클러스터의 구조를 이해할 필요가 있는데, 구조는 매우 간단하다. 클러스터 전체를 관리하는 컨트롤러로써 마스터가 존재하고, 컨테이너가 배포되는 머신 (가상머신이나 물리적인 서버머신)인 노드가 존재한다. 오브젝트 쿠버네티스를 이해하기 위해서 가장 중요한 부분이 오브젝트이다. 가장 기본적인 구성단위가 되는 기본 오브젝트(Basic object)와, 이 기본 오브젝트(Basic obj.. 2022. 9. 28.
mssql with docker ※ docker run cmd docker run \ -d \ -e 'ACCEPT_EULA=Y' \ -e 'SA_PASSWORD=A!123456' \ -e MSSQL_LCID=1042 \ -e 'MSSQL_COLLATION=Korean_Wansung_CS_AS' \ -e MSSQL_DATA_DIR='/var/opt/mssql/data' \ -e MSSQL_BACKUP_DIR='/var/opt/mssql/backup' \ -e MSSQL_LOG_DIR='/var/opt/mssql/data' \ -e 'TZ=Asia/Seoul' \ -p 1401:1433 \ --name sql1 \ --hostname sql1 \ mcr.microsoft.com/mssql/server:2017-latest ※ SSMS를 이.. 2022. 5. 22.
Vagrant 가 뭐지? Vagrant 시작하기 Vagrant는 한마디로 이야기 하면, “간소화된, VM 관리 서비스이다”. 이미 Virtual Machine 환경은 보편화 되서 사용되고 있고, VMWare나 Oracle의 Virtual Box등을 이용하면 PC에서도 손쉽게 VM 환경을 구축할 수 있다. 그러나 문제점은, Virtual Box와 같은 Hypervisor가 있다고 해도, VM을 생성하는 것 자체가 번거로운 작업이라는 것이다. Hypervisor에서 논리적인 가상 하드웨어 머신을 생성하고 가상머신에 OS를 설치하고, 일일이 설정을 해줘야 한다. 이런 반복적인 작업을 조금더 손쉽게 자동화 할 수 없을까? 하는 아이디어에서 시작한 것이 Vagrant이다. 먼저 이해를 돕기 위해서 예제를 실행해보자. Vagrant는 VM.. 2022. 5. 15.
[docker] ERROR [internal] load metadata for docker.io/library/node:14.17.0-alpine [ 에러 ] 😡 항상 잘 써오던 Dockerfile로 빌드 명령어를 실행하자 아래와 같은 메시지와 함께 실패한다. 실행환경은 Windows의 WSL2 이다. ERROR [internal] load metadata for docker.io/library/node:14.17.0-alpine failed to solve with {컨테이너 이름} dockerfile.v0: failed to create LLB definition: rpc error: code = Unknown desc = error getting credentials - err: exit status 1, out: `` $ docker build --tag superpower/pes-server-dev --file Dockerfile.dev .. 2021. 12. 28.
[docker] 명령어 cheatsheet # docker build docker build ./ docker build --tag superpower/hello:latest ./ docker build --file Dockerfile.dev # docker run docker create {이미지 ID} docker start {컨테이너 ID} docker run {이미지 ID} [명령어] docker run = docker create + docker start # docker kill docker stop {컨테이너 ID} docker kill {컨테이너 ID} # docker rm / docker rmi docker rm {컨테이너 ID} docker rmi {이미지 ID} docker system prune # docker ps dock.. 2021. 12. 26.
[docker] 도커는 어떻게 컨테이너를 격리 시킬까?🤔 # 도커는 어떻게 컨테이너를 격리시킬까? 리눅스에서 쓰이는 Cgroup(control groups)과 네임스페이스(namespaces)에 대해서 알아야 한다. 다른 프로세스 사이에 벽을 만드는 리눅스 커널 기능들이다. 도커는 이것들을 이용해 컨테이너와 호스트에서 실행되는 프로세스를 격리시킨다. - Cgroup : CPU, 메모리, Network Bandwith, HD i/o 등 프로세스 그룹의 시스템 리소스 사용량을 관리한다. 어떤 애플리케이션의 리소스 사용량이 많다면 그 애플리케이션을 Cgroup에 집어넣어서 CPU와 메모리 사용 제한 가능. - Namespace : 하나의 시스템에서 프로세스를 격리시킬 수 있는 가상화 기술. 별개의 독립된 공간을 사용하는 것처럼 격리된 환경을 제공하는 경량 프로세스 .. 2021. 12. 26.
[jenkins] React 프로젝트 Docker + jenkins로 CI/CD 📑 젠킨스 튜토리얼 내용 정리 Node + React 로 만든 웹애플리케이션을 Docker + Jenkins로 CI/CD 해보기 위한 샘플 프로젝트. 1. 도커를 설치한다. 2. 도커 Bridge network 를 만든다. docker network create jenkins 3. Jenkins nodes 내부에서 `Docker commands`를 실행하기 위해서 `docker:bind` 도커 이미지를 다운로드하고 실행. 사용하는 터미널에 따라 커맨드 개행 문자가 다름. bash - \, powershell - `, 명령프롬트 - ^ Windows의 경우 실패시 13번 생략해보세요. 더보기 더보기 docker run \ --name jenkins-docker \ --rm \ --detach \ --pri.. 2021. 12. 25.
[docker] 도커 네트워크 드라이버, Bridge Network ?? jekins 학습의 시발점에 docker network create jenkins 명령어를 만났고, 도커 Birdge Network를 학습한 내용을 정리한다. 일단 위 명령어는 "jenkins"라는 도커 Bridge Network 를 만든다. 1. Bridge Network 가 뭔가요 ? 도커의 기본 네트워크 드라이버. 도커 네트워크 생성 시 네트워크 드라이버를 정의하지 않으면 Bridge Network 로 만들어진다. Bridge Network는 주로 통신이 필요한 독립 실행형 컨테이너에서 사용된다. $ docker network ls NETWORK ID NAME DRIVER SCOPE 8c99b66b3f04 bridge bridge local fb4e9b287e33 host host local 33d.. 2021. 12. 25.