当前位置:网站首页>Kolla ansible deploy openstack Yoga version
Kolla ansible deploy openstack Yoga version
2022-06-26 05:43:00 【Un mu de terre à Shanghai】
Table des matières
kollaIntroduction
Introduction
kolla La Mission de openstack La plateforme Cloud offre⽣ Niveau de production 、Déballage⽤ La livraison de ⼒.kolla L'idée de base est⼀ Coupez tous les contenants , Tous les services sont basés sur Docker Transport ⾏,Et garantir⼀ Les conteneurs ne courent que ⼀Services(Processus), Fais le plus ⼩ Transport granulométrique ⾏ docker. kolla Pour réaliser openetack Le déploiement est généralement divisé en deux étapes ,No⼀ L'étape est de faire docker Miroir,No⼆ L'étape est d'organiser le déploiement .Donc,,kolla Item (s)⽬⼜ Divisé en deux ⼩Item (s)⽬: kolla、kolla-ansible .
kolla Avantages
kolla Les avantages de la technologie des conteneurs :
- Grâce à un déploiement mûr ⼯Avec ansible Et docker, Déploiement rapide et stable .
- ⼀ Les conteneurs ne courent que ⼀Services,Pour pouvoir openstack Le service est très contrôlé ⼩Taille des grains.
- Peut être entré en tant que composant ⾏Mise à jour et retour en arrière,Par exemple, mise à jour nova Components,Faire⽤ kolla-ansible -i /path/to/inventory -t nova Commande juste.
- kolla Cueillette⽤⼀ L'idée de base de la découpe des récipients , Donc, il suffit que le système d'exploitation et docker Compatible avec,De⽽ Contourne de nombreux conflits de dépendance des paquets d'installation .
- ⽬Avant kolla Item (s)⽬ La chaleur est relativement élevée dans la communauté ⾼,Communauté⽀Mieux vaut.
kolla Les inconvénients de
- Entièrement dépendant docker ,docker L'instabilité de l'environnement peut être énorme ⼤La catastrophe de,Mais⽬Avant docker Il y a peu de problèmes. .
- Faire⽤ kolla Après le déploiement de la plateforme Cloud , Pour le développement debug Et le dépannage o & M apportera plus de complexité , La question peut également être posée en écrivant ⼀Simple. client Solution C'est décidé.
Configuration de l'environnement avant l'installation
Cet article n'est pas un petit livre blanc , Ne vous apprendra pas à utiliser KVM,Mise en place du réseau,Monter le disque dur,CréationLVM Attendre les moyens d'exploitation et d'entretien , J'ai besoin de vos compétences. . Le fond est trop mince , J'écris juste 10 Je ne peux pas finir. .
Planification des noeuds
Le plan utilise KVMCréé3Machines virtuelles.
- Un commeopenstackDemanagerGérer les noeuds, Il s'est enfui openstackDekeystone Identification et RabbitMQ、etcdÉléments de base égaux,- Oui.openstack La racine de vie de . Toute expansion future du cluster doit être connectée managerDe.CPU Le noyau doit être suffisant pour , Assez de mémoire , La vitesse du réseau est encore meilleure . Les exigences de stockage ne sont pas élevées , Un seul disque système ,100GBÇa suffit..
- Un comme noeud de calcul , Est dédié à l'exploitation d'un serveur Cloud . Les noeuds de calcul sont caractérisés par: cpu Le noyau et la mémoire sont grands . Peu de stockage requis , Disques système et stockage en bloc pour ECS 、Stockage des objets、 Le stockage de Snapshot miroir est fourni par un autre noeud .
- Un comme noeud de stockage ,Ça marchecinder、glance、swiftAttendez.openstackComposants de stockage. Donc la caractéristique de ce type de noeud de stockage est que le disque est grand , Réseau rapide ( Sinon, la machine virtuelle n'est pas une carte spéciale pour accéder à son disque système ?).
Installation de l'hôtekvm
DebianOuUbuntuInstallationKVMMéthode
sudo apt update
sudo apt -y install qemu qemu-system qemu-kvm virt-manager bridge-utils vlan
KVMCréer deux d'abordNATUn périphérique réseau virtuel pour
Avant de créer une machine virtuelle, créez deux NATCarte réseau virtuelle de type.
Nom du premier périphérique réseau openstack,PouropenstackDe chaque composantendpointCommunications.Le segment réseau est10.0.0.0/24
Nom du deuxième périphérique réseau public, Accès au réseau public pour les serveurs Cloud .Le segment réseau est192.168.100.0/24

Planification matérielle des machines virtuelles.
Utilisation du miroir système Ubuntu-20.04-desktop, Chaque machine virtuelle utilise les deux cartes réseau virtuelles créées précédemment .
Planification du matériel:
- Nom d'hôte:kolla-manager.Puissance de calcul:4Nucléaire8GB.Disque dur:200GBDisque système.Réseau: Les deux cartes réseau sont utilisées .IPRespectivement.10.0.0.201Et192.168.100.201
- Nom d'hôte:kolla-compute1.Puissance de calcul:6Nucléaire16GB.Disque dur:200GBDisque système.Réseau: Les deux cartes réseau sont utilisées .IPRespectivement.10.0.0.202Et192.168.100.202
- Nom d'hôte:kolla-storage.Puissance de calcul:2Nucléaire4GB,Disque dur200GBDisque système, Ajouter deux autres 250GB Disque dur supplémentaire pour , Ces deux disques seront fusionnés en un 500GBDeVG.Réseau: Les deux cartes réseau sont utilisées .( En fait, c'est tout ce qu'il faut. openstack Assez de cartes réseau pour , Un de plus ne perd rien. )IPRespectivement.10.0.0.203Et192.168.100.203
OSModifications de configuration du système après l'installation
InstallationOS Vous ne pouvez sélectionner qu'une seule carte réseau et un seul disque , Donc quand l'installation sera terminée OS Éteignez - le immédiatement après , Et ajouter la carte réseau du chapitre 2 au résumé du matériel ,storage Ajout de périphériques de stockage 500GBPériphérique de disque dur.
Rallumez le moteur, Et faites les réglages suivants
# Définir le nom de l'hôte
hostnamectl set-hostname --static kolla-manager # Le premier.
hostnamectl set-hostname --static kolla-compute1 # Deuxième.
hostnamectl set-hostname --static kolla-storage # Troisième.
# ModifierrootMot de passe
sudo passwd root
Nouveau mot de passe:123456
# Modifierip
# Peut être modifié graphiquement , Voici les modifications de la ligne de commande ip
ip -a # Afficher le nom de l'interface réseau
# Éditionnetplan. Prenons par exemple la configuration de la première Unit é
vim /etc/netplan/01-network-manager-all.yaml
------------------------------------------------
network:
version: 2
renderer: NetworkManager
# Nouveau
ethernets:
enp1s0: # C'est le premier nom de périphérique réseau , Ce nom de périphérique passe par ip a Acquis par la commande.
dhcp4: no
addresses: [10.0.0.201/24]
optional: true
gateway4: 10.0.0.1
nameservers:
addresses: [10.0.0.1]
enp6s0: # C'est le deuxième nom de périphérique réseau
dhcp4: no
addresses: [192.168.100.201/24]
optional: true
gateway4: 192.168.100.1
nameservers:
addresses: [192.168.100.1]
# Désactiver le pare - feu
ufw disable
# Mettre à jour le paquet système
apt -y update && apt -y full-upgrade
apt -y install ssh vim git
apt -y install python3-dev libffi-dev gcc libssl-dev
vim /etc/ssh/sshd_config
# ModifierPermitRootLogin,Allowroot L'utilisateur se connecte par mot de passe
PermitRootLogin yes
# Redémarrerssh
systemctl restart ssh
systemctl enable ssh
storageConfiguration du noeudVG(Volume Group)
L'opération suivante est storage(10.0.0.203)Exécution supérieure
# storageCréer un500GBDeVG
apt -y install lvm2
pvcreate /dev/vdb /dev/vdc
vgcreate cinder-volumes /dev/vdb /dev/vdc
N'installez pasdocker!
Utiliserkolla-ansibleDéploiementopenstackAvant, Assurez - vous que le système d'exploitation de chaque noeud est aussi pur que possible , Ne pas installer en privé docker, Ne pas modifier sans autorisation GPG key.Sinon, il en résulterakolla-ansibleImpossible d'exécuter, Il ne peut que vous forcer à recharger le système .
kolla-ansible Nous aidera automatiquement à installer l'ensemble complet de l'environnement de fonctionnement ,Y compris:docker!!!
kollaInstallationopenstack
InstallationDocker SDK
docker SDKLe rôle de,ansible Via le docker SDK Pour travailler sur des noeuds individuels dockerMoteur, Pour manipuler le miroir et le conteneur . Donc il doit y avoir ceci sur chaque machine docker SDK.
À l'origine.kolla-ansible Ceci sera installé automatiquement Docker SDK, Mais j'ai trouvé que le réseau n'était pas bon quand je l'ai installé ,CauseKolla-ansible Les échecs fréquents . Alors installez - le à l'avance par Tsinghua source docker SDKAprès,C'est garanti.kolla-ansibleDe100%Succès.
Les opérations suivantes sont effectuées pour chaque machine
# Installationsshpass
apt -y install sshpass # ansibleDépendancesshpass
apt -y install python3-dev libffi-dev gcc libssl-dev
# Installationpython pipEtvenv
apt -y install python3-pip python3-venv
# TéléchargerDocker SDK.Si cette étape est incorrecte, Ça pourrait être un mauvais réseau. , Essayez encore quelques fois. .
# En fait, cette étape estkolla-ansible -i ./multinode bootstrap-serversMoyenneansibleUnstep
# Si nous le faisons à l'avance , Il n'y a pas d'erreur signalée par un mauvais réseau
# Cette commande est disponible à l'adresse suivante: 3 Exécuter sur tous les noeuds !!
pip3 install docker -i https://pypi.tuna.tsinghua.edu.cn/simple
Configuration de l'installationAnsible
Nous prévoyonsmanagerSur le noeudkollaDéploiement,Les opérations suivantes ne sont effectuées qu'à10.0.0.201Exécution supérieure.
# Générer un environnement virtuel
python3 -m venv ~/venv3
source ~/venv3/bin/activate
pip install -U pip wheel setuptools -i https://pypi.tuna.tsinghua.edu.cn/simple
# Installationansible
pip install 'ansible>=4,<6' -i https://pypi.tuna.tsinghua.edu.cn/simple
# Ajouter un nouveau profil,JeanansibleNe vérifiez pasknown host key
vim ~/ansible.cfg
----------------------------------
[defaults]
host_key_checking=False
pipelining=True
forks=100
Téléchargerkolla-ansible 14.0.0Version,Et installerGalaxyDépendance.
# PourgithubTéléchargerkolla-ansible,yogaBranches
pip install kolla-ansible==14.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
# InstallationAnsible GalaxyDépendance
cd ~ # Cette étapecd Pour que le répertoire actuel ait ansible.cfg
kolla-ansible install-deps
ConfigurationinventoryDocumentation
# Configurationansible inventory
cd ~
cp ~/venv3/share/kolla-ansible/ansible/inventory/* ~/
ls ~
# Deux fichiers apparaissent:all-in-one 、 multinode
# all in oneC'est tout.openstackDéployer sur un noeud.Si adoptéall-in-one,Aucune modification n'est nécessaire.
# On vaopenstackDéploiement dans3 Sur le noeud de table ,Utilisermultinode
vim ~/multinode
----------------------------------------
# Ajouter ceci au début du fichier 3D'accord, Modifier le mot de passe par vous - même
manager ansible_host=10.0.0.201 ansible_user=root ansible_password=123456 ansible_python_interpreter=/usr/bin/python3
compute1 ansible_host=10.0.0.202 ansible_user=root ansible_password=123456 ansible_python_interpreter=/usr/bin/python3
storage1 ansible_host=10.0.0.203 ansible_user=root ansible_password=123456 ansible_python_interpreter=/usr/bin/python3
# Modifier ces groupes , Autres réserves inchangées
[control]
manager
[network]
control
compute1
storage1
[compute]
compute1
[monitoring]
manager
[storage]
storage1
[deployment]
localhost ansible_connection=local become=true
En fait, en regardant l'original multinodeDocumentation,Vous pouvez trouver,kolla Vous avez divisé tous vos noeuds en 5Type d'espèce,C'est - à - dire:controlNoeud de classe、networkNoeud de classe、computeCatégorie、monitoringNoeud de classe、storageNoeud de classe.
Voilà.5 Les groupes de noeuds sont des sous - groupes d'autres groupes .
Par exemple, il y a beaucoup de composants sous le fichier ,Par exemple,loadbalance、troveAttendez.,Tous.[xxx:children]Forme, C'est une combinaison de liberté. 5Groupes.
Rejoignez - moi en tant que responsable de l'environnement de production ,J'ai100Serveurs, Je vais d'abord planifier ça. 100 Les machines sont divisées en 5Types.Et réfléchis.openstack Quels composants sont déployés sur quel type de noeud .
Par exemple:nova- Oui.openstack Composants de calcul pour , Je veux l'installer dans controlEtcompute Sur les types de machines ,Je vais écrire.
[nova:children]
control
compute
Par exemple:horizonOuskyline- Oui.openstackPanneauzComponents, Je vais installer ces composants monitoring Sur les noeuds du type d'affichage .
[horizon:children]
monitoring
TestsansibleConnectivité avec les noeuds individuels
ansible -i multinode all -m ping
-------------------------------------------
localhost | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
manager | SUCCESS => {
"changed": false,
"ping": "pong"
}
compute1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
storage1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
ConfigurationkollaDocumentation
# CréationkollaProfil
mkdir -p /etc/kolla
chown -R $USER:$USER /etc/kolla
cp -r ~/venv3/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
ls /etc/kolla
# Deux fichiersglobals.yml passwords.yml
# Générer un mot de passe
kolla-genpwd
# Le mot de passe généré est automatiquement écrit /etc/kolla/passwords.yml
# Écrire un modèle de configuration
cat << EOF > /etc/kolla/globals.yml --- kolla_base_distro: "ubuntu" kolla_install_type: "source" #Faire⽤ Basé sur le code source image openstack_release: "yoga" # L'élément de configuration est mieux aligné sur kolla-ansiblePoints⽀ La version reste ⼀À kolla_internal_vip_address: "10.0.0.250" # Trouver un segment réseau inoccupé ip # docker_registry: "10.0.0.203:5000" # Spécifier privé registry network_interface: "enp1s0" # Interneopenstack Gérer les segments du réseau neutron_external_interface: "enp6s0" enable_haproxy: "yes" enable_cinder: "yes" # Celui - ci est lancé cinder Les blocs stockent et utilisent nos VG enable_cinder_backend_lvm: "yes" nova_compute_virt_type: "qemu" #Faire⽤ Lors du déploiement de la machine virtuelle , L'élément de configuration doit être remplacé par qemu,La valeur par défaut estkvm EOF
# Ce qui précède est considéré comme une ligne de commande ,DecatÀEOF. Copie avec copie
Qu'est - ce qui se passe?VIP:Nous pouvons voirglobal.yml Il y a un kolla_internal_vip_address,C'estVIP C'est tous les composants endpointUtilisationip.C'est clair.,openstack Chaque forme de livraison de composants est fournie à l'extérieur avec un URL, Et tous les composants URLDeipC'estVIP.
Les documents officiels exigent également ceci VIPIl doit y en avoir un.
openstack Dépendances des composants individuels pour VIP Pour communiquer entre eux 
Démarrer l'installation
# Installation environnementale, Cette étape est automatiquement installée docker
kolla-ansible -i ./multinode bootstrap-servers
# Pré - vérification des paramètres
kolla-ansible -i ./multinode prechecks
# Téléchargeropenstack Miroir des conteneurs de composants individuels
kolla-ansible -i ./multinode pull
# Déploiement
kolla-ansible -i ./multinode deploy
# Erreur rencontrée, Détruire l'environnement installé
kolla-ansible -i ./multinode destroy --yes-i-really-really-mean-it
La figure ci - dessous montremanager Miroir du conteneur sur le noeud 
openstack CLIEtRCInstallation de fichiers
# CLI Installation du client
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master
# GénérerRCDocumentation
kolla-ansible post-deploy
. /etc/kolla/admin-openrc.sh
# Voir les services commencés
openstack service list
+----------------------------------+-------------+----------------+
| ID | Name | Type |
+----------------------------------+-------------+----------------+
| 052da6e26e3b40169d7a98c25c3a3524 | heat | orchestration |
| 1021eeae32df41998452e5f568f9b37c | neutron | network |
| 121644d1ca2b4dcea4bf7307b67266f8 | heat-cfn | cloudformation |
| 349006301f34441dbcbd608e67f22595 | keystone | identity |
| 80f2041571584e7f9732bdf09439e7ec | placement | placement |
| 9350811e7bc0471ca193389095e8010a | nova | compute |
| a2a2040a434b4bd0bb596b8f261cb2af | nova_legacy | compute_legacy |
| adde91660a0f4a59b3cb0107008ffe48 | glance | image |
| f2246af5f4bc41e786c4f602d774e54d | cinderv3 | volumev3 |
+----------------------------------+-------------+----------------+
# Voirendpoint
openstack endpoint list
+----------------------------------+-----------+--------------+----------------+---------+-----------+-----------------------------------------+
| ID | Region | Service Name | Service Type | Enabled | Interface | URL |
+----------------------------------+-----------+--------------+----------------+---------+-----------+-----------------------------------------+
| 05ad7101f81443cfa8662501ebc6ac0b | RegionOne | cinderv3 | volumev3 | True | public | http://10.0.0.250:8776/v3/%(tenant_id)s |
| 09032bbcbe624484921942216030a0e8 | RegionOne | cinderv3 | volumev3 | True | internal | http://10.0.0.250:8776/v3/%(tenant_id)s |
| 0a142961c46a461ab97d76af86dc1d98 | RegionOne | glance | image | True | internal | http://10.0.0.250:9292 |
| 26d3381fe2e34cf09bd6f16cff1df777 | RegionOne | placement | placement | True | internal | http://10.0.0.250:8780 |
| 27131aea054544a296adffd746f4b8ec | RegionOne | nova | compute | True | internal | http://10.0.0.250:8774/v2.1 |
| 2be216627f994de9af3cdb194e04b99d | RegionOne | heat | orchestration | True | public | http://10.0.0.250:8004/v1/%(tenant_id)s |
| 30f4be49399e40a7a27188e04e0cc7e7 | RegionOne | heat | orchestration | True | internal | http://10.0.0.250:8004/v1/%(tenant_id)s |
| 361582326057467297a0602f851d3efa | RegionOne | glance | image | True | public | http://10.0.0.250:9292 |
| 363cef91256c492bb48bbc00035e17d6 | RegionOne | heat-cfn | cloudformation | True | public | http://10.0.0.250:8000/v1 |
| 3969900770c24ad8b8a01686359bba42 | RegionOne | neutron | network | True | internal | http://10.0.0.250:9696 |
| 62b1eb1b01ad4381b4ed27f45bf59fa3 | RegionOne | heat-cfn | cloudformation | True | internal | http://10.0.0.250:8000/v1 |
| 653db0f9fb1c41cfbda84ba1d4b05e2a | RegionOne | nova_legacy | compute_legacy | True | public | http://10.0.0.250:8774/v2/%(tenant_id)s |
| 73215e690046464ab291c52aade9fe52 | RegionOne | nova | compute | True | public | http://10.0.0.250:8774/v2.1 |
| 894360b84d18496ba6da655fc07d77e7 | RegionOne | placement | placement | True | public | http://10.0.0.250:8780 |
| 9bb87213428c46e89842d1ba3a69cfc6 | RegionOne | keystone | identity | True | admin | http://10.0.0.250:35357 |
| ae6ba80db41c4c41a523249cce2a08db | RegionOne | keystone | identity | True | internal | http://10.0.0.250:5000 |
| b1aba9e7b93a42b18610e0c069573db5 | RegionOne | neutron | network | True | public | http://10.0.0.250:9696 |
| c544455e03f045f9bcfc5a2cf3143e79 | RegionOne | keystone | identity | True | public | http://10.0.0.250:5000 |
| cbf4436955134a7493545fa4391b25ce | RegionOne | nova_legacy | compute_legacy | True | internal | http://10.0.0.250:8774/v2/%(tenant_id)s |
+----------------------------------+-----------+--------------+----------------+---------+-----------+-----------------------------------------+
DashboardConnexion
openstackDeDashboardLe composant a deux,horizon( Existe déjà dans plusieurs versions )Etskyline(Test en cours, Il n'y a pas de conteneur officiel )
kolla Le processus d'installation nous aidera automatiquement à installer un horizonComponents.
Site Web de connexion:http://vip/auth/login/?next=/
Dans ce cas, par exemple, http://10.0.0.250/auth/login/?next=/
Mais il nous manque encore adminMot de passe pour.
. /etc/kolla/admin-openrc.sh
env|grep OS_
OS_ENDPOINT_TYPE=internalURL
OS_REGION_NAME=RegionOne
OS_INTERFACE=internal
OS_AUTH_PLUGIN=password
OS_AUTH_URL=http://10.0.0.250:35357/v3
OS_PROJECT_DOMAIN_NAME=Default
OS_TENANT_NAME=admin
OS_USERNAME=admin
OS_USER_DOMAIN_NAME=Default
OS_PROJECT_NAME=admin
OS_PASSWORD=TdHUeHzlu1SVgZuMkKmBFDWZudyOMxcadJwmFNch # C'est ça.adminMot de passe pour
OS_IDENTITY_API_VERSION=3
Connexion réussie
Produire un cas (Je peux pas.)
~/venv3/share/kolla-ansible/init-runonce
边栏推荐
猜你喜欢

11 IO frame

Ribbon负载均衡服务调用

bingc(继承)

Red team scoring method statistics

Pytorch (environment, tensorboard, transforms, torchvision, dataloader)

Navicat如何将当前连接信息复用另一台电脑

国务院发文,完善身份认证、电子印章等应用,加强数字政府建设
![[activity recommendation] cloud native, industrial Internet, low code, Web3, metauniverse... Which is the architecture hot spot in 2022](/img/64/5b2aec7a26c64c104c86e200f83b2d.png)
[activity recommendation] cloud native, industrial Internet, low code, Web3, metauniverse... Which is the architecture hot spot in 2022

Command line interface of alluxio

Supplementary course on basic knowledge of IM development (II): how to design a server-side storage architecture for a large number of image files?
随机推荐
[PHP] PHP two-dimensional array is sorted by multiple fields
Use jedis to monitor redis stream to realize message queue function
Life is so fragile
About abstact and virtual
The use of loops in SQL syntax
skimage. morphology. medial_ axis
机器学习 05:非线性支持向量机
Summary of the 10th provincial Blue Bridge Cup
状态模式,身随心变
How to ensure the efficiency and real-time of pushing large-scale group messages in mobile IM?
Secondary bootloader about boot28 Precautions for ASM application, 28035
[arm] add desktop application for buildreoot of rk3568 development board
Introduction to GUI programming to game practice (I)
Navicat如何将当前连接信息复用另一台电脑
Positioning setting horizontal and vertical center (multiple methods)
kolla-ansible部署openstack yoga版本
Red team scoring method statistics
9 common classes
Gram 矩阵
pytorch(网络模型训练)