본문 바로가기

클라우드/도커(Docker)

(27)
도커 Docker 명령 # 2초마다 상태 확인 vagrant@docker:~$ watch docker ps 클라이언트의 데몬에서 표준출력 이미지 안에 커널(운영체제)이 없다 쉘형태의 어플리케이션이 있는 형태는 -i 옵션 => 표준 입력을 유지 -t 터미널 쉘을 사용하는 형태의 이미지는 - it 옵션을 붙인다 httpd apache 웹서버 서비스를 해야하는 형태의 어플리케이션은 데몬형태로 백그라운드에서 실행 하도록하는 -d 옵션을 이용 도커허브(레지스트리)에서 이미지를 가져온다
도커 Docker 설치 https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu docs.docker.com 도커 컨테이너를 제공해주는 도구 컨테이너 이미지는 네트워크를 통해 레지스트리에서 가져온다 Client -서버 Vagrant VM 생성 더보기 # Vagrantfile 작성 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.define "docker" do |ubuntu| ubuntu.vm.box = "ubuntu/focal64" ubuntu.vm.hostname = "docker" ubuntu.vm.network "private_net..
컨테이너 Container 개념 컨테이너 Container VM의 단점 어플리케이션 배포를 위해 운영체제를 돌려야한다 => 비효율적 -> 컨테이너가 해결 어플리케이션을 격리 시킨다 바이너리(실행파일) 라이브러리(필요할때마다 참조)가 필요 컨테이너 이미지는 용량이 적다 (운영체제가 포함되기 않기 때문에) 베어메탈과 성능이 비슷하게 보장된다 일반적으로 VM위에 띄운다 Docker : Container 기술을 구현하기위한 도구 container ((App)) container ((App)) container ((App)) kernel(OS) Bin Lib 공유 HW 컨테이너를 제공하는 기술 1. namespace 공간을 제한한다 (격리를 제공) PID 프로세스를 격리 Network 네트워크 분리 UID 사용자, 그룹 등등 격리 Mount 마..
가상화 Virtualization 개념 가상화 Virtualization 물리적인것을 가상으로 추상화 Mainframe(대용량 시스템) 아주 큰 하나의 시스템을 가지고 나누어서 썼다 전용cpu, 전용 os, 전용 아키텍쳐, 전용 네트워크 => 보안이 뛰어남 물리적인 큰것을 가상으로 나눠씀 (하드웨어를 나눌수 있다) 반도체의 발달로 개인컴퓨터(pc)가 만들어지며 필요가 없어졌다 왜 가상화가 다시 ? 하드웨어는 점점 좋아지는데 소프트웨어는 발전이 늦었다 물리적인 머신을 논리적으로 분리시켜 해결된다 가상화가 발달하게 된다 하드웨어를 논리적으로 나눌수 있게 하는 기술 -> Hypervisor (하이퍼 바이저) HVM-> 가상화 유형 BM베어메탈 -> VM 가상화 -> Container 컨테이너 시간 순서대로 우위의 기술은 아니다, 상호 보완적인 기술..
haproxy session stickiness( 로드밸런서 세션 고정) 세션 어피니티 고정 세션 스티키니스 로그인 세션 정보 더보기 # haproxy session stickiness root@lb:~# vi /etc/haproxy/haproxy.cfg backend backend_webserver balance roundrobin cookie SERVERID insert indirect nocache server web1 192.168.200.11:80 check cookie web1 server web2 192.168.200.12:80 check cookie web2 root@lb:~# systemctl restart haproxy https://www.haproxy.com/documentation/hapee/latest/onepage/#balance 세션이 가장 적은쪽..
Wordpress 인프라 구성 wp-lb * ha-proxy * /etc/haproxy/haproxy-cfg wp-web1 /wp-web2 * wp-storage(/mnt/nfs) --> /var/www/html * apache2 * wordpress wp-db * --iscsi--> /var/lib/mysql * mysql wp-storage * sdc -> /mnt/nfs * sdd ---iscsi--> wp-db 더보기 # sdc 파티션 root@storage:~# sudo fdisk /dev/sdc # 파일시스템 생성 root@storage:~# mkfs -t ext4 /dev/sdc # storage 마운트 root@storage:~# sudo su - root root@storage:~# mkdir /mnt/nfs root..
iSCSI(아이스카시) iSCSI : Internet Small Computer System Interface 컴퓨팅 환경에서 데이터 스토리지 시설을 이어주는 IP 기반의 스토리지 네트워킹 표준 인터넷을 통해 데이터를 전송하는 데 쓰이며 위치에 영향을 받지 않는 데이터 보관과 복구를 사용할 수 있다 IP-SAN(iSCSI) SAN 원격에서 블록 장치 제공 storage MySQL Target (iCSCI 대상,서버) initiator(초기자,클라이언트) -------------iSCSI SDD 블록 제공-----> /var/lib/mysql 마운트 iSCSI Target : iSCSI 서버 IQN이라는 주소 체계를 쓴다 주소를 사용하는 규칙 iqn.2020-06.kr.or.cccr:hostname TPG Tatget Potal..
Vagrant 장치 추가 더보기 config.vm.define "wp-storage" do |ubuntu| ubuntu.vm.box = "ubuntu/focal64" ubuntu.vm.hostname = "wp-storage" ubuntu.vm.network "private_network", ip: "192.168.200.18" ubuntu.vm.provider "virtualbox" do |vb| vb.name = "wp-storage" vb.cpus = 2 vb.memory = 2048 unless File.exist?('./.disk/nfs.vdi') vb.customize ['createmedium', 'disk', '--filename', './.disk/nfs.vdi', '--size', 10240] end vb.cu..