본문 바로가기

DevOps23

Docker 이미지 제어, 기본으로 알아야하는 명령과 옵션 Docker 이미지 제어 이 글에서는 Docker 이미지 제어하는데 필수로 알아야할 기본적인 명령과 옵션들을 소개한다. 원하는 프로그램을 실행시키기 위해서는 컨테이너를 생성해야한다. 이런 컨테이너를 생성하기 위해서는 이미지가 필요하다. Docker에서 이미지는 컨테이너를 생성하는데 있어서 사용되는 Base, 설계도, 틀이 된다. Java와 같은 프로그래밍 언어를 사용해보셨다면 클래스와 객체의 관계와 비슷하다. Docker CLI command [DevOps/Docker] - [Docker] Ubuntu 도커 설치 [DevOps/Docker] - [Docker] CentOS 도커 설치 [DevOps/Docker] - [Docker] Windows 도커 설치 Docker를 설치했다면 Docker CLI co.. 2021. 10. 6.
[Docker] Ubuntu 도커 설치 Ubuntu와 Docker 이 글에서는 Ubuntu 도커 설치와 관련된 내용을 다룬다. Docker는 리눅스를 기반으로 하기 때문에 리눅스 운영체제 위에서 돌아가야한다. Ubuntu는 Linux계열 운영체제로 바로 설치가 가능하다. Ubuntu Docker 설치 Ubuntu Docker Install Manual Install Docker Engine on Ubuntu docs.docker.com $ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release apt가 HTTPS 프로토콜을 통해서 repository를 사용할 수 있도록 패키지를 설치한다. $ curl.. 2021. 10. 6.
[Docker] CentOS 도커 설치 CentOS와 Docker 이 글은 CentOS 도커 설치에 대한 내용을 담고 있다. Docker는 리눅스를 기반으로 하기 때문에 리눅스 운영체제 위에서 돌아가야한다. CentOS는 Linux계열 운영체제로 바로 설치가 가능하다. CentOS 도커 설치 CentOS Docker Install Manual Install Docker Engine on CentOS docs.docker.com $ sudo yum install -y yum-utils $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo yum 패키지 관리툴의 부가 기능을 설치하고 repository 목록에 docker의 re.. 2021. 10. 6.
Docker란 무엇인가? 왜 사용할까? Docker 개요 어느 순간부터 Docker가 마치 업계 표준이된 것 처럼… 많은 서비스에서 사용되고 있는 기술이 되었습니다. 특히 MSA(Micro Service Architecture) 가 대세로 떠오르면서 MSA의 단점인 관리의 복잡성을 해결해주기 위해 서비스의 컨테이너화가 이루어지고, 이 과정에서 Docker와 Kubernetes가 많이 도입되었습니다. MSA(Micro Service Architecture) ※ MSA는 서비스간의 의존성을 없애고 기능을 쪼개는 것을 중점적으로 설계한 아키텍처입니다. 예를 들어, 은행 시스템을 하나의 통합된 프로그램으로 개발하지 않고… 입/출금 서비스, 조회 서비스, 대출 서비스 등 기능별로 작게 쪼개서 MSA 형태로 되어 있다고 가정하겠습니다. 이 때 새로운 대.. 2021. 10. 6.
[Docker] Windows 도커 설치 Windows와 Docker 이번 글에서는 Windows 도커 설치하는 내용을 다룬다. Docker는 리눅스를 기반으로 하기 때문에 리눅스 운영체제 위에서 돌아가야한다. Linux 계열 이외의 운영체제에서 도커를 사용하기 위해서는 다른 툴을 이용해야한다. Windows 운영환경에서 도커를 사용하기 위한 2가지 방법이 존재한다. Hyper-V 옵션 –> Bare Metal Hypervisor 사용 Docker Toolbox –> Hosted Hypervisor 사용 (Deprecated) 둘의 차이는 Hyper-V 옵션 : OS가 자체 가상화를 지원 Docker Toolbox : VMWare, VirtualBox와 같은 Hosted Hypervisor를 통해 가상화해서 사용하는 것이다. 즉, Linux를 .. 2021. 10. 6.
[Ansible] 패키지 정보 이용하기 Package_facts 사용 Package Facts Ansible에서는 노드의 정보를 수집하는 Fact가 있습니다. gather_facts 필드의 값을 no로 설정해서 해당 정보가 필요없을 때, 성능을 높이기 위해 사용되고 있죠. package의 정보를 제공해주는 fact도 ansible에서 사용할 수 있습니다. Ansible은 여러 용도로 사용이되는데... 가장 많이 사용하는 용도는 패치를 자동화하기 위해 사용될 겁니다. 그래서 package에 대한 정보를 담고 있는 package fact를 패치하는데 유용하게 사용할 수 있습니다. 이번 글에서는 Package Facts를 이용해서 패키지들의 정보를 수집해서 사용하는 방법에 대해서 알아보겠습니다. 서비스의 애플리케이션들이 모두 패키지형태로 관리되고 애플리케이션들을 띄우는 서버가 .. 2021. 5. 25.
[Ansible] Serial 병렬실행 지정하기 Ansible Serial 옵션 Ansible의 task 실행은 기본적으로 병렬로 처리가 됩니다. 즉, 실행이 필요한 호스트에 동시 실행이 되는 것 입니다. task를 병렬로 실행되었을 때... 대표적으로 발생할 수 있는 문제는 실시간으로 서비스가 안될 수 있다는 점 입니다. 예를 들어 3개의 노드에서 HA 구성되어 실행되고 있는 웹서버가 있습니다. 새로운 feature가 추가되어 패치를 하려고하는데 ansible로 진행하면 병렬로 패치되어 어느 한 순간에 서비스가 동작하지 않는 문제가 발생할 수 있습니다. 이를 해결하기 위해 ansible에서는 serial 필드로 한번에 task가 실행되는 노드의 수를 지정할 수 있어 rolling update가 가능해집니다. --- - hosts: all gather.. 2021. 5. 23.
[Ansible] gather_facts 성능향상 방법 Ansible gather_facts 성능 향상 Ansible에서 default로 Node의 Fact 정보를 수집합니다. Fact는 Anisible Node의 OS, Resource, IP 등 호스트의 다양한 정보를 변수로 저장합니다. 이런한 Fact의 정보를 Provisioning하는 과정에서 사용하지 않는다면... 노드의 수에 비례해서 성능이 저하 될 수 있습니다. 예를 들어.... 단순하게 모든 노드에 파일을 하나 생성하는데 굳이 Node의 정보들을 수집할 필요가 없습니다. 3대의 노드에만 Provisioning한다면 크게 문제가 없겠지만... 100대, 1000대가 넘어가는 노드들을 관리하다면 성능에 대한 차이를 확연하게 느낄 수 있을 것 입니다. --- - hosts: all # facts를 수.. 2021. 5. 23.
[Linux] vi 에디터 라인 번호 붙이는 방법 VI 라인 번호 붙이는 방법 때로는 사용하기 편리한 에디터가 아닌 VI 에디터를 통해 개발 혹은 파일을 수정해야하는 상황이 올 수도 있습니다. 이럴 때 보기 편하게 좌측에 번호를 붙이는 방법에 대해서 알아보겠습니다. 1. 에디터에서 직접 라인 번호 붙이기 설정하기 :set number :set nu number 혹은 약자로 nu를 사용해서 vi 에디터에서 바로 설정 가능합니다. 해제하기 :set nonumber :set nonu 마찬가지로 해지하기 위해 "no"를 명령 앞에 붙여 해제할 수 있습니다. 2. 자동으로 라인 번호 붙이기 매번 VI 에디터에서 들어가서 설정하지 않고 vi 명령을 사용해서 파일을 수정할 때 자동으로 라인 번호를 붙이는 방법도 있습니다. vim ~/.vimrc 사용자의 홈 디렉토리.. 2021. 3. 18.
[Linux] shell script 주석과 Shebang사용법 shell script 주석 shell script에서 주석은 "#"을 사용해서 표시합니다. 그런데 혹시 shell script나 다른 프로그래밍 언어에서 파일의 가장 첫번째 줄에 표기된 "#"을 보신적 있나요? 것을 바로 Shebang이라고 합니다. Shebang이란? 혹시 스크립트상에 이런 주석을 보신적 있으신가요? shell script를 다뤄보셨다면 아마 한번쯤 보셨을 거에요. 이게 어떤 기능을 하는지 아시는 분도 계실거고 모르시는 분도 계실거고... 그냥 사용한 분들도 계실거라 생각합니다. "#!" 이 샵과 느낌표를 붙여 가장 첫번째 줄에 사용하게되면 이것을 shebang이라고 합니다. 이는 어떤 프로그램으로 파일을 실행할지 정의해줄 수 있는 것입니다. Bash shell, Python, PHP.. 2021. 3. 16.