kolla搭建octavia
本文是在另外一篇文章的基础上使用kolla-ansible 部署octavia实践总结。部分内容总结略有粗糙,见谅。
使用kolla-ansible all-in-one部署OpenStack Stein
https://blog.csdn.net/zongzw/article/details/106952948
参考链接
https://www.lijiawang.org/posts/kolla-octavia.html
kolla-octavia
(5条消息)openstack kolla 方式配置octavia_运维_weixin_40161962的博客-CSDN博客
OpenStack Docs: Octavia Documentation
OpenStack Docs: Octavia Certificate Configuration Guide
OpenStack Docs: Using Octavia CLI extensions to OpenStack Client
OpenStack Docs: Python Octavia Client Reference
部署过程
下载octavia 源码
下载octavia 代码,主要会用到其中的生成cert部分,但需要 注意的是
部署stein版本需要加 -b stable/stein
# git clone https://github.com/openstack/octavia -b stable/stein
生成octavia需要的key cert集合
- 使用/etc/kolla/passwords.yml中的octavia_ca_password替换bin/create_certificates.sh脚本中的foobar
# git clone https://review.openstack.org/p/openstack/octavia
# cd octavia
# grep octavia_ca /etc/kolla/passwords.yml
octavia_ca_password: mEUyBHLopKk501CX30WRnPuiDmoP3I7eNQIQbC6z
# sed -i 's/foobar/mEUyBHLopKk501CX30WRnPuiDmoP3I7eNQIQbC6z/g' bin/create_certificates.sh
# ./bin/create_certificates.sh cert $(pwd)/etc/certificates/openssl.cnf
- 生成的证书需要 重命名
命令如下:
bin/create_certificates.sh /etc/kolla/config/octavia `pwd`/etc/certificates/openssl.cnf
.
|-- ca_01.pem
|-- cakey.pem <- from private cakey.pem
|-- client.csr
|-- client.pem
|-- index.txt
|-- index.txt.attr
|-- index.txt.old
|-- newcerts
| `-- 01.pem
|-- private
|-- serial
|-- serial.old
|-- server.key <- from client.key
`-- server.pem <- from client-.pem
修改/etc/kolla/globals.yml
将这个选项改成yes: enable_octavia
依次重新运行部署命令
# (kolla) kolla-ansible bootstrap-servers
# (kolla) kolla-ansible prechecks
# (kolla) kolla-ansible deploy
# (kolla) kolla-ansible post-deploy
openstack client 中 添加loadbalancer 子命令集合
此命令在openstack virtualenv中执行
# pip install python-octaviaclient
创建amphora 镜像
创建 amphora 的过程是在部署完成后执行的。
https://blog.csdn.net/weixin_40161962/article/details/102967837?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1
和https://github.com/openstack/octavia/tree/master/diskimage-create
制作image
执行安装依赖包命令,此命令中的依赖包会在pip install -r requirements.txt 中需要。
yum -y install python-devel libffi-devel gcc openssl-devel libselinux-python
# virtualenv /root/venv/octavia
# source venv/octavia/bin/activate
(octavia) [root@kolla]
# pip install -U pip
# cd octavia/
# pip install win-inet-pton # 不执行此步会有安装错误报出
# pip install -r requirements.txt
# cd diskimage-create/
# pip install -r requirements.txt
# fix the error:
# 2020-06-24 02:31:51.830 | qcow2 output format specified but qemu-img executable not found.
# yum install -y qemu-img
# fix the error:
# line 39: debootstrap: command not found
# yum install debootstrap
# ./diskimage-create.sh -i ubuntu -t qcow2 -o amphora-x64-haproxy
不明白为什么这个过程不能自动化到kolla-ansible的安装部署过程中。上边这个命令也是从网上过来人的blog中凑来的。。。。
openstack image create --container-format bare --disk-format qcow2 --private --file /root/octavia/diskimage-create/amphora-x64-haproxy.qcow2 --tag amphora amphora
创建octavia_ssh_key
openstack keypair create --public-key /root/.ssh/id_rsa.pub octavia_ssh_key
修改octavia.conf文件
octavia四个组件的目录下都有这个文件,我们需要修改的是octavia-worker下的octavia.conf
amp_boot_network_list = 网络ID
amp_secgroup_list = 安全组ID
amp_flavor_id = 实例FlavorID
docker restart octavia_worker
创建loabalancer尝试
openstack loadbalancer create --vip-network-id 8381dc8d-2122-4379-821f-b706564e580e
等待许久后会失败,因为网络问题amphora 虚机中无法连接到controller 节点 10.145.64.104:5555,参考问题与解决部分。
使用horizon操作octavia
似曾相识,跟neutron lbaas 一致:
Octavia 可以从horizon和 CLI两种方式操作,创建LB后,在Compute -> Instance中可以看到有amphora的instance启动,其中集成了haproxy。
Octavia将loadbalancer的能力交给tenant,用户可以自己创建LB,其实现本质是在compute上创建一个带有负载均衡功能的虚机(默认负载均衡器为haproxy)VIP为floatingIP,并通过此虚机实现负载均衡能力。
问题与解决
问题:执行bootstrap_servers时异常。
以下错误输出问题很多,省略部分输出。
TASK [octavia : include_tasks] ************************************************************************************
included: /root/venv/kolla/share/kolla-ansible/ansible/roles/octavia/tasks/bootstrap_service.yml for localhost
TASK [octavia : Running Octavia bootstrap container] **************************************************************
fatal: [localhost -> localhost]: FAILED! => {"changed": true, "msg": "Container exited with non-zero return code 1", "rc": 1, "stderr": "+ sudo -E kolla_set_configs\nINFO:__main__:Loading config file at /var/lib/kolla/config_files/config.json\nINFO:__main__:Validating config file\nINFO:__main__:Kolla ....
.....
raise_mysql_exception\n2020-04-27 05:42:38.221 14 ERROR octavia-db-manage raise errorclass(errno, errval)\n2020-04-27 05:42:38.221 14 ERROR octavia-db-manage OperationalError: (pymysql.err.OperationalError) (1045, u\"Access denied for user 'octavia'@'kolla.pdsea.f5net.com' (using password: YES)\") (Background on this error at: http://sqlalche.me/e/e3q8)\n2020-04-27 05:42:38.221 14 ERROR octavia-db-manage \u001b[00m\n", "stdout_lines": ["2020-04-27 05:42:38.221 14 CRITICAL octavia-db-manage [-] Unhandled error: OperationalError:
....
"2020-04-27 06:39:29.446 13 ERROR octavia-db-manage OperationalError: (pymysql.err.OperationalError) (1045, u\"Access denied for user 'octavia'@'kolla.pdsea.f5net.com' (using password: YES)\") (Background on this error at: http://sqlalche.me/e/e3q8)",
"2020-04-27 06:39:29.446 13 ERROR octavia-db-manage \u001b[00m"
]
}
解决:
手动pull docker image: kolla-ansible pull.
奇怪的是我登录dockerhub,没有发现这四个docker image。
[root@kolla ~]# docker images| grep octavia
kolla/centos-source-octavia-api stein 838b0afb0fa0 18 hours ago 897MB
kolla/centos-source-octavia-housekeeping stein 9c82e759f2c6 18 hours ago 835MB
kolla/centos-source-octavia-worker stein e9b57845d6b5 18 hours ago 835MB
kolla/centos-source-octavia-health-manager stein d0c49699d0ff 18 hours ago 835MB
之上的错误很可能 是我执行的是kolla-ansible upgrade,而不是kolla-ansible deploy
问题:debootstrap: command not found
生成amphora image的时候 diskimage_create.sh命令执行失败。
2020-04-28 02:38:12.477 | /tmp/dib_build.VhHboWib/hooks/root.d/08-debootstrap: line 39: debootstrap: command not found
yum install debootstrap
问题: 创建lb失败,因为amphora虚机连接不到controller
openstack image create --container-format bare --disk-format qcow2 --private --file /root/octavia/diskimage-create/amphora-x64-haproxy.qcow2 --tag amphora amphora
openstack loadbalancer create --vip-network-id 8381dc8d-2122-4379-821f-b706564e580e
等待许久后会失败,因为网络问题amphora 虚机中无法连接到controller 节点 10.145.64.104:5555
问题:Could not find or access '/etc/kolla/config/octavia/cakey.pem'
TASK [octavia : Copying certificate files for octavia-worker] ******************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: If you are using a module and expect the file to exist on the remote, see the remote_src option
failed: [localhost] (item=cakey.pem) => {"ansible_loop_var": "item", "changed": false, "item": "cakey.pem", "msg": "Could not find or access '/etc/kolla/config/octavia/cakey.pem' on the Ansible Controller.\nIf you are using a module and expect the file to exist on the remote, see the remote_src option"}
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: If you are using a module and expect the file to exist on the remote, see the remote_src option
failed: [localhost] (item=ca_01.pem) => {"ansible_loop_var": "item", "changed": false, "item": "ca_01.pem", "msg": "Could not find or access '/etc/kolla/config/octavia/ca_01.pem' on the Ansible Controller.\nIf you are using a module and expect the file to exist on the remote, see the remote_src option"}
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: If you are using a module and expect the file to exist on the remote, see the remote_src option
failed: [localhost] (item=client.pem) => {"ansible_loop_var": "item", "changed": false, "item": "client.pem", "msg": "Could not find or access '/etc/kolla/config/octavia/client.pem' on the Ansible Controller.\nIf you are using a module and expect the file to exist on the remote, see the remote_src option"}
问题:The request you have made requires authentication. (HTTP 401)
无法完成loadbalancer的部署
The request you have made requires authentication. (HTTP 401) (Request-ID: req-552f5d1b-1f85-42a8-a60f-a922fb5fcc19) (HTTP 500) (Request-ID: req-3ed62325-153f-4857-8ce6-7f8b1063c6df)
需要添加权限:
openstack role add --project admin --user octavia admin
将octavia用户添加到admin 项目中,从这里也可以看出 创建负载均衡器(虚机 网络)操作是用的octavia?
问题:horizon 出现错误,部分页面无法显示
在firefox或者chrome 的页面调试中可以看到
Uncaught Error: [$injector:modulerr] Failed to instantiate module horizon.app due to:
Error: [$injector:nomod] Module 'horizon.app' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
。。。。。
horizon的代码位置 进入到horizon container中,查看/etc/httpd/conf.d/horizon.conf
但是实在没有时间去搞这些个破问题,简单粗暴一点搞定:
# docker rm --force horizon
# docker rmi kolla/centos-source-horizon:stein
然后重新:
kolla-ansible bootstrap-servers
kolla-ansible prechecks
kolla-ansible deploy
kolla-ansible post-deploy
稍等horizon运行3-4分钟后,重新访问UI,OK了。
kolla搭建octavia相关推荐
- 仿微信悬浮窗的关键技术点
下面的技术点已应用到实际项目中 1.如何显示悬浮窗 推荐一个开源库:https://github.com/princekin-f/EasyFloat 通过上面的开源库 悬浮窗已经可以显示了 但是下面确 ...
- OpenStack Kolla-Ansible部署Octavia负载均衡服务
书接上回 OpenStack Kolla-Ansible部署Swift文件存储 对接Ceph RadosGW,Proxmox 本章我们继续来完成OpenStack示例配置组件之Container Op ...
- charm zaza functional test (by quqi99)
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (作者:张华 发表于:2021-07-08) 问题 这篇文档(https://zaza.readthedocs. ...
- OpenStack实践(一):Ubuntu16.04下DevStack方式搭建p版OpenStack
OpenStack部署方式很多,常见的个人部署方式有DevStack.Rdo.all-in-one.multi-node.multi-HA-node等:企业部署方式有Ansible.SaltStack ...
- 基于openstack搭建百万级并发负载均衡器的解决方案
最近,喜欢研究一些国外技术大咖们的文章,而这篇文章是基于openstack负载均衡器的解决方案,做的一些总结~希望能够给小伙伴带来一些灵感或者帮助. openstack现有的负载均衡解决方案,无论是l ...
- 小试牛刀之Kolla单节点部署
写在前面的话,笔者目的是为了尝试用Kolla来方便快捷的部署OpenStack,为以后多节点部署打下基础. Kola简介: kolla项目起源于TripleO项目,聚焦于使用Docker容器部署Ope ...
- OpenStack搭建过程(随笔搭建)
项目二 理论知识 1.项目需求分析 1.基本概念 需求分析是指理解用户需求,就用户的功能需求与客户达成一致,并需要估计项目风险和评估项目代价,最终形成开发计划的一个复杂过程.在这个过程中,用户是处在主 ...
- 干货 | 手把手教你搭建一套OpenStack云平台
1 前言 今天我们为一位朋友搭建一套OpenStack云平台. 我们使用Kolla部署stein版本的OpenStack云平台. kolla是用于自动化部署OpenStack的一个项目,它基于dock ...
- Use Octavia to Implement HTTPS Health Monitors (by quqi99)
几张图感性认识ocatvia 问题 采用Neutron LBaaS v2实现HTTPS Health Monitors时的配置如下(步骤见附件 - Neutron LBaaS v2) backend ...
最新文章
- ABAP:SUBMIT执行其他报表并返回的数据
- 18.HMM隐马尔可夫模型
- Oracle表和表数据恢复
- Spring Session源码解析
- java class isassignablefrom_Java之——Class的isAssignableFrom方法
- linux 运行段错误,在linux下代码运行出现段错误,求大神
- 一个队列类的实现(比delphi自带的速度快70倍)
- 关于微信隐藏分享按钮的心得
- Rulo扫地机器人app_扫地机器人扫不干净 为什么我还推荐大家买?
- 手把手教你一整套R语言数据分析+建模流程
- 宋佳乐和郭晓婷天津之眼观景照片
- 迪杰斯特拉算法(Java)
- 12306网站火车票抢票详细攻略(gohome抢票程序)
- Nginx解决history模式下页面刷新404
- HTML5中国象棋游戏源代码
- 原创 | SpringBoot版本竟然引发这种问题,让我吐血三升!
- CAD 查找指定部件数量
- CATIA无法连接到服务器解决方案
- openbmc-web3:添加语言
- PyTorch学习系列教程:构建一个深度学习模型需要哪几步?