一、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组件
1、创建数据库和授权
[root@controller ~]# mysql -uroot -p"Aa123456" 2>/dev/null -e "create database skyline;"
[root@controller ~]# mysql -uroot -p"Aa123456" 2>/dev/null -e "grant all privileges on skyline.* to 'skyline'@'localhost' identified by 'Skyline1234';"
[root@controller ~]# mysql -uroot -p"Aa123456" 2>/dev/null -e "grant all privileges on skyline.* to 'skyline'@'%' identified by 'Skyline1234';"
[root@controller ~]# mysql -uroot -p"Aa123456" 2>/dev/null -e "flush privileges;"
2、在Keystone上面注册skyline服务,创建账户skyline,密码Aa123456
[root@controller ~]# openstack user create --domain default --password Aa123456 skyline
3、添加skyline用户至service项目并配置为admin角色
[root@controller ~]# openstack role add --project service --user skyline admin
4、安装Docker-Ce
[root@controller ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
[root@controller ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@controller ~]# yum -y install docker-ce docker-ce-cli containerd.io
[root@controller ~]# systemctl enable docker
[root@controller ~]# systemctl start docker
5、安装Prometheus
# 创建Prometheus工作目录
[root@controller ~]# mkdir -p /data/prometheus/{data,config,rules}
[root@controller ~]# chmod 777 /data/prometheus/data
[root@controller ~]# vim /data/prometheus/config/prometheus.yml
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
alertmanagers:
- static_configs:
- targets:
- "192.168.10.170:9093"
rule_files:
- 'rules/*.yml'
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets:
- "192.168.10.170:9090"
labels:
app: "prometheus"
- job_name: "node-exporter"
static_configs:
- targets:
- "192.168.10.170:9100"
- job_name: "openstack-exporter"
scrape_interval: 30s
static_configs:
- targets:
- "192.168.10.170:9180"
# 运行Prometheus容器
[root@controller ~]# docker run -d \
--name prometheus \
-p 9090:9090 \
-v /data/prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /data/prometheus/data:/prometheus \
-v /data/prometheus/rules:/etc/prometheus/rules \
--restart=unless-stopped \
quay.io/prometheus/prometheus:v3.5.0 \
--web.enable-lifecycle \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/prometheus \
--storage.tsdb.retention.time=15d
6、安装Node Exporter
[root@controller ~]# docker run -d \
--name node-exporter \
-p 9100:9100 \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /:/rootfs:ro \
--restart=unless-stopped \
quay.io/prometheus/node-exporter:v1.9.1 \
--path.procfs=/host/proc \
--path.rootfs=/rootfs \
--path.sysfs=/host/sys \
--collector.filesystem.mount-points-exclude='^/(sys|proc|dev|host|etc)($$|/)'
7、安装OpenStack Exporter
# 创建OpenStack Exporter配置文件
[root@controller ~]# mkdir -p /etc/openstack
[root@controller ~]# vim /etc/openstack/clouds.yaml
clouds:
default:
region_name: RegionOne
interface: public
identity_api_version: 3
auth:
auth_url: http://controller:5000/v3
username: admin
password: admin
project_name: admin
user_domain_name: 'Default'
project_domain_name: 'Default'
verify: true
# 运行OpenStack Exporter容器
[root@controller ~]# docker run -d \
--name openstack-exporter \
-p 9180:9180 \
-v /etc/openstack/clouds.yaml:/etc/openstack/clouds.yaml \
--add-host controller:192.168.10.170 \
--restart=unless-stopped \
ghcr.io/openstack-exporter/openstack-exporter:1.7.0 \
--prefix="openstack" \
--endpoint-type="public" \
default
8、安装Skyline
# 创建Skyline工作目录
[root@controller ~]# mkdir -p /etc/skyline /var/log/skyline
# 创建Skyline配置文件
[root@controller ~]# vim /etc/skyline/skyline.yaml
default:
access_log_file: skyline-nginx-access.log
access_token_expire: 3600
access_token_renew: 1800
cafile: ''
cors_allow_origins: []
database_url: mysql+pymysql://skyline:Skyline1234@192.168.10.170:3306/skyline
debug: false
error_log_file: skyline-nginx-error.log
log_dir: /var/log/skyline
log_file: skyline.log
policy_file_path: /etc/skyline/policy
policy_file_suffix: policy.yaml
prometheus_basic_auth_password: ''
prometheus_basic_auth_user: ''
prometheus_enable_basic_auth: false
prometheus_endpoint: http://192.168.10.170:9090
secret_key: DUA7pFRjcV6uBgQ8X6ca3CNSZyKT7JaS7JYX6XMF
session_name: session
ssl_enabled: false
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_url: http://192.168.10.170:5000/v3/
nginx_prefix: /api/openstack
reclaim_instance_interval: 604800
service_mapping:
baremetal: ironic
block-storage: cinder
compute: nova
container: zun
container-infra: magnum
database: trove
dns: designate
identity: keystone
image: glance
instance-ha: masakari
key-manager: barbican
load-balancer: octavia
network: neutron
object-store: swift
orchestration: heat
placement: placement
sharev2: manilav2
sso_enabled: false
sso_protocols:
- openid
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
system_user_password: 'Aa123456'
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
# 运行skyline-bootstrap容器
[root@controller ~]# docker run -d \
--name skyline-bootstrap \
-e KOLLA_BOOTSTRAP="" \
-v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml \
-v /var/log/skyline:/var/log/skyline \
--net=host \
99cloud/skyline:latest
# 查看容器内部日志
[root@controller ~]# docker logs skyline-bootstrap
# 查看数据库是否生成文件,一共3张表
[root@controller ~]# mysql -uskyline -pSkyline1234 2>/dev/null -e "use skyline;;show tables;"
注意:该容器的作用是生成Skyline服务的数据库的表结构,经查询,生成了alembic_version、revoked_token、settings三张表结构,查询结果如上图所示。
# 结构创建成功后,删除数据库初始化引导容器skyline_bootstrap
[root@controller ~]# docker rm skyline-bootstrap
skyline-bootstrap
# 运行skyline容器
[root@controller ~]# docker run -d \
--name skyline \
--net=host \
--restart=unless-stopped \
-v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml \
-v /var/log/skyline:/var/log/skyline \
99cloud/skyline:latest
9、访问Skyline
# 浏览器访问http://192.168.10.170:9999,如下图所示
# 输入账号密码
# 登录成功界面
# 切换中文
# 管理后台界面
10、访问Prometheus
# 浏览器访问http://192.168.10.170:9090,如下图所示
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!


评论