Zstack在ARM机器上的安装

环境

Kunpeng 920服务器,cpu架构是aarch64(arm)。

安装

  1. zstack下载地址找到对应系统的镜像,我这里是鲲鹏920的,cpu架构是aarch64的,因此选择4.8.24版本的ky10sp3 aarch64 iso

  2. 然后通过Rufus(windows)或balenaetcher(Mac)烧录上面下载的镜像到u盘。

  3. 服务器启动时,按[.]键进入biso,开启CPU VT和超线程HT选项(该cpu没找到该配置),设置电源策略为性能模式(非节能模式)

  4. 插入u盘到服务器上,重启按F2进入系统盘选择,需要输入密码,密码在服务器标签上,选择U盘启动。

  5. 选择zstack安装

  6. 在安装界面,配置自动定义分区,分区信息如下,可以删除自动分区的信息,新建下面分区

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 只有一个磁盘的情况:
    /boot/efi 1024MiB
    /boot 1024MiB
    /. 65.5TiB #剩余所有空间
    # 安装好之后磁盘的输出信息如下
    [root@exxk ~]# lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda 8:0 0 65.5T 0 disk
    ├─sda1 8:1 0 1G 0 part /boot/efi
    ├─sda2 8:2 0 1G 0 part /boot
    └─sda3 8:3 0 65.5T 0 part
    └─zstack-root 252:0 0 65.5T 0 lvm /
  7. 在安装界面,关闭网卡,设置hostname。(这里其实可以界面添加bond0,但是不添加,后面在命令行添加)

  8. 在安装界面,选择计算节点安装模式。(不选择安装管理节点,后面通过命令进行升级管理节点)

  9. 在安装界面,设置root密码,然后点击安装即可。

  10. 安装完等待重启成功,拔掉u盘

  11. 输入密码,登录进系统,配置bond,具体命令如下:

    1
    2
    3
    4
    5
    6
    7
    #创建bond0
    zs-bond-ab -c bond0
    # zs-nic-to-bond -a bond0 [网卡名] #将插入网线的网卡添加至bond0
    zs-nic-to-bond -a bond0 enp125s0f0
    zs-vlan-c bond0 10
    #zs-network-setting -b bond0.10 [ip] [掩码] [网关] #创建网桥br_bond0指定网络IP、掩码和网关
    zs-network-setting -b bond0.10 192.168.10.254 55.255.255.0 192.168.10.1
  12. 检查网络是否正常,是否能ping同网关等,局域网是否能通过ssh连接到服务器,如果不能,检查交换机配置是否正常,交换机需设置trunk类型,出入目标端口是否设置正确等。相关命令参考:port trunk permit vlan 10

  13. 然后执行bash /opt/zstack-installer.bin -E安装升级为管理节点。

  14. 因为cpu是amd的,没有免费许可证,免费许可证只支持一个x86的物理计算机,因此需要先申请证书,然后在右上角我的头像->许可证管理->下载请求码根据请求码去申请证书,然后在该页面点击上次许可证

  15. 然后根据引导,依次创建区域、集群、添加物理机、添加镜像服务器、添加主存储、创建计算规格、添加镜像、创建二层网络、创建三层网络。

nginx代理配置https域名访问

  1. 运营管理->访问控制->控制台代理界面点击设置控制台代理地址可以修改为域名zstack.exxkspace.cn和zstack访问平台设置一致,端口可以改可以不该,但是端口一定要和nginx配置的端口一致。

  2. nginx部署配置文件,采用docker-compose部署,配置如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    services:
    nginx:
    container_name: nginx
    image: nginx:latest
    restart: always
    network_mode: bridge
    ports:
    - '80:80'
    - '443:443'
    - '4900:4900' #这句很关键,要和控制台配置结合用
    volumes:
    - /etc/localtime:/etc/localtime
    - ./nginx:/etc/nginx
  3. zstack的nginx域名关键配置部分

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name zstack.exxkspace.cn; #zstack的代理地址

    ssl_certificate certs/exxkspace.cn.crt;
    ssl_certificate_key certs/exxkspace.cn.key.nopass;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 3600s;
    ssl_session_tickets off;

    location / {
    include conf.d/proxy.default;
    proxy_pass http://192.168.10.254:5000;
    }

    # web控制台用443
    location /websockify {
    proxy_pass http://192.168.10.254:443; #这里的端口也要和控制台的端口配合使用
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_set_header Host $host;
    proxy_read_timeout 86400;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /usr/share/nginx/html;
    }
    }

    # web控制台用4900
    server {
    listen 4900 ssl;
    server_name zstack.exxkspace.cn; #控制台设置的域名地址

    ssl_certificate certs/exxkspace.cn.crt;
    ssl_certificate_key certs/exxkspace.cn.key.nopass;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 3600s;
    ssl_session_tickets off;

    location / {
    proxy_pass http://192.168.10.254:4900; #这里的端口也要和控制台的端口配合使用
    include conf.d/proxy.default;
    }
    }

参考:

ZStack Cloud用户手册