U heeft dus een OpenStack-infrastructuur geïmplementeerd. Je hebt ook gehoord van Docker en je bent je bewust van de enorme hoeveelheid geroezemoes die het heeft gegenereerd. Welnu, OpenStack en Docker zijn twee complementaire technologieën die de operaties van teams stroomlijnen die in de gebruikelijke datacenters werken. Docker is een open-sourceprogramma dat wordt gebruikt om applicaties automatisch in containers te rangschikken. Het commoditiseert de LXC-oplossing (Linux Containers) en stelt gebruikers in staat om talrijke containers op één server uit te voeren. Aan de andere kant biedt OpenStack een open API gericht op netwerken, opslag, computer en andere services. Het vereenvoudigt het verbruik van infrastructuur om de runtimes en besturingssystemen van containers te vergemakkelijken (u kunt er meer over lezen in onze gids over containerhosting)


Een manier om OpenStack te verbeteren is het gebruik van Docker-plug-ins. Docker kan eenvoudig als hypervisor in OpenStack Nova worden geïntegreerd. Maar een van de beste technieken om OpenStack met Docker te combineren, is om de containers te ordenen met OpenStack Heat.

Als je nieuwsgierig bent naar de integratie van deze technologieën, dan ben je op de juiste pagina beland. De handleiding helpt u te leren hoe u Docker in OpenStack integreert. Bovendien geeft het je een uitgebreide handleiding over hoe je Docker-containers probleemloos kunt installeren met OpenStack Heat. De orkestratie wordt in detail beschreven met eenvoudig te volgen, stapsgewijze instructies om het geschikt te maken voor iedereen, ook voor beginners.

Klaar? Laten we gaan!

Speciale opmerking: voordat u Docker-containers met OpenStackHeat implementeert, hebt u een virtuele Linux-server nodig. Raadpleeg Hostadvice om de beste Linux-hostingproviders te vinden, compleet met echte gebruikersrecensies.

Deel een: Docker-plug-in installeren

Stap één: Download de plug-in

De Docker-plug-in bevindt zich in de Heat-map (zip-map) die beschikbaar is op GitHub via:

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

Download de map en pak deze uit met:

unzip heat-stable-icehouse.zip

Nadat u de map hebt uitgepakt, zoekt u de testmap en verwijdert u deze om conflicten te voorkomen:

cd hittebestendig-ijshuis / contrib /
rm -rf docker / docker / tests

Stap 2: Maak een directory aan

Gebruik vervolgens de onderstaande opdracht om een ​​nieuwe map te maken onder de map / usr / lib / heat /:

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

Stap 3: Installeer de plug-in

Nu is het podium klaar voor de installatie van de Docker-plug-in. Voer de volgende opdracht uit om de taak te starten.

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

Het bestand /etc/heat/heat.conf moet worden bewerkt voordat de service opnieuw wordt gestart. Gebruik de onderstaande opdracht om dit bestand te bewerken:

vi /etc/heat/heat.conf
(toevoegen)
plugin_dirs = / usr / lib / heat / docker-plugin / docker

U kunt nu services opnieuw starten met de opdracht:

service heat-api herstart
service heat-api-cfn herstart
service warmtemotor herstart

Deel twee: maak de heat-sjabloon

In deze handleiding zullen we een LAMP-applicatie docken en implementeren. Daarom moeten we twee Docker-containers maken; een die draait op MySQL-database en een andere die draait op Apache met PHP.
We schetsen een OS :: Heat :: SoftwareConfig-bron die de configuratie definieert en een andere OS :: Heat :: SoftwareDeployement-bron om configs op de dockerserver te implementeren. Vervolgens kunnen we een zwevend IP-adres koppelen aan de OS :: Nova :: -server om verbinding te maken met internet. We maken ook twee Docker-containers in de vorm DockerInc :: Docker :: Container op onze Docker-host.

