目录
Skyline介绍
Skyline是新一代的OpenStack管理界面,由九州云于2021年9月捐献给OpenStack社区。同年12月末,Skyline孵化完成,成为OpenStack正式项目。2022年,Skyline开发团队完成了OpenStack的代码重构,并增加了对Octavia、Manila、Swift、Barbican、Zun、Trove等社区模块的支持。Skyline团队也通过企业微信群与社区开发者、社区用户进行了很多轮的互动讨论。2022年10月5日,Skyline第一个正式版本随OpenStack Yoga正式发布。Skyline不仅提供了OpenStack基础服务(如计算、存储、网络的操作界面),也支持许多增值服务(如文件存储、对象存储、负载均衡、数据库等服务)。一旦完成部署,Skyline不依赖任何插件就能迅速调用各种云服务接口,满足企业级的生产需求。云上的虚拟机、容器、K8s集群、RDS(Relational Database Service,关系数据库服务)数据库、负载均衡等各种资源,都能在Skyline的平台上完成全生命周期管理。
Skyline搭建
我们已经在openEuler22.09系统上使用kolla-ansible搭建好OpenStack平台了,如果未搭建完成可以进行搭建,参考文章openEuler22.03系统使用Kolla-ansible搭建OpenStack-CSDN博客进行搭建。
1.创建数据库
查询数据库密码并登陆数据库容器:
[root@controller kolla]# grep ^database /etc/kolla/passwords.yml
database_password: TahLFdeAHLRa4m4LLkHD9QxHgl1vv7ig5Oxv1I9z
[root@controller kolla]# docker exec -it mariadb bash
(mariadb)[mysql@controller /]$ mysql -uroot -pTahLFdeAHLRa4m4LLkHD9QxHgl1vv7ig5Oxv1I9z
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10949
Server version: 10.11.10-MariaDB-log MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
进入mariadb的数据库,在MariaDB容器中创建Skyline服务的数据库并赋予远程访问权限
MariaDB [(none)]> CREATE DATABASE skyline DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.008 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'localhost' IDENTIFIED BY 'mariadb_yoga';
Query OK, 0 rows affected (0.004 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'%' IDENTIFIED BY 'mariadb_yoga';
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.005 sec)
MariaDB [(none)]> exit
Bye
2.创建skyline账户
创建skyline账户并赋予admin权限
[root@controller ~]# openstack user create --domain default --password hzy123 skyline
[root@controller ~]# openstack role add --project service --user skyline admin
检查skyline账户是否创建成功。
3 修改Skyline服务配置文件
创建Skyline服务需要的配置文件目录和日志文件目录。
[root@controller ~]# mkdir -p /etc/skyline /var/log/skyline /var/lib/skyline \
/var/log/nginx
查询keystone内部服务端点地址
[root@controller ~]# openstack endpoint list --interface internal \
--service keystone -f value -c URL
http://192.168.200.10:5000
编写配置文件:
[root@controller ~]# vi /etc/skyline/skyline.yaml
default:
access_token_expire: 3600
access_token_renew: 1800
cors_allow_origins: []
# MySQL连接地址及密码
database_url: mysql://skyline:mariadb_yoga@192.168.200.10:3306/skyline
debug: false
log_dir: /var/log/skyline
log_file: skyline_wxic.log
prometheus_basic_auth_password: 'hzy123'
prometheus_basic_auth_user: ''
prometheus_enable_basic_auth: false
prometheus_endpoint: http://192.168.200.10:9091
secret_key: nVvPJIqQLsU4dab4C8dpipFVxJsax1JvzKVJmNxH
session_name: session
ssl_enabled: true
openstack:
base_domains:
- heat_user_domain
# 修改默认区域
default_region: RegionOne
enforce_new_defaults: true
extension_mapping:
floating-ip-port-forwarding: neutron_port_forwarding
fwaas_v2: neutron_firewall
qos: neutron_qos
vpnaas: neutron_vpn
interface_type: public
# keystone认证地址
keystone_url: http://192.168.200.10:5000/v3/
nginx_prefix: /api/openstack
reclaim_instance_interval: 604800
service_mapping:
baremetal: ironic
compute: nova
container: zun
container-infra: magnum
database: trove
identity: keystone
image: glance
key-manager: barbican
load-balancer: octavia
network: neutron
object-store: swift
orchestration: heat
placement: placement
sharev2: manilav2
volumev3: cinder
sso_enabled: false
sso_protocols:
- openid
# 修改region名
sso_region: RegionOne
system_admin_roles:
- admin
- system_admin
system_project: service
system_project_domain: Default
system_reader_roles:
- system_reader
system_user_domain: Default
system_user_name: skyline
#skyline用户密码
system_user_password: 'hzy123'
setting:
base_settings:
- flavor_families
- gpu_models
- usb_models
flavor_families:
- architecture: x86_architecture
categories:
- name: general_purpose
properties: []
- name: compute_optimized
properties: []
- name: memory_optimized
properties: []
- name: high_clock_speed
properties: []
- architecture: heterogeneous_computing
categories:
- name: compute_optimized_type_with_gpu
properties: []
- name: visualization_compute_optimized_type_with_gpu
properties: []
gpu_models:
- nvidia_t4
usb_models:
- usb_c
4 运行skyline
运行初始化引导容器生成数据库Skyline的表结构,并查看日志以验证数据库是否正常连接和表结构的创建。
[root@controller ~]# docker run -d --name skyline_bootstrap \
-e KOLLA_BOOTSTRAP="" \
-v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml \
-v /var/log:/var/log \
--net=host 99cloud/skyline:latest
该容器的作用是生成Skyline服务的数据库的表结构,经查询,生成了alembic_version、revoked_token、settings三张表结构,查询结果如下所示。
结构创建成功后,删除数据库初始化引导容器skyline_bootstrap
[root@controller ~]# docker rm -f skyline_bootstrap
skyline_bootstrap
运行skyline-apiserver服务容器skyline,设置重启策略为always,并挂载配置文件和日志目录的数据卷,将容器的网络连接设置为主机的网络。
[root@controller ~]# docker run -d --name skyline --restart=always \
-v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml \
-v /var/log:/var/log \
-e LISTEN_ADDRESS=192.168.200.10:9942 \
--net=host 99cloud/skyline:latest
查看容器运行日志:
Skyline服务组件安装结束,在浏览器访问http://192.168.200.10:9942地址:
至此,OpenStack对接skyline完成。
5.问题排查
Skyline平台搭建完成但无法登入:
浏览器访问网址可以访问但无法登陆成功,使用Docker搭建完Skyline平台后,在登录页面输入正确的账户名和密码,但无法进入平台内部进行访问,检查容器的日志:
过程排查:
查询neutron容器日志发现:原因在于neutron缺少相应的组件并未加载。
通过更改neutron的配置文件并重启neutron相应的容器,问题得以解决,登录成功。