OpenStack Heat를 사용하여 Docker 컨테이너를 배포하는 방법

따라서 OpenStack 인프라를 구현했습니다. Docker에 대해 들어 보았고 Docker가 생성 한 엄청난 양의 버즈를 알고 있습니다. OpenStack과 Docker는 일반적인 데이터 센터에서 작업하는 팀의 운영을 간소화하는 두 가지 보완 기술입니다. Docker는 응용 프로그램을 컨테이너에 자동 정렬하는 데 사용되는 오픈 소스 프로그램입니다. LXC (Linux Containers) 솔루션을 상용화하고 사용자가 하나의 서버에서 수많은 컨테이너를 실행할 수 있습니다. 반면 OpenStack은 네트워킹, 스토리지, 컴퓨터 및 기타 서비스에 중점을 둔 공개 API를 제공합니다. 컨테이너 사용 및 운영 체제를 용이하게하기 위해 인프라 소비를 단순화합니다 (컨테이너 호스팅에 대한 가이드에서 자세한 내용을 볼 수 있음).


OpenStack을 향상시키는 한 가지 방법은 Docker 플러그인을 사용하는 것입니다. Docker는 하이퍼 바이저로 OpenStack Nova에 쉽게 통합 될 수 있습니다. 그러나 OpenStack과 Docker를 결합하는 가장 좋은 기술 중 하나는 OpenStack Heat를 사용하여 컨테이너를 조정하는 것입니다..

이러한 기술을 통합하는 데 관심이 있다면 오른쪽 페이지에 착륙했습니다. 설명서는 Docker를 OpenStack에 통합하는 방법을 배우는 데 도움이됩니다. 또한 OpenStack Heat를 사용하여 Docker 컨테이너를 완벽하게 설치하는 방법에 대한 심층적 인 가이드를 제공합니다. 오케스트레이션은 초보자를 포함한 모든 사람에게 적합하도록 단계별 지침에 따라 쉽게 설명됩니다..

준비된? 하자 롤!

특별 참고 사항 : OpenStackHeat를 사용하여 Docker 컨테이너를 배포하기 전에 Linux 가상 서버가 필요합니다. 실제 사용자 리뷰와 함께 최고의 Linux 호스팅 제공 업체를 찾으려면 Hostadvice와상의하십시오.

1 부 : Docker 플러그인 설치

1 단계 : 플러그인 다운로드

Docker 플러그인은 다음을 통해 GitHub에서 사용할 수있는 Heat 폴더 (zip 폴더)에 포함되어 있습니다.

https://github.com/openstack/heat/tree/stable/icehouse

다음을 사용하여 폴더를 다운로드하고 압축을 푸십시오.

열-안정 -icehouse.zip 압축 해제

폴더의 압축을 풀고 나면 테스트 폴더를 찾아서 제거하여 충돌을 피하십시오.

CD 열 안정-아이스 하우스 / contrib /
rm -rf 도커 / 도커 / 테스트

2 단계 : 디렉토리 생성

다음 명령을 사용하여 / usr / lib / heat / 폴더 아래에 새 디렉토리를 만드십시오.

cp -r docker / * / usr / lib / heat / docker-plugin

3 단계 : 플러그인 설치

이제 스테이지가 Docker 플러그인 설치를 위해 설정되었습니다. 다음 명령을 실행하여 작업을 시작하십시오.

cd / usr / lib / heat / docker-plugin
apt-get python-pip 설치
pip install -r requirements.txt

서비스를 다시 시작하기 전에 /etc/heat/heat.conf 파일을 편집해야합니다. 이 파일을 편집하려면 아래 명령을 사용하십시오.

vi /etc/heat/heat.conf
(더하다)
plugin_dirs = / usr / lib / heat / docker-plugin / docker

이제 다음 명령을 사용하여 서비스를 다시 시작할 수 있습니다.

서비스 heat-api 재시작
heat-api-cfn 서비스 재시작
서비스 열 엔진 재시작

2 부 : 히트 템플릿 생성

이 가이드에서는 LAMP 응용 프로그램을 고정하고 배포합니다. 따라서 두 개의 Docker 컨테이너를 만들어야합니다. 하나는 MySQL 데이터베이스에서 실행되고 다른 하나는 PHP로 Apache에서 실행됩니다..
구성을 정의하는 OS :: Heat :: SoftwareConfig 자원 및 Docker 서버에 구성을 배치하기위한 또 하나의 OS :: Heat :: SoftwareDeployement 자원에 대해 설명합니다. 그런 다음 유동 IP를 OS :: Nova :: server에 연결하여 인터넷에 연결할 수 있습니다. Docker 호스트에 DockerInc :: Docker :: Container 형식의 Docker 컨테이너 2 개도 생성합니다..