: We maken alleen een eenvoudige Heat-sjabloon omwille van deze handleiding. Er kan een meer verbeterde sjabloon worden gemaakt met behulp van meerdere parameters zoals namen, links, bindingen, poorten en meer. De verbeterde Heat-sjabloon vergemakkelijkt het veelzijdige gebruik van Docker. De Docker-plug-in die we gebruiken, ondersteunt deze parameters echter niet.

Stap 1: maak de sjabloon

Maak een sjabloon in de map docker-stack.yml en voeg de volgende inhoud toe;

$ vi docker-stack.yml

heat_template_version: 2013-05-23

Omschrijving: >
Dockeriseer een toepassing met meerdere knooppunten met OpenStack Heat.
Deze sjabloon definieert twee actieve docker-containers
apache met php en mysql-database.

parameters:
sleutel:
type: string
Omschrijving: >
Naam van een KeyPair om SSH-toegang tot de instantie in te schakelen. Merk op dat de
standaard gebruiker is ec2-gebruiker.
standaard: key1

smaak:
type: string
description: Instantietype voor de dockerserver.
standaard: m1.medium

beeld:
type: string
Omschrijving: >
Naam of ID van de afbeelding die voor de Docker-server moet worden gebruikt. Dit moet zo zijn
gebouwd met os-collect-config-tools van een Fedora-basisimage.
standaard: fedora-software-config

public_net:
type: string
beschrijving: naam van het openbare netwerk waarvoor zwevende IP-adressen worden toegewezen.
standaard: nova

middelen:
configuratie:
type: OS :: Heat :: SoftwareConfig
eigendommen:
groep: script
configuratie: |
#! / bin / bash -v
setenforce 0
yum -y installeer 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 pull marouen / mysql
docker -H: 2375 pull marouen / apache

inzet:
type: OS :: Heat :: SoftwareDeployment
eigendommen:
config: {get_resource: configuration}
server: {get_resource: docker_server}

docker_server:
type: OS :: Nova :: Server
eigendommen:
key_name: {get_param: key}
image: {get_param: image}
smaak: {get_param: smaak}
user_data_format: SOFTWARE_CONFIG

server_floating_ip:
type: OS :: Nova :: FloatingIP
eigendommen:
pool: {get_param: public_net}

associate_floating_ip:
type: OS :: Nova :: FloatingIPAssociation
eigendommen:
floating_ip: {get_resource: server_floating_ip}
server_id: {get_resource: docker_server}

mysql:
type: DockerInc :: Docker :: Container
hangt af van: [implementatie]
eigendommen:
afbeelding: marouen / mysql
port_specs:
– 3306
docker_endpoint:
str_replace:
sjabloon: http: // host: 2375
params:
host: {get_attr: [docker_server, netwerken, privé, 0]}

apache:
type: DockerInc :: Docker :: Container
hangt af van: [mysql]
eigendommen:
afbeelding: marouen / apache
port_specs:
– 80
docker_endpoint:
str_replace:
sjabloon: http: // host: 2375
params:
host: {get_attr: [docker_server, netwerken, privé, 0]}

uitgangen:
url:
beschrijving: openbaar adres van apache
waarde:
str_replace:
sjabloon: http: // host
params:
host: {get_attr: [docker_server, netwerken, privé, 0]}

Deel drie: implementeer de stapel

Zodra u de sjabloon hebt gemaakt, kunt u doorgaan met de implementatie van uw stapel.

Stap 1: maak een referentiebestand aan

Voordat u de stapel implementeert, moet u een referentiebestand maken met de volgende opdracht:

vi creds

#Plak het volgende:
export OS_TENANT_NAME = admin
export OS_TENANT_NAME = admin
export OS_PASSWORD = admin_pass
exporteer OS_AUTH_URL ="http: // controller: 5000 / v2.0 /"

Volg de onderstaande stappen om een ​​op fedora gebaseerde afbeelding te maken

