安装和配置 Ubuntu 的计算节点

本节描述了如何在 Ubuntu 16.04 (LTS) 上安装和配置 Kuryr-libnetwork。

先决条件

本指南假定 Docker 已经安装。请参考 获取 Docker 以进行 Docker 安装。

安装和配置组件

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

    • 创建用户

      # groupadd --system kuryr
      # useradd --home-dir "/var/lib/kuryr" \
            --create-home \
            --system \
            --shell /bin/false \
            -g kuryr \
            kuryr
      
    • 创建目录

      # mkdir -p /etc/kuryr
      # chown kuryr:kuryr /etc/kuryr
      
  2. 克隆和安装 kuryr-libnetwork

    # apt-get install python3-pip
    # cd /var/lib/kuryr
    # git clone -b master https://opendev.org/openstack/kuryr-libnetwork.git
    # chown -R kuryr:kuryr kuryr-libnetwork
    # cd kuryr-libnetwork
    # pip3 install -r requirements.txt
    # python3 setup.py install
    
  3. 生成示例配置文件

    # su -s /bin/sh -c "./tools/generate_config_file_samples.sh" kuryr
    # su -s /bin/sh -c "cp etc/kuryr.conf.sample \
          /etc/kuryr/kuryr.conf" kuryr
    
  4. 编辑 /etc/kuryr/kuryr.conf

    • [DEFAULT] 部分,配置 Kuryr vif 绑定可执行文件的路径

      [DEFAULT]
      ...
      bindir = /usr/local/libexec/kuryr
      
    • [neutron] 部分,配置 Identity 服务访问

      [neutron]
      ...
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      username = kuryr
      user_domain_name = default
      password = KURYR_PASSWORD
      project_name = service
      project_domain_name = default
      auth_type = password
      

      将 KURYR_PASSWORD 替换为您在 Identity 服务中为 kuryr 用户选择的密码。

  5. 创建一个 upstart 配置文件,可以命名为 /etc/systemd/system/kuryr-libnetwork.service

    [Unit]
    Description = Kuryr-libnetwork - Docker network plugin for Neutron
    
    [Service]
    ExecStart = /usr/local/bin/kuryr-server --config-file /etc/kuryr/kuryr.conf
    CapabilityBoundingSet = CAP_NET_ADMIN
    AmbientCapabilities = CAP_NET_ADMIN
    
    [Install]
    WantedBy = multi-user.target
    

完成安装

  1. 启用并启动 kuryr-libnetwork 服务

    # systemctl enable kuryr-libnetwork
    # systemctl start kuryr-libnetwork
    
  2. Kuryr 启动后,请重启您的 Docker 服务

    # systemctl restart docker