:이 가이드를 위해 간단한 Heat 템플릿 만 생성합니다. 이름, 링크, 바인딩, 포트 등과 같은 여러 매개 변수를 사용하여보다 향상된 템플릿을 만들 수 있습니다. 향상된 Heat 템플릿은 Docker의 다양한 사용을 용이하게합니다. 그러나 우리가 사용하는 Docker 플러그인은 이러한 매개 변수를 지원하지 않습니다.

1 단계 : 템플릿 생성

폴더에 템플릿을 만듭니다. docker-stack.yml 다음 내용을 추가하십시오.

vi vi docker-stack.yml

heat_template_version : 2013-05-23

기술: >
OpenStack Heat를 사용하여 다중 노드 애플리케이션을도 커화.
이 템플릿은 두 개의 도커 컨테이너를 정의합니다.
PHP와 MySQL 데이터베이스와 아파치.

매개 변수 :
키:
유형 : 문자열
기술: >
인스턴스에 대한 SSH 액세스를 가능하게하는 KeyPair의 이름입니다. 참고
기본 사용자는 ec2-user입니다..
기본값 : key1

맛:
유형 : 문자열
설명 : 도커 서버의 인스턴스 유형.
기본값 : m1.medium

영상:
유형 : 문자열
기술: >
Docker 서버에 사용할 이미지의 이름 또는 ID입니다. 이것은해야합니다
Fedora 기본 이미지에서 os-collect-config 도구로 구축.
기본 : fedora-software-config

public_net :
유형 : 문자열
설명 : 유동 IP 주소가 할당 될 공용 네트워크의 이름.
기본 : nova