$ git clone https://git.openstack.org/openstack/diskimage-builder.git
git clone https://git.openstack.org/openstack/tripleo-image-elements.git
git clone https://git.openstack.org/openstack/heat-templates.git
git clone https://git.openstack.org/openstack/dib-utils.git
export PATH ="$ {PWD} / dib-utils / bin: $ PATH"
export ELEMENTS_PATH = tripleo-image-elementen / elementen: heat-templates / hot / software-config / elementen
diskimage-builder / bin / disk-image-create vm \
fedora selinux-permissive \
os-collect-config \
os-refresh-config \
os-apply-config \
heat-config-ansible \
heat-config-cfn-init \
heat-config-docker \
heat-config-puppet \
heat-config-salt \
heat-config-script \
-o fedora-software-config.qcow2
blik image-create –disk-format qcow2 –container-format bare –name fedora-software-config < \
fedora-software-config.qcow2 $

Als u nog geen sleutel moet maken, voert u de volgende opdracht uit:

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

Om toegang tot uw Docker-server mogelijk te maken, nemen we regels op in onze standaardbeveiligingsgroep:

$ Vergunning ICMP (ping):

nova secgroup-add-rule standaard icmp -1 -1 0.0.0.0/0

$ Sta veilige shell (SSH) toegang toe:

nova secgroup-add-rule standaard tcp 22 22 0.0.0.0/0

$ Permit 2375 poorttoegang (Docker-eindpunt):

nova secgroup-add-rule standaard tcp 2375 2375 0.0.0.0/0

Gebruik vervolgens de volgende opdracht om een ​​privé-netwerk te maken:

broncertificaten

$ Creëer een privaat netwerk:

nova network-create private –bridge br100 –multi-host T –dns1 8.8.8.8 \
–gateway 172.16.0.1 – fixed-range-v4 172.16.0.0/24

Maak vervolgens de zwevende IP-pool:

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

Stap 2: Maak je stapel

Nu maken we onze stapel op basis van de nieuw gemaakte sjabloon.

broncertificaten

heat stack-create -f docker-stack.yml docker-stack

Controleer vervolgens of uw stapel is gemaakt:

heat stack-lijst

Het onderstaande venster verschijnt na het starten van de stapel:

Voer de volgende opdracht uit om te bevestigen dat uw containers met succes zijn gemaakt:

ssh [email protected]

sudo docker -H: 2375 ps

Je krijgt de volgende output:

Dat is het! U hebt Docker-containers met OpenStack Heat succesvol geïnstalleerd.

Bekijk de top 3 Linux-hostingservices

FastComet

Beginprijs:
$ 2,95


Betrouwbaarheid
9.7


Prijzen
9.5


Gebruikersvriendelijk
9.7


Ondersteuning
9.7


Kenmerken
9.6

Lees recensies

Bezoek FastComet

Hostinger

Beginprijs:
$ 0,99


Betrouwbaarheid
9.3


Prijzen
9.3


Gebruikersvriendelijk
9.4


Ondersteuning
9.4


Kenmerken
9.2

Lees recensies

Bezoek Hostinger

ChemiCloud

Beginprijs:
$ 2,76


Betrouwbaarheid
10


Prijzen
9,9


Gebruikersvriendelijk
9,9


Ondersteuning
10


Kenmerken
9,9

Lees recensies

Bezoek ChemiCloud

Gerelateerde How-To-artikelen

  • Hoe een Docker Swarm-cluster op Ubuntu 16.04 VPS of Dedicated Server in te stellen
    deskundige
  • Hoe een Docker Swarm-cluster op te zetten op een CentOS 7 VPS of Dedicated Server
    deskundige
  • Eigen cloud installeren op een Ubuntu 18.04 Dedicated Server of VPS
    gemiddeld
  • Docker Compose installeren en configureren Op een Ubuntu 18.04 VPS of Dedicated Server
    Nieuweling
  • Redis installeren op een CentOS 7 Dedicated Server of VPS
    gemiddeld
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me