본문 바로가기

개발/DevOps12

Docker Swarm 환경에서 자원 할당을 해보자. docker compose file의 deploy 영역 밑에 resources 라는 영역을 이용하여 설정할 수 있습니다. reservations 최소로 보장하는 자원 limits 최대 사용 가능한 자원 cpu의 경우, cpus라는 예약어를 통해 사용 가능한 비율을 설정 할 수 있습니다. 아래 예제로 보면, 25%를 최소로 보장하며 최대 50%까지 사용 가능하도록 설정한 예제입니다. 메모리는 아래와 같이 단위를 사용하여 명시할 수 있습니다. (b, k, m, g 등) services: temp_image: image: ~~~~ volumes: ~~~ deploy: resources: reservations: cpus: "0.25" memory: 1024M limits: cpus: "0.5" memory: .. 2023. 1. 29.
Docker Swarm이란 무엇일까? 도커 스웜이란? 도커에서 만든 컨테이너 오케스트레이션 툴입니다. 컨테이너 오케스트레이션이란, 여러 호스트의 컨테이너 배포 및 관리, 제어를 자동화하는 것을 의미합니다. 비슷한 예로는 AWS ECS, K8S, Apache Mesos 등이 있습니다. 1. 도커 스웜을 사용하는 이유 도커는 기본적으로 하나의 호스트에서 동작합니다. 하지만 이는 실제 운영 환경에서는 문제가 될 가능성이 있습니다. 예를 들어, 운영 중 서비스의 덩치가 커져 서버 자원이 부족할 때는 어떡해야 할까요? 물론 더 좋은 사양의 서버를 사면 당장은 문제가 되지 않지만, 서버의 구매, 교체 등의 업무는 굉장한 부담입니다. 하지만 도커 스웜은 여러 서버를 하나의 클러스터(군집)로 묶어 자원을 병렬로 확장하게끔 도와주는 역할을 합니다. 즉, 서.. 2022. 11. 25.
Docker를 설치해보자 본 주제는 Cent OS 7.9 64bit 환경에서 작성하였습니다. 편의상 root 계정으로 진행하며, 혹여 별도의 사용자로 진행하신다면 적절한 권한이 필요합니다. 또한, docker-ce 버전을 사용합니다. 도커 설치하기 CentOS의 패키지 매니저 yum을 통해 설치하는 가이드입니다. 1. Docker Repository 추가 [root@server-01 /]# wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo 2. Docker 설치 [root@server-01 /]# yum install -y docker-ce 3. Docker 서비스 시작 [root@server /]# syst.. 2022. 11. 24.
Docker란 무엇일까? 도커란? 도커는 컨테이너 기반 가상화 도구입니다. 💡 가상화 하나의 서버 자원을 나누어 할당하며, 성능을 분산시키고 분산된 서버는 각기 다른 서비스를 수행할 수 있습니다. 1. 가상화의 2가지 방법 서버 가상화 컨테이너 기반 가상화 하나의 물리적 Host에서 여러 개의 Guest OS를 올려 각각의 Guest OS에서 가상화됨 Guest OS가 필요 없이 별도의 엔진을 통해 Host 서버의 자원 사용이 가능 하이퍼바이저(Hypervisor)를 통한 가상화로, 성능의 손실이 있음 Guest OS를 실행하기 위해 커널, 라이브러리 등을 반드시 포함해야 하기 때문에 이미지의 크기가 큼 별도의 Engine (Docker Engine 등)을 통해 가상화 됨 Guest OS가 필요 없이 chroot, 네임스페이스,.. 2022. 11. 23.
젠킨스 버전 업데이트하기 젠킨스 버전을 왜 업데이트해야할까? 젠킨스를 사용하다 보면 당연히 젠킨스의 버전이 업데이트가 필요한 경우가 옵니다. 젠킨스 자체의 취약점이 발견되어 조치될 수도 있고, UI 등의 변경이 이루어질 수 있기 때문입니다. 이제, 젠킨스의 버전 업데이트를 하는 방법을 알아봅시다. 1. 패키지 매니저(yum)를 통한 업데이트 CentOS7.9 버전 기준입니다. yum update jenkins 명령어를 입력합니다. [root@jenkins ~]# yum update jenkins Loaded plugins: fastestmirror, langpacks Determining fastest mirrors epel/x86_64/metalink | 6.6 kB 00:00:00 * base: mirror.kakao.com.. 2022. 11. 7.
젠킨스 Jenkins 젠킨스란? 젠킨스는 웹 서비스의 빌드/테스트/배포 자동화. 즉, CI/CD 환경을 구축하기 위한 도구 중 하나입니다. 이를 통해 소프트웨어의 품질과 개발 생산성을 높일 수 있습니다. 💡 CI ? Continuous Integration의 약자로, 말그대로 지속적인 통합을 의미합니다. 새로운 변경사항이 정기적으로 빌드/테스트되어 공유되는 Repository에 통합하는 것을 말합니다. 이를 통해 여러 개발자는 서로 충돌할 수 있는 문제점을 해결할 수 있습니다. * 형상관리(SVN, Git 등)와의 차이가 무엇인가요? 형상관리는 말그대로 형상에 대해 저장만 합니다. CI 시스템은 형상관리 서버에 저장된 소스코드를 폴링하여 컴파일/테스트/코드 인스펙션 등을 수행하며 신규로 발생한 내역을 검증하고 개발자에게 피드.. 2022. 11. 3.