前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kolla部署openstack(stein)部署

kolla部署openstack(stein)部署

作者头像
cuijianzhe
发布2023-07-24 19:37:07
5030
发布2023-07-24 19:37:07
举报
文章被收录于专栏:cuijianzhecuijianzhe

allinone

date: '2019-10-27 18:27:11'

updated: '2019-10-31 20:23:10'

tags: openstack, Linux

permalink: /articles/2019/10/27/1572172031071.html

前期准备

基本配置

扩展源

代码语言:javascript
复制
yum install epel-release -y

hostname

代码语言:javascript
复制
[root@kolla ~]# cat /etc/hostname 
kolla
[root@kolla ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.51.208  kolla.cn kolla

时间同步

代码语言:javascript
复制
yum install ntp -y && systemctl enable ntpd.service && systemctl start ntpd.service

配置 pip 源参考这里

代码语言:javascript
复制
mkdir ~/.pip
vim ~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

配置网卡信息

物理机,两张网卡,一张是管理网卡,另一张是桥接网卡(外网网卡);

IP 地址

网卡类型

网卡

在 openstack 网络中的作用

192.168.51.208

bridge

enp61s0f0

openstack 内部管理网络 (managment nework) 以后 Horizon Web 界面访问,就是通过这个 IP 地址

无 IP(不配置 ip)

bridge

enp61s0f3

外部网络 (external network) ,让 neutron 的 br-ex 绑定使用,openstack 中的虚拟机是通过这块网卡和外网通信的

enp61s0f3 中的配置

代码语言:javascript
复制
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp61s0f3
UUID=1abc4bd5-0df3-483e-9110-55f905c4d428
DEVICE=enp61s0f3
ONBOOT=yes

安装基础包和 docker 服务

安装基础包
代码语言:javascript
复制
yum install python-devel libffi-devel gcc openssl-devel git python-pip -y
pip install -U pip
yum install -y yum-utils device-mapper-persistent-data lvm2
添加 docker yum 源并安装 docker
代码语言:javascript
复制
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg #导入rpm包密钥,检查后期在线安装的rpm是否安全

安装 docker 社区版本

代码语言:javascript
复制
yum -y install docker-ce
systemctl start docker && systemctl enable docker && systemctl status docker

设置 docker volume 卷挂载方式

代码语言:javascript
复制
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF

注:加上 MountFlags=shared 后,当 docker 宿主机新增分区时,docker 服务不用重启。添加这个参考后,后期在 openstack 中使用 cinder 存储服务时,新加磁盘比较方便。

镜像加速器设置

在此我建议部署 stein 版本镜像加速器选择 daocloud,阿里、网易等加速器可能会出现 pull docker 出现问题。

代码语言:javascript
复制
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io  

重启相关服务

代码语言:javascript
复制
systemctl daemon-reload
systemctl restart docker && systemctl status docker

安装 kolla-ansible

安装 ansible

代码语言:javascript
复制
yum install ansible -y
pip install kolla-ansible 

报错:已经安装 PyYAML 3.10,但是我们需要 PyYAML

解决:

代码语言:javascript
复制
pip install PyYAML --ignore-installed PyYAML
  • 复制 kolla-ansible 的相关配置文件
代码语言:javascript
复制
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
cp /usr/share/kolla-ansible/ansible/inventory/* /etc/kolla/
  • 另外安装 stein 后期会遇到 pip 包找不到的问题,在此先安装 报错信息:ImportError: cannot import name decorate 解决:
代码语言:javascript
复制
pip install -U decorator
pip install --upgrade decorate

自定义安装 kolla-ansible 安装 openstack 的相关配置文件

自动生成 openstack 各服务的密码文件

代码语言:javascript
复制
kolla-genpwd

修改/etc/kolla/passwords.yml

代码语言:javascript
复制
 keystone_admin_password: 598941324

注:这是登录 Dashboard,admin 使用的密码,你可以根据自己需要自行修改。

编辑/etc/kolla/globals.yml 文件

代码语言:javascript
复制
kolla_base_distro: "centos"
kolla_install_type: "binary" 
openstack_release: "stein"
kolla_internal_vip_address: "192.168.51.208"
network_interface: "enp61s0f0"
neutron_external_interface: "enp61s0f3"
enable_haproxy: "no"

  • kolla_install_type: "binary" :使用 yum 安装二进制包安装,源码安装,指的是使用 Git clone 源码安装
  • openstack_release: "stein":指定安装 stein 版本的 openstack,后期下载的 openstack 相关的 docker 镜像的 tag 标记也都为 stein
  • node_custom_config: "/etc/kolla/config":配置文件的位置
  • kolla_internal_vip_address: "192.168.51.208":没有启用高可用,所以这里的 IP 可以和 enp61s0f0 一样,也可以独立写一个和 enp61s0f3 同网段的 IP。这一项的作用是:指定 openstack 内部管理地址,以后就通过这个 IP 地址访问 openstack Web 界面,管理私云。 注:如果配置了高可用,这里要使用一个没被占用的 IP。这个 IP 是搭建 HA 高可用的浮动 IP。 此 IP 将由 keepalived 管理以提供高可用性,应设置为和 network_interface enp61s0f3 同一个网段的地址。
  • network_interface: "enp61s0f0":Kolla-Ansible 需要设置一些网络选项。 我们需要设置 OpenStack 使用的网络接口。设置的第一个接口是“network_interface”。 这是 openstack 内部多个管理类型网络的默认接口
  • neutron_external_interface: "enp61s0f3":所需的第二个接口与用亍 Neutron 外部(或公共)网络,可以是 vlan 戒 flat,取决于网络的创建方式。 此接口应在没有 IP 地址的情况下处于活动,如果不是,openstack 于平台中的于主机实例将无法访问外部网络。 只要网卡启劢着,就可以了,不要给 IP,有 IP 时 br-ex 桥接就不成功了。
  • enable_cinder: "no":先不开启 cinder
  • enable_haproxy: "no":关闭高可用

开始基于 kolla-ansible 安装 openstack 私有云

生成 ssh-key,并授信本节点:

代码语言:javascript
复制
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub root@kolla

配置单节点清单文件

代码语言:javascript
复制
[root@kolla ~]# vim /etc/kolla/all-in-one 
# These initial groups are the only groups required to be modified. The
# additional groups are for more control of the environment.
[control]
kolla

[network]
kolla

[compute]
kolla

[storage]
kolla

[monitoring]
kolla

[deployment]
kolla

开始部署 openstack

对主机进行预检查

代码语言:javascript
复制
kolla-ansible -i /etc/kolla/all-in-one prechecks

拉取镜像

代码语言:javascript
复制
kolla-ansible -i /etc/kolla/all-in-one pull
[root@kolla ~]# docker images | wc -l 
32

大概会下载 32 个镜像文件

最后进入实际的 OpenStack 部署:

代码语言:javascript
复制
kolla-ansible -i /etc/kolla/all-in-one deploy

部署完成后验证部署

代码语言:javascript
复制
kolla-ansible -i /etc/kolla/all-in-one post-deploy

这样就创建 /etc/kolla/admin-openrc.sh 文件

代码语言:javascript
复制
[root@kolla ~]# cat /etc/kolla/admin-openrc.sh 
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=598941324
export OS_AUTH_URL=http://192.168.51.208:35357/v3
export OS_INTERFACE=internal
export OS_IDENTITY_API_VERSION=3
export OS_REGION_NAME=RegionOne
export OS_AUTH_PLUGIN=password

部署完成

访问 192.168.51.208 即可进去 openstack 页面

openstack-allinone 使用方法

安装 openstack 客户端并创建一个云主机

安装 OpenStack client 端,方便后期使用命令行操作 openstack

代码语言:javascript
复制
pip install python-openstackclient

报错:ERROR: Package 'more-itertools' requires a different Python: 2.7.5 not in '>=3.4'

解决:

代码语言:javascript
复制
pip install more-itertools==5.0.0
pip install python-openstackclient

再次安装。

代码语言:javascript
复制
 pip install python-neutronclient

安装 openstack 网络相关的命令

创建一个云项目

修改 init-runonce 脚本,指定浮动 IP 地址范围

init-runonce 是在 openstack 中快速创建一个云项目例子的脚本。浮劢 IP 就是云主机的公网 IP。

  • 修改如下配置
代码语言:javascript
复制
vim /usr/share/kolla-ansible/init-runonce
EXT_NET_CIDR='192.168.50.0/24'
EXT_NET_RANGE='start=192.168.50.150,end=192.168.50.199'
EXT_NET_GATEWAY='192.168.50.1'

使用 init-runonce 脚本创建一个 openstack 云项目

代码语言:javascript
复制
source /etc/kolla/admin-openrc.sh
cd /usr/share/kolla-ansible
./init-runonce

运行完毕之后出现如下:

代码语言:javascript
复制
To deploy a demo instance, run:

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

运行即可安装

代码语言:javascript
复制
[root@kolla kolla-ansible]# openstack server create \
>     --image cirros \
>     --flavor m1.tiny \
>     --key-name mykey \
>     --network demo-net \
>     demo1

+-------------------------------------+-----------------------------------------------+
| Field                               | Value                                         |
+-------------------------------------+-----------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                        |
| OS-EXT-AZ:availability_zone         |                                               |
| OS-EXT-SRV-ATTR:host                | None                                          |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None                                          |
| OS-EXT-SRV-ATTR:instance_name       |                                               |
| OS-EXT-STS:power_state              | NOSTATE                                       |
| OS-EXT-STS:task_state               | scheduling                                    |
| OS-EXT-STS:vm_state                 | building                                      |
| OS-SRV-USG:launched_at              | None                                          |
| OS-SRV-USG:terminated_at            | None                                          |
| accessIPv4                          |                                               |
| accessIPv6                          |                                               |
| addresses                           |                                               |
| adminPass                           | 7MxdJvxUhSop                                  |
| config_drive                        |                                               |
| created                             | 2019-10-27T02:49:06Z                          |
| flavor                              | m1.tiny (1)                                   |
| hostId                              |                                               |
| id                                  | 43d6a986-3f92-4cdd-a21c-22ad7dcb4c3a          |
| image                               | cirros (c912e610-4038-4a7f-8eea-670b44ac197b) |
| key_name                            | mykey                                         |
| name                                | demo1                                         |
| progress                            | 0                                             |
| project_id                          | 8370a6827e874b768c4f9778068cb4bc              |
| properties                          |                                               |
| security_groups                     | name='default'                                |
| status                              | BUILD                                         |
| updated                             | 2019-10-27T02:49:06Z                          |
| user_id                             | 7b5055a3536c415ca67f4a97752b3b5a              |
| volumes_attached                    |                                               |
+-------------------------------------+-----------------------------------------------+

此时即可在 Web 上看到已创建的云主机


标题:kolla部署openstack(stein)部署

作者:cuijianzhe

地址:https://cloud.tencent.com/developer/article/2304676

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • allinone
  • 前期准备
    • 基本配置
      • 扩展源
      • hostname
      • 时间同步
      • 配置 pip 源参考这里
      • 配置网卡信息
      • 安装基础包和 docker 服务
  • 安装 kolla-ansible
    • 安装 ansible
    • 自定义安装 kolla-ansible 安装 openstack 的相关配置文件
      • 自动生成 openstack 各服务的密码文件
        • 编辑/etc/kolla/globals.yml 文件
        • 开始基于 kolla-ansible 安装 openstack 私有云
          • 生成 ssh-key,并授信本节点:
            • 配置单节点清单文件
              • 开始部署 openstack
                • 对主机进行预检查
                • 拉取镜像
              • 最后进入实际的 OpenStack 部署:
                • 部署完成
                • openstack-allinone 使用方法
                  • 安装 openstack 客户端并创建一个云主机
                    • 安装 OpenStack client 端,方便后期使用命令行操作 openstack
                  • 创建一个云项目
                    • 修改 init-runonce 脚本,指定浮动 IP 地址范围
                    • 使用 init-runonce 脚本创建一个 openstack 云项目
                    • 此时即可在 Web 上看到已创建的云主机
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档