Openstack Zun服务安装 - Compute

本节介绍如何在Ubuntu 16.04(LTS)的计算节点上安装和配置容器服务。

先决条件
在安装和配置Zun之前,必须在计算节点中正确安装Docker和Kuryr libnetwork。
请参阅获取Docker以了解Docker安装和Kuryr libnetwork安装指南

安装和配置组件

1.创建zun用户和必要的目录:

创建用户:

1
2
3
4
5
6
7
# groupadd --system zun
# useradd --home-dir "/var/lib/zun" \
--create-home \
--system \
--shell /bin/false \
-g zun \
zun

创建目录:

1
2
# mkdir -p /etc/zun
# chown zun:zun /etc/zun

2.克隆并安装zun:

1
2
3
4
5
6
# cd /var/lib/zun
# git clone -b stable/queens https://git.openstack.org/openstack/zun.git
# chown -R zun:zun zun
# cd zun
# pip install -r requirements.txt
# python setup.py install

3.生成示例配置文件:

1
2
3
4
5
6
7
8
9
# su -s /bin/sh -c "oslo-config-generator \
--config-file etc/zun/zun-config-generator.conf" zun
# su -s /bin/sh -c "cp etc/zun/zun.conf.sample \
/etc/zun/zun.conf" zun
# su -s /bin/sh -c "cp etc/zun/rootwrap.conf \
/etc/zun/rootwrap.conf" zun
# su -s /bin/sh -c "mkdir -p /etc/zun/rootwrap.d" zun
# su -s /bin/sh -c "cp etc/zun/rootwrap.d/* \
/etc/zun/rootwrap.d/" zun

4.为zun用户配置sudoers:

1
2
# echo "zun ALL=(root) NOPASSWD: /usr/local/bin/zun-rootwrap \
/etc/zun/rootwrap.conf *" | sudo tee /etc/sudoers.d/zun-rootwrap

5.编辑 /etc/zun/zun.conf:

  • 在 [DEFAULT] 部分中,配置RabbitMQ消息队列访问:

    1
    2
    3
    [DEFAULT]
    ...
    transport_url = rabbit://openstack:RABBIT_PASS@controller
  • 在 [DEFAULT] 部分,配置Zun用于存储状态的路径:

    1
    2
    3
    [DEFAULT]
    ...
    state_path = /var/lib/zun
  • 在 [database] 部分,配置数据库访问:

    1
    2
    3
    [database]
    ...
    connection = mysql+pymysql://zun:ZUN_DBPASS@controller/zun
  • 在 [keystone_auth] 部分中,配置标识服务访问:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [keystone_auth]
    memcached_servers = controller:11211
    www_authenticate_uri = http://controller:5000
    project_domain_name = default
    project_name = service
    user_domain_name = default
    password = ZUN_PASS
    username = zun
    auth_url = http://controller:5000
    auth_type = password
    auth_version = v3
    auth_protocol = http
    service_token_roles_required = True
    endpoint_type = internalURL
  • 在 [keystone_authtoken] 部分中,配置标识服务访问:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [keystone_authtoken]
    ...
    memcached_servers = controller:11211
    www_authenticate_uri= http://controller:5000
    project_domain_name = default
    project_name = service
    user_domain_name = default
    password = ZUN_PASS
    username = zun
    auth_url = http://controller:5000
    auth_type = password
  • 在 [websocket_proxy] 部分,配置websocket代理的URL。此URL必须与控制器节点中的websocket配置匹配:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [websocket_proxy]
    ...
    base_url = ws://controller:6784/

    .. note::

    This URL will be used by end users to access the console of their
    containers so make sure this URL is accessible from your intended
    users.
  • 在 [oslo_concurrency] 部分,配置锁路径:

    1
    2
    3
    [oslo_concurrency]
    ...
    lock_path = /var/lib/zun/tmp

    Note
    确保 /etc/zun/zun.conf 仍然具有正确的权限。您可以使用以下命令再次设置权限:

    1
    # chown zun:zun /etc/zun/zun.conf

6.配置Docker和Kuryr:

创建目录 /etc/systemd/system/docker.service.d

1
# mkdir -p /etc/systemd/system/docker.service.d

创建文件 /etc/systemd/system/docker.service.d/docker.conf。
配置docker以侦听端口2375以及默认unix套接字。另外,配置docker将etcd3用作存储后端:

1
2
3
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --group zun -H tcp://compute1:2375 -H unix:///var/run/docker.sock --cluster-store etcd://controller:2379
  • 重启Docker:

    1
    2
    # systemctl daemon-reload
    # systemctl restart docker
  • 编辑Kuryr配置文件/etc/kuryr/kuryr.conf。将capability_scope 设置为全局:

    1
    2
    3
    [DEFAULT]
    ...
    capability_scope = global

重启 Kuryr-libnetwork:

1
# systemctl restart kuryr-libnetwork

完成安装

1.创建一个upstart配置,命名为 /etc/systemd/system/zun-compute.service:

1
2
3
4
5
6
7
8
9
[Unit]
Description = OpenStack Container Service Compute Agent

[Service]
ExecStart = /usr/local/bin/zun-compute
User = zun

[Install]
WantedBy = multi-user.target

2.启用并启动zun compute:

1
2
# systemctl enable zun-compute
# systemctl start zun-compute

3.验证zun compute服务是否正在运行:

1
# systemctl status zun-compute

Openstack Zun服务安装 - Compute
http://maitianxin.github.io/2023/04/07/openstack/zun/openstack_zun_3/
作者
Matianxin
发布于
2023年4月7日
许可协议