惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Application and Cybersecurity Blog
Application and Cybersecurity Blog
A
About on SuperTechFans
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Help Net Security
Help Net Security
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
O
OpenAI News
美团技术团队
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
Schneier on Security
Schneier on Security
Webroot Blog
Webroot Blog
Cyberwarzone
Cyberwarzone
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google Online Security Blog
Google Online Security Blog
T
Tenable Blog
S
Security Affairs
博客园_首页
S
Schneier on Security
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
Spread Privacy
Spread Privacy
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
TaoSecurity Blog
TaoSecurity Blog
博客园 - 聂微东
Vercel News
Vercel News
M
MIT News - Artificial intelligence
T
Troy Hunt's Blog
B
Blog
MongoDB | Blog
MongoDB | Blog
Martin Fowler
Martin Fowler
Attack and Defense Labs
Attack and Defense Labs
L
LINUX DO - 最新话题
D
DataBreaches.Net
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Stack Overflow Blog
Stack Overflow Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - Franky
W
WeLiveSecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
F
Fortinet All Blogs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
Check Point Blog
H
Hacker News: Front Page

lvbibir's Blog

shell | 磁盘空间分析脚本 Linux cat 和 tee 命令写入文件 python | 使用 uv 管理你的 python 环境 Claude Code 完整配置指南 windows | mihomo 内核独立部署指南 linux | 磁盘扩容 wsl | 释放长久运行占用的磁盘空间 mysql | 线程上限问题处理 麒麟 7.6 安装谷歌 OTP 认证模块 suse 12sp5 升级 openssh 及 openssl suse 12sp5 部署 mysql 5.7 《谁的青春不迷茫》 docker | centos7 部署 docker vim | 基础配置和使用 windows | rime 输入法 & 雾凇方案 shell | sshpass 批量传输文件及执行命令 wsl | 原生 linux 方式安装 docker nodejs | fnm + pnpm 开发环境配置 wsl | 安装配置 miniconda 虚拟环境 wsl | 自动更新系统代理 wsl | bashrc 环境变量不正确加载的处理方法 wsl | win10 安装 wsl2 troubleshooting | ssh 成功但是 scp 失败 linux | 常用命令总结 docker 部署 piclist shell | 检测网站存活并自动钉钉告警 Zabbix | 监控端口连通性并自动追踪 TCP 路由 windows | 自定义开机快速启动项 windows | miniconda 配置 python 虚拟环境 Zabbix | 监控主机到指定 ip 的流量大小 shell | centos 初始化 loki (二) 部署 loki (一) 简介 prometheus (六) Alertmanager prometheus (五) 记录规则与告警规则 prometheus (四) 黑盒监控 prometheus (三) 服务发现 prometheus (二) 静态配置 prometheus (一) 简介及部署 traefik (四) TraefikService 服务 traefik (三) Middleware 中间件 traefik (二) ingressRoute 路由 traefik (一) 简介、部署和配置 kubernetes | Gateway API 简介及部署 linux | dns 配置文件中 search 和 options ndots 详解 kubernetes | command args 和 dockerfile 中的 ENTRYPOINT CMD kubernetes | statefulset 控制器详解 docker | dockerfile 最佳实践 docker | dockerfile 指令详解 linux | kill 命令详解以及 linux 中的信号 troubleshooting | elasticsearch 安装插件报错 shell | if 条件判断 docker | 下载外网镜像的几种方式 python | 鬼谷子数学问题 steam挂刀教程 linux | history 命令的格式化输出 shell | 将本地镜像批量推送到 harbor windows | hosts 文件修复 kubernetes | configmap & secret kubernetes | RBAC 鉴权和 NetworkPolicy kubernetes | service & ingress kubernetes | 存储 kubernetes | 滚动升级和自动伸缩 kubernetes | 控制器 kubernetes | 日志 kubernetes | 调度 kubernetes | pod kubernetes | 杂记 linux | set 命令详解 ceph | openeuler 部署 ceph-v16 ceph | ceph-v16 离线安装解决方案 pxe 如何应对复杂的服务器硬件环境 python | 批量修改目录下文件名 《微习惯》 ceph | openeuler (aarch64) 部署 ceph-v16 troubleshooting | glibc 误升级后修复 pxe 安装配置大全 《人间失格》 跑步日常 [置顶] Hello, hugo! shell | 检索某 url 中所有文件的内容 shell | 不同执行方式的区别 shell | 开启 debug 模式 vscode | 常见问题 windows & linux 多网卡时设置默认路由以及添加静态路由 mysql (二) 主从复制原理 GTID 并行复制 mysql (一) 部署 mysql | 杂记 cicd | jenkins 部署 mall-swarm 项目 httpd 源码打包编译成 rpm 包 openssl 源码打包编译成 rpm 包 centos7 | 修改网卡名称 ceph | pool pg_num 配置 docker | 脚本方式批量导出/导入镜像 centos 密码尝试次数过多问题处理 centos7 | 升级内核至 5.10 CVE-1999-0526 ceph | centos7 部署 ceph-v12 python | 修改 pip 源 troubleshooting | 安装 cloud-init 后导致 ssh 连接失败
kolla-ansible 部署 openstack (Train) (all-in-one)
lvbibir · 2021-10-01 · via lvbibir's Blog