자원:
구성 :
유형 : OS :: Heat :: SoftwareConfig
속성 :
그룹 : 스크립트
구성 : |
#! / bin / bash -v
setenforce 0
yum -y docker-io 설치
cp /usr/lib/systemd/system/docker.service / etc / systemd / system /
sed -i -e ‘/ ExecStart / {s, fd : //, tcp : //0.0.0.0 : 2375,}’/etc/systemd/system/docker.service
systemctl start docker.service
docker -H : 2375 풀 Marouen / MySQL
docker -H : 2375 풀 마루 엔 / 아파치

전개:
유형 : OS :: Heat :: SoftwareDeployment
속성 :
구성 : {get_resource : 구성}
서버 : {get_resource : docker_server}

docker_server :
유형 : OS :: Nova :: 서버
속성 :
키 _ 이름 : {get_param : 키}
이미지 : {get_param : 이미지}
맛 : {get_param : 맛}
user_data_format : SOFTWARE_CONFIG

server_floating_ip :
유형 : OS :: Nova :: FloatingIP
속성 :
풀 : {get_param : public_net}

Associate_floating_ip :
유형 : OS :: Nova :: FloatingIPAssociation
속성 :
floating_ip : {get_resource : server_floating_ip}
server_id : {get_resource : docker_server}

MySQL :
유형 : DockerInc :: Docker :: Container
depend_on : [배치]
속성 :
이미지 : marouen / mysql
port_specs :
– 3306
docker_endpoint :
str_replace :
템플릿 : http : // host : 2375
매개 변수 :
호스트 : {get_attr : [docker_server, 네트워크, 개인, 0]}

아파치 :
유형 : DockerInc :: Docker :: Container
depend_on : [mysql]
속성 :
이미지 : 마루 엔 / 아파치
port_specs :
– 80
docker_endpoint :
str_replace :
템플릿 : http : // host : 2375
매개 변수 :
호스트 : {get_attr : [docker_server, 네트워크, 개인, 0]}

출력 :
URL :
설명 : 아파치의 공개 주소
값:
str_replace :
템플릿 : http : // host
매개 변수 :
호스트 : {get_attr : [docker_server, 네트워크, 개인, 0]}

3 부 : 스택 배포

일단 템플릿을 생성하면 스택 배포를 진행할 수 있습니다.

1 단계 : 자격 증명 파일 만들기

스택을 배포하기 전에 다음 명령을 사용하여 자격 증명 파일을 만들어야합니다.

vi creds

# 다음을 붙여 넣습니다.
내보내기 OS_TENANT_NAME = 관리자
내보내기 OS_TENANT_NAME = 관리자
내보내기 OS_PASSWORD = admin_pass
OS_AUTH_URL = 내보내기"http : // controller : 5000 / v2.0 /"

페도라 기반 이미지를 만들려면 아래 단계를 따르십시오

$ git clone https://git.openstack.org/openstack/diskimage-builder.git
자식 복제 https://git.openstack.org/openstack/tripleo-image-elements.git
자식 클론 https://git.openstack.org/openstack/heat-templates.git
자식 복제 https://git.openstack.org/openstack/dib-utils.git
수출 경로 ="$ {PWD} / dib-utils / bin : $ PATH"
ELEMENTS_PATH = tripleo-image-elements / elements : heat-templates / hot / software-config / elements 내보내기
diskimage-builder / bin / disk-image-create vm \
페도라 selinux-permissive \
os-collect-config \
os-refresh-config \
os-apply-config \
열 구성 가능 \
heat-config-cfn-init \
열 구성 도커 \
열 구성 인형 \
열 구성 소금 \
열 구성 스크립트 \
-fedora-software-config.qcow2
이미지 작성 –disk-format qcow2 –container-format bare –name fedora-software-config < \
fedora-software-config.qcow2 $

아직 키를 작성하지 않은 경우 다음 명령을 실행하십시오.

ssh-keygen
nova keypair-add –pub-key ~ / .ssh / id_rsa.pub key1

Docker 서버에 액세스 할 수 있도록하기 위해 기본 보안 그룹에 규칙을 통합합니다.

$ ICMP 허용 (핑) :

nova secgroup-add-rule 기본 icmp -1 -1 0.0.0.0/0

$ 보안 쉘 (SSH) 액세스 허용 :

nova secgroup-add-rule 기본 tcp 22 22 0.0.0.0/0

$ 2375 포트 액세스 허용 (Docker endpoint) :

nova secgroup-add-rule 기본 tcp 2375 2375 0.0.0.0/0

그런 다음 개인 네트워크를 생성하려면 다음 명령을 사용하십시오.

원천

$ 개인 네트워크를 만드십시오 :

nova network-private –bridge br100-다중 호스트 T –dns1 8.8.8.8 \
–게이트웨이 172.16.0.1 –fixed-range-v4 172.16.0.0/24

다음으로 유동 IP 풀을 만듭니다.

nova-manage floating create –pool = nova –ip_range = 192.168.100.100 / 28

2 단계 : 스택 생성

이제 새로 만든 템플릿으로 스택을 만듭니다..

원천

히트 스택 생성 -f docker-stack.yml 도커 스택

그런 다음 스택이 성공적으로 생성되었는지 확인하십시오.

열 스택리스트

스택 시작 후 아래 창이 나타납니다.

컨테이너가 성공적으로 작성되었는지 확인하려면 다음 명령을 실행하십시오.

ssh [email protected]

sudo docker -H : 2375ps

다음과 같은 결과가 나타납니다.

그게 다야! OpenStack Heat를 사용하여 Docker 컨테이너를 성공적으로 설치했습니다..

최고의 3 가지 Linux 호스팅 서비스 확인

FastComet

시작 가격 :
$ 2.95


신뢰할 수 있음
9.7


가격
9.5


사용자 친화적
9.7


지원하다
9.7


풍모
9.6

리뷰 읽기

FastComet 방문

주인공

시작 가격 :
$ 0.99


신뢰할 수 있음
9.3


가격
9.3


사용자 친화적
9.4


지원하다
9.4


풍모
9.2

리뷰 읽기

Hostinger 방문

ChemiCloud

시작 가격 :
$ 2.76


신뢰할 수 있음
10


가격
9.9


사용자 친화적
9.9


지원하다
10


풍모
9.9

리뷰 읽기

ChemiCloud 방문

관련 사용법 기사

  • Ubuntu 16.04 VPS 또는 전용 서버에서 Docker Swarm Cluster를 설정하는 방법
    전문가
  • CentOS 7 VPS 또는 전용 서버에서 Docker Swarm Cluster를 설정하는 방법
    전문가
  • Ubuntu 18.04 전용 서버 또는 VPS에 자체 클라우드를 설치하는 방법
    중급
  • Ubuntu 18.04 VPS 또는 전용 서버에서 Docker Compose 설치 및 구성 방법
    초보자
  • CentOS 7 전용 서버 또는 VPS에 Redis를 설치하는 방법
    중급
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me