0 前言

本文参考以下链接:

kolla 的使命是为 openstack 云平台提供生产级别的、开箱即用的交付能力。kolla 的基本思想是一切皆容器,将所有服务基于 Docker 运行,并且保证一个容器只跑一个服务(进程),做到最小粒度的运行 docker。

kolla 要实现 openetack 部署总体上分为两步,第一步是制作 docker 镜像,第二步是编排部署。因此,kolla 项目又被分为两个小项目:kolla、kolla-ansible 。

kolla-ansible 项目 kolla 项目 dockerhub 镜像地址

2 部署 openstack 集群

2.1 安装环境准备

官方部署文档

本次部署 train 版 all-in-one 单节点,使用一台 centos7.8 minimal 节点进行部署,该节点同时作为控制节点、计算节点、网络节点和 cinder 存储节点使用,同时也是 kolla ansible 的部署节点。

kolla 安装节点要求:

2 network interfaces 8GB main memory 40GB disk space

如果是 vmware workstation 环境,勾选处理器选项的虚拟化引擎相关功能,否则后面需要配置 nova_compute_virt_type=qemu 参数,这里选择勾选,跳过以下步骤。

cat /etc/kolla/globals.yml
nova_compute_virt_type: "qemu"

#或者部署完成后手动调整
[root@kolla ~]# cat /etc/kolla/nova-compute/nova.conf |grep virt_type
#virt_type = kvm
virt_type = qemu

[root@kolla ~]# docker restart nova_compute

kolla 的安装要求目标机器至少两块网卡,本次安装使用 2 块网卡对应管理网络和外部网络两个网络平面,在 vmware workstation 虚拟机新增一块网卡 ens34:

ens32,NAT 模式,管理网络,正常配置静态 IP 即可。租户网络与该网络复用,租户 vm 网络不单独创建网卡 ens34,桥接模式,外部网络,无需配置 IP 地址,这个其实是让 neutron 的 br-ex 绑定使用,虚拟机通过这块网卡访问外网。

ens34 网卡 配置参考

cat > /etc/sysconfig/network-scripts/ifcfg-ens34 <<EOF
NAME=ens34
DEVICE=ens34
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
EOF

#重新加载ens34网卡设备
nmcli con reload && nmcli con up ens34

如果启用 cinder 还需要额外添加磁盘,这里以添加一块/dev/sdb 磁盘为例,创建为物理卷并加入卷组。

pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb

注意卷组名称为 cinder-volumes,默认与后面的 globals.yml 中定义一致。

[root@kolla ~]# cat /etc/kolla/globals.yml | grep cinder_volume_group
#cinder_volume_group: "cinder-volumes"

2.2 部署 kolla ansible

配置主机名,kolla 预检查时 rabbitmq 可能需要能够进行主机名解析

hostnamectl set-hostname kolla

安装依赖

yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python python2-pip  python-pbr epel-release ansible

配置阿里云 pip 源,否则 pip 安装时会很慢

mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF 
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple/
EOF

安装 kolla-ansible

kolla 版本与 openstack 版本对应关系

pip install setuptools==22.0.5
pip install pip==20.3.4
pip install wheel
pip install kolla-ansible==9.1.0 --ignore-installed PyYAML

复制 kolla-ansible 配置文件到当前环境

mkdir -p /etc/kolla
chown $USER:$USER /etc/kolla

cp -r /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

cp /usr/share/kolla-ansible/ansible/inventory/* .

修改 ansible 配置文件

cat << EOF | sed -i '/^\[defaults\]$/ r /dev/stdin' /etc/ansible/ansible.cfg
host_key_checking=False
pipelining=True
forks=100
EOF

默认有 all-in-one 和 multinode 两个 inventory 文件,这里使用 all-in-one,来规划集群角色,配置默认即可

[root@kolla ~]# cat all-in-one | more

检查 inventory 配置是否正确,执行:

ansible -i all-in-one all -m ping

生成 openstack 组件用到的密码,该操作会填充/etc/kolla/passwords.yml,该文件中默认参数为空。

修改 keystone_admin_password,可以修改为自定义的密码方便后续 horizon 登录,这里改为 kolla。

$ sed -i 's#keystone_admin_password:.*#keystone_admin_password: kolla#g' /etc/kolla/passwords.yml 

$ cat /etc/kolla/passwords.yml | grep keystone_admin_password
keystone_admin_password: kolla

修改全局配置文件 globals.yml,该文件用来控制安装哪些组件,以及如何配置组件,由于全部是注释,这里直接追加进去,也可以逐个找到对应项进行修改。

cp /etc/kolla/globals.yml{,.bak}

cat >> /etc/kolla/globals.yml <<EOF
# Kolla options

kolla_base_distro: "centos"
kolla_install_type: "binary"
openstack_release: "train"
kolla_internal_vip_address: "192.168.150.155"

# Docker options
# docker_registry: "registry.cn-beijing.aliyuncs.com"
# docker_namespace: "kollaimage"

# Neutron - Networking Options
network_interface: "ens32"
neutron_external_interface: "ens34"
neutron_plugin_agent: "openvswitch"
enable_neutron_provider_networks: "yes"

# OpenStack services
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"

EOF

参数说明:

  • kolla_base_distro: kolla 镜像基于不同 linux 发型版构建,主机使用 centos 这里对应使用 centos 类型的 docker 镜像即可。
  • kolla_install_type: kolla 镜像基于 binary 二进制和 source 源码两种类型构建,实际部署使用 binary 即可。
  • openstack_release: openstack 版本可自定义,会从 dockerhub 拉取对应版本的镜像
  • kolla_internal_vip_address: 单节点部署 kolla 也会启用 haproxy 和 keepalived,方便后续扩容为高可用集群,该地址是 ens32 网卡网络中的一个可用 IP。
  • docker_registry: 默认从 dockerhub 拉取镜像,也可以本地搭建仓库,提前推送镜像上去。
  • docker_namespace: 阿里云 kolla 镜像仓库所在的命名空间,dockerhub 官网默认是 kolla。
  • network_interface: 管理网络的网卡
  • neutron_external_interface: 外部网络的网卡
  • neutron_plugin_agent: 默认启用 openvswitch
  • enable_neutron_provider_networks: 启用外部网络
  • enable_cinder: 启用 cinder
  • enable_cinder_backend_lvm: 指定 cinder 后端存储为 lvm

2.3 部署 openstack 组件

部署 openstack

# 预配置,安装docker、docker sdk、关闭防火墙、配置时间同步等
kolla-ansible -i ./all-in-one bootstrap-servers

# 部署前环境检查,可能会报docker版本的错,可以忽略
kolla-ansible -i ./all-in-one prechecks

# 拉取镜像,也可省略该步骤,默认会自动拉取
kolla-ansible -i ./all-in-one pull

# 执行实际部署,拉取镜像,运行对应组件容器
kolla-ansible -i ./all-in-one deploy

# 生成openrc文件
kolla-ansible post-deploy

以上部署没有报错中断说明部署成功,所有 openstack 组件以容器方式运行,查看容器

[root@kolla ~]# docker ps -a

确认没有 Exited 等异常状态的容器

[root@kolla ~]# docker ps -a  | grep -v Up

本次部署运行了 38 个容器

[root@localhost kolla-env]# docker ps -a | wc -l
39

查看拉取的镜像

[root@kolla ~]# docker images | wc -l
39
[root@kolla ~]# docker images
REPOSITORY                       TAG       IMAGE ID       CREATED         SIZE
kolla/centos-binary-heat-api     train     b97df3444b35   10 months ago   1.11GB
kolla/centos-binary-heat-engine  train     e19de6feec32   10 months ago   1.11GB
......

查看 cinder 使用的卷,自动创建了 lvm

[root@kolla ~]# lsblk | grep cinder
├─cinder--volumes-cinder--volumes--pool_tmeta 253:3    0   20M  0 lvm  
│ └─cinder--volumes-cinder--volumes--pool     253:5    0   19G  0 lvm  
└─cinder--volumes-cinder--volumes--pool_tdata 253:4    0   19G  0 lvm  
  └─cinder--volumes-cinder--volumes--pool     253:5    0   19G  0 lvm  
  
[root@kolla ~]# lvs | grep cinder
  cinder-volumes-pool cinder-volumes twi-a-tz--  19.00g             0.00   10.55

另外需要注意,不要在该节点安装 libvirt 等工具,这些工具安装后可能会启用 libvirtd 和 iscsid.sock 等服务,kolla 已经在容器中运行了这些服务,这些服务会调用节点上的 sock 文件,如果节点上也启用这些服务去抢占这些文件,会导致容器异常。默认 kolla 在预配置时也会主动禁用节点上的相关服务。

2.4 安装 openStack 客户端

可以直接安装到服务器上或者使用 docker 安装容器

推荐使用 docker 容器方式运行客户端

使用 docker 容器作为客户端

docker run -d --name client \
  --restart always \
  -v /etc/kolla/admin-openrc.sh:/admin-openrc.sh:ro \
  -v /usr/share/kolla-ansible/init-runonce:/init-runonce:rw \
  kolla/centos-binary-openstack-base:train sleep infinity

docker exec -it client bash
source /admin-openrc.sh
openstack service list

yum 安装 openstack 客户端

#启用openstack存储库
yum install -y centos-release-openstack-train

#安装openstack客户端
yum install -y python-openstackclient

#启用selinux,安装openstack-selinux软件包以自动管理OpenStack服务的安全策略
yum install -y openstack-selinux

#报错处理
pip uninstall urllib3
yum install -y python2-urllib3

2.5 运行 cirros 实例

kolla ansible 提供了一个快速创建 cirros demo 实例的脚本/usr/share/kolla-ansible/init-runonce。

脚本需要 cirros 镜像,如果网络较慢可以使用浏览器下载放在/opt/cache/files 目录下:

wget https://github.com/cirros-dev/cirros/releases/download/0.4.0/cirros-0.4.0-x86_64-disk.img
mkdir -p /opt/cache/files/
mv cirros-0.4.0-x86_64-disk.img /opt/cache/files/

定义 init-runonce 示例脚本外部网络配置:

#定义init-runonce示例脚本外部网络配置
vim /usr/share/kolla-ansible/init-runonce
EXT_NET_CIDR=${EXT_NET_CIDR:-'192.168.35/24'}
EXT_NET_RANGE=${EXT_NET_RANGE:-'start=192.168.35.150,end=192.168.35.188'}
EXT_NET_GATEWAY=${EXT_NET_GATEWAY:-'192.168.35.1'}

#执行脚本,上传镜像到glance,创建内部网络、外部网络、flavor、ssh key,并运行一个实例
source /etc/kolla/admin-openrc.sh 
/usr/share/kolla-ansible/init-runonce

参数说明:

EXT_NET_CIDR 指定外部网络,由于使用桥接模式,直接桥接到了电脑的无线网卡,所以这里网络就是无线网卡的网段。 EXT_NET_RANGE 指定从外部网络取出一个地址范围,作为外部网络的地址池 EXT_NET_GATEWAY 外部网络网关,这里与 wifi 网络使用的网关一致

根据最终提示运行实例

openstack server create \
    --image cirros \
    --flavor m1.tiny \
    --key-name mykey \
    --network demo-net \
    demo1

2.6 访问 openstack horizon

访问 openstack horizon 需要使用 vip 地址,节点上可以看到由 keepalived 容器生成的 vip

[root@kolla ~]# ip a |grep ens32
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.150.101/24 brd 192.168.150.255 scope global noprefixroute dynamic ens32
    inet 192.168.150.155/32 scope global ens32

浏览器直接访问该地址即可登录到 horizon

http://192.168.150.155

我这里的用户名密码为 admin/kolla,信息可以从 admin-openrc.sh 中获取

[root@kolla ~]# cat /etc/kolla/admin-openrc.sh
# Clear any old environment that may conflict.
for key in $( set | awk '{FS="="}  /^OS_/ {print $1}' ); do unset $key ; done
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=kolla
export OS_AUTH_URL=http://192.168.150.155:35357/v3
export OS_INTERFACE=internal
export OS_ENDPOINT_TYPE=internalURL
export OS_IDENTITY_API_VERSION=3
export OS_REGION_NAME=RegionOne
export OS_AUTH_PLUGIN=password

默认登录后如下

image-20211027141126853

在 horizion 查看创建的网络和实例

image-20211029133654821

登录实例控制台,验证实例与外网的连通性,cirros 用户密码在初次登录时有提示:

image-20211029143245929

为实例绑定浮动 IP 地址,方便从外部 ssh 远程连接到实例

点击 + 随机分配一个浮动 IP

image-20211029142830822

image-20211029142911908

在实例界面可以看到绑定的浮动 ip

image-20211029143343691

在 kolla 节点上或者在集群外部使用 SecureCRT 等 ssh 工具连接到实例。cirros 镜像默认用户密码为 cirros/gocubsgo,该镜像信息官网有 介绍

[root@kolla ~]# ssh cirros@192.168.35.183
cirros@192.168.35.183's password: 

2.7 运行 centos 实例

centos 官方维护有相关 cloud image,如果不需要进行定制,可以直接下载来运行实例 参考

CentOS 官方维护的镜像 下载地址

也可以使用命令直接下载镜像,但是下载可能较慢,建议下载好在进行上传。以 centos7.8 为例:

wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-2003.qcow2c

下载完成后上传镜像到 openstack,直接在 horizon 上传即可。也可以使用命令上传。

注意:默认该镜像运行的实例只能使用 ssh key 以 centos 用户身份登录,如果需要使用 root 远程 ssh 连接到实例需要在上传前为镜像配置 root 免密并开启 ssh 访问, 参考

另外我们的命令客户端在容器中,所有这里有些不方便,首先要将镜像复制到容器中,然后使用 openstack 命令上传。

这里复制到 client 容器的根目录下。

[root@kolla ~]# docker cp CentOS-7-x86_64-GenericCloud-2003.qcow2c client:/

[root@kolla ~]# docker exec -it client bash
()[root@f11a103c5ade /]# 
()[root@f11a103c5ade /]# source /admin-openrc.sh 

()[root@f11a103c5ade /]# ls | grep CentOS
CentOS-7-x86_64-GenericCloud-2003.qcow2c

执行以下 openstack 命令上传镜像

openstack image create "CentOS78-image" \
  --file CentOS-7-x86_64-GenericCloud-2003.qcow2c \
  --disk-format qcow2 --container-format bare \
  --public

创建实例

openstack server create \
    --image CentOS78-image \
    --flavor m1.small \
    --key-name mykey \
    --network demo-net \
    demo-centos

创建完成后为实例绑定浮动 IP。

image-20211029160645697

如果实例创建失败可以查看相关组件报错日志

[root@kolla ~]# tail -100f /var/log/kolla/nova/nova-compute.log 

如果没有提前定制镜像修改 root 密码,只能使用 centos 用户及 sshkey 登录,由于是在容器中运行的 demo 示例,ssh 私钥也保存在容器的默认目录下,在容器中连接实例浮动 IP 测试

[root@kolla ~]# docker exec -it client bash
()[root@b86f87f7f101 ~]# ssh -i /root/.ssh/id_rsa centos@192.168.35.186
Last login: Fri Oct 29 08:10:42 2021 from 192.168.35.188
[centos@demo-centos ~]$ sudo -i
[root@demo-centos ~]# 

2.8 运行 ubuntu 实例

下载镜像

wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
docker cp bionic-server-cloudimg-amd64.img client:/

上传镜像

openstack image create "Ubuntu1804" \
  --file bionic-server-cloudimg-amd64.img \
  --disk-format qcow2 --container-format bare \
  --public

创建实例

openstack server create \
    --image Ubuntu1804 \
    --flavor m1.small \
    --key-name mykey \
    --network demo-net \
    demo-ubuntu

绑定浮动 ip

image-20211029162115403 ubuntu 镜像默认用户为 ubuntu,首次登陆使用 sshkey 方式

image-20211029162258334

3 调整集群配置

3.1 新增 magnum & ironic 组件

magnumironic 默认状态下是没有安装的,在 /etc/kolla/globals.yml 可以看到默认配置

#enable_magnum: "no"
#enable_ironic: "no"

/etc/kolla/globals.yml 之前的配置下面新增如下,参数的具体含义查看 官方文档

# ironic
enable_ironic: true
ironic_dnsmasq_interface: "enp11s0f1"
ironic_dnsmasq_dhcp_range: "192.168.45.200,192.168.45.210"
ironic_dnsmasq_default_gateway: 192.168.45.1
ironic_cleaning_network: "public1"
ironic_dnsmasq_boot_file: pxelinux.0

# magnum
enable_magnum: true

ironic 组件还需要一些其他操作

mkdir -p /etc/kolla/config/ironic/
curl https://tarballs.openstack.org/ironic-python-agent/dib/files/ipa-centos7-master.kernel -o /etc/kolla/config/ironic/ironic-agent.kernel
curl https://tarballs.openstack.org/ironic-python-agent/dib/files/ipa-centos7-master.initramfs -o /etc/kolla/config/ironic/ironic-agent.initramfs

在现有集群中新增组件

kolla-ansible -i all-in-one deploy --tags horizon,magnum,ironic

3.2 修改组件配置

集群部署完成后需要开启新的组件或者扩容,可以修改/etc/kolla/global.yml 调整参数。

或者在/etc/kolla/config 目录下创建自定义配置文件,例如

# mkdir -p /etc/kolla/config/nova

# vim /etc/kolla/config/nova/nova.conf

[DEFAULT]
block_device_allocate_retries = 300
block_device_allocate_retries_interval = 3

重新配置 openstack,kolla 会自动重建配置变动的容器组件。

kolla-ansible -i all-in-one reconfigure -t nova

3.3 kolla 配置和日志文件

  • 各个组件配置文件目录: /etc/kolla/
  • 各个组件日志文件目录:/var/log/kolla/

3.4 清理 kolla ansilbe 集群

kolla-ansible destroy --include-images --yes-i-really-really-mean-it
# 或者
[root@kolla ~]# cd /usr/share/kolla-ansible/tools/
[root@all tools]# ./cleanup-containers
[root@all tools]# ./cleanup-host
#重置cinder卷,谨慎操作
vgremove cinder-volumes

3.5 重新部署 kolla ansible 集群

## 清除操作

先关闭所有运行的实例,再进行下面操作

[root@kolla ~]# cd /usr/share/kolla-ansible/tools/
[root@all tools]# ./cleanup-containers
vgremove cinder-volumes

## 重建操作

pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb

kolla-ansible -i ./all-in-one deploy
kolla-ansible post-deploy

4 可能遇到的问题

4.1 虚拟 ip 分配失败

image-20211130161356609

这种情况多半是由于虚拟 ip 没有分配到,并不是端口问题

在全局的配置中添加/修改这个 id 值,必须是 0-255 之间的数字,并且确保在整个二层网络中是唯一的

vim /etc/kolla/globals.yml

keepalived_virtual_router_id: "199"

以上