openstack(queens)部署Zun服务

2023-05-16

zun安装手册

Zun是Openstack中提供容器管理服务的组件,本文使用的是centos7上的openstack(queens)环境

目录

zun安装手册

3. 在controller节点上安装zun服务

3.1 创建用户、组

3.2 创建目录

3.3 安装zun

3.4 生成示例配置文件

3.5 复制api-paste.ini配置文件

3.7 填充数据库

3.8 创建启动文件

3.9 启动服务

4 在compute节点上安装docker-ce

4.1 卸载旧版本的docker

4.2 安装依赖包

4.3 添加yum阿里源

4.4 更新yum源

4.5 安装docker-ce

4.6 启动docker-ce

4.7 添加内核配置参数

5 在controller节点上添加kuryr-libnetwork用户

5.1 创建kuryr用户

5.2 添加角色

6 在compute节点安装kuryr-libnetwork

6.1 创建用户

6.2 创建目录

6.3 安装kuryr-libnetwork

6.4 生成示例配置文件

6.5 编辑配置文件,添加以下内容

6.6 创建启动文件

6.7 启动服务

6.8 验证

7 在compute节点安装zun服务

7.1 创建用户

7.2 创建目录

7.3 安装zun

7.4 生成示例配置文件

7.5 配置zun用户

7.6 编辑配置文件,添加以下内容

7.7 配置docker和kuryr

7.8 创建启动文件

7.9 启动zun-compute

7.10 验证

8 在controller节点启动一个容器实例

9 安装zun-ui

9.1 下载zun源文件

9.2 复制文件

9.3 安装ui模块

9.4 重启服务


controller:192.168.152.101

compute:192.168.152.102

 

  1. 创建数据库

controller节点

# mysql –uroot –p000000

MariaDB [(none)] CREATE DATABASE zun;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON zun.* TO 'zun'@'localhost' IDENTIFIED BY 'ZUN_DBPASS';

MariaDB [(none)]> GRANT ALL PRIVILEGES ON zun.* TO 'zun'@'%' IDENTIFIED BY 'ZUN_DBPASS';

 

  1. 创建openstack用户、服务、端点

controller节点

# . admin-openrc

# openstack user create --domain default --password-prompt zun

# openstack role add --project service --user zun admin

openstack service create --name zun \

--description "Container Service" container

openstack endpoint create --region RegionOne container public http://controller:9517/v1

openstack endpoint create --region RegionOne container internal http://controller:9517/v1

openstack endpoint create --region RegionOne container admin http://controller:9517/v1

 

3. 在controller节点上安装zun服务

3.1 创建用户、组

# groupadd --system zun

# useradd --home-dir "/var/lib/zun" --create-home --system --shell /bin/false -g zun zun

3.2 创建目录

# mkdir -p /etc/zun

# chown zun:zun /etc/zun

3.3 安装zun

# yum install python-pip -y

# 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.4 生成示例配置文件

# 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

 

3.5 复制api-paste.ini配置文件

# su -s /bin/sh -c "cp etc/zun/api-paste.ini /etc/zun" zun

 

3.6 编辑配置文件,在合适位置添加以下内容

# vi /etc/zun/zun.conf

[DEFAULT]

transport_url = rabbit://openstack:000000@controller

[api]

host_ip = 192.168.152.101

port = 9517

[database]

connection = mysql+pymysql://zun:000000 @controller/zun

[keystone_auth]

memcached_servers = controller:11211

www_authenticate_uri = http://controller:5000

project_domain_name = default

project_name = service

user_domain_name = default

password = 000000

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]

...

memcached_servers = controller:11211

www_authenticate_uri = http://controller:5000

project_domain_name = default

project_name = service

user_domain_name = default

password = 000000

username = zun

auth_url = http://controller:5000

auth_type = password

auth_version = v3

auth_protocol = http

service_token_roles_required = True

endpoint_type = internalURL

[oslo_concurrency]

lock_path = /var/lib/zun/tmp

[oslo_messaging_notifications]

driver = messaging

[websocket_proxy]

wsproxy_host = 192.168.152.101

wsproxy_port = 6784

 

3.7 填充数据库

# su -s /bin/sh -c "zun-db-manage upgrade" zun

 

3.8 创建启动文件

# vi /etc/systemd/system/zun-api.service

[Unit]

Description = OpenStack Container Service API

 

[Service]

ExecStart = /usr/ bin/zun-api

User = zun

 

[Install]

WantedBy = multi-user.target

# vi /etc/systemd/system/zun-wsproxy.service

[Unit]

Description = OpenStack Container Service Websocket Proxy

 

[Service]

ExecStart = /usr/bin/zun-wsproxy

User = zun

 

[Install]

WantedBy = multi-user.target

 

3.9 启动服务

# systemctl enable zun-api  zun-wsproxy

# systemctl start zun-api  zun-wsproxy

# systemctl status zun-api  zun-wsproxy

 

以下操作在compute节点上执行

4 在compute节点上安装docker-ce

4.1 卸载旧版本的docker

# yum remove docker  docker-common  docker-selinux  docker-engine –y

4.2 安装依赖包

# yum install -y yum-utils device-mapper-persistent-data lvm2

4.3 添加yum阿里源

# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.4 更新yum源

# yum makecache fast

4.5 安装docker-ce

# yum install docker-ce

4.6 启动docker-ce

# systemctl enable docker

# systemctl start docker

4.7 添加内核配置参数

# cat /etc/sysctl.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

# sysctl –p

 

5 在controller节点上添加kuryr-libnetwork用户

5.1 创建kuryr用户

# . admin-openrc

# openstack user create --domain default --password-prompt kuryr

5.2 添加角色

# openstack role add --project service --user kuryr admin

 

6 在compute节点安装kuryr-libnetwork

6.1 创建用户

# groupadd --system kuryr

# useradd --home-dir "/var/lib/kuryr" --create-home --system --shell /bin/false -g kuryr kuryr

6.2 创建目录

# mkdir -p /etc/kuryr

# chown kuryr:kuryr /etc/kuryr

6.3 安装kuryr-libnetwork

#yum install python-pip -y

# cd /var/lib/kuryr

# git clone -b stable/queens https://git.openstack.org/openstack/kuryr-libnetwork.git

# chown -R kuryr:kuryr kuryr-libnetwork

# cd kuryr-libnetwork

# pip install -r requirements.txt

# python setup.py install

6.4 生成示例配置文件

# 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

6.5 编辑配置文件,添加以下内容

# vi /etc/kuryr/kuryr.conf

[DEFAULT]

bindir = /usr/libexec/kuryr

[neutron]

www_authenticate_uri = http://controller:5000

auth_url = http://controller:35357

username = kuryr

user_domain_name = default

password = 000000

project_name = service

project_domain_name = default

auth_type = password

6.6 创建启动文件

# vi /etc/systemd/system/kuryr-libnetwork.service

[Unit]

Description = Kuryr-libnetwork - Docker network plugin for Neutron

 

[Service]

ExecStart = /usr/bin/kuryr-server --config-file /etc/kuryr/kuryr.conf

CapabilityBoundingSet = CAP_NET_ADMIN

 

[Install]

WantedBy = multi-user.target

6.7 启动服务

# systemctl enable kuryr-libnetwork

# systemctl start kuryr-libnetwork

# systemctl restart docker

 

6.8 验证

6.8.1 创建kuryr网络

# docker network create --driver kuryr --ipam-driver kuryr --subnet 10.10.0.0/16 --gateway=10.10.0.1 test_net

6.8.2 查看网络

# docker network ls

6.8.3 创建容器

# docker run --net test_net cirros ifconfig

 

7 在compute节点安装zun服务

7.1 创建用户

# groupadd --system zun

# useradd --home-dir "/var/lib/zun" --create-home --system --shell /bin/false -g zun zun

7.2 创建目录

# mkdir -p /etc/zun

# chown zun:zun /etc/zun

7.3 安装zun

# 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

7.4 生成示例配置文件

# 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

7.5 配置zun用户

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

7.6 编辑配置文件,添加以下内容

# vi /etc/zun/zun.conf

[DEFAULT]

transport_url = rabbit://openstack:000000@controller

state_path = /var/lib/zun

[database]

connection = mysql+pymysql://zun:000000 @controller/zun

[keystone_auth]

memcached_servers = controller:11211

www_authenticate_uri = http://controller:5000

project_domain_name = default

project_name = service

user_domain_name = default

password = 000000

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]

memcached_servers = controller:11211

www_authenticate_uri= http://controller:5000

project_domain_name = default

project_name = service

user_domain_name = default

password = 000000

username = zun

auth_url = http://controller:5000

auth_type = password

[websocket_proxy]

base_url = ws://controller:6784/

[oslo_concurrency]

lock_path = /var/lib/zun/tmp

 

7.7 配置docker和kuryr

7.7.1 创建docker配置文件夹

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

7.7.2 创建docker配置文件

# vi /etc/systemd/system/docker.service.d/docker.conf

[Service]

ExecStart=

ExecStart=/usr/bin/dockerd --group zun -H tcp://compute:2375 -H unix:///var/run/docker.sock --cluster-store etcd://controller:2379

7.7.3 重启docker

# systemctl daemon-reload

# systemctl restart docker

7.7.4 编辑kuryr配置文件,添加以下内容

# vi  /etc/kuryr/kuryr.conf

[DEFAULT]

capability_scope = global

7.7.5 重启kuryr

# systemctl restart kuryr-libnetwork

7.8 创建启动文件

# vi /etc/systemd/system/zun-compute.service

[Unit]

Description = OpenStack Container Service Compute Agent

 

[Service]

ExecStart = /usr /bin/zun-compute

User = zun

 

[Install]

WantedBy = multi-user.target

 

7.9 启动zun-compute

# systemctl enable zun-compute

# systemctl start zun-compute

# systemctl status zun-compute

 

7.10 验证

# pip install python-zunclient==1.1.0

# source admin-openrc

# openstack appcontainer service list

 

8 在controller节点启动一个容器实例

8.1 查看网络

# openstack network list

8.2 获取网络id

# export NET_ID=$(openstack network list | awk '/ selfservice / { print $2 }')

8.3 创建容器

# openstack appcontainer run --name container --net network=$NET_ID cirros ping 8.8.8.8

8.4 查看容器列表

# openstack appcontainer list

8.5 执行sh命令

# openstack appcontainer exec --interactive container /bin/sh

8.6 验证网络

# ping -c 4 openstack.org;exit

8.7 停止容器

# openstack appcontainer stop container

8.8 删除容器

# openstack appcontainer delete container

 

9 安装zun-ui

9.1 下载zun源文件

# git clone https://github.com/openstack/zun-ui

9.2 复制文件

# cp /zun-ui/zun_ui/enabled/_1330_project_container_panelgroup.py /usr/share/openstack-dashboard/openstack_dashboard/local/enabled/

# cp /zun-ui/zun_ui/enabled/_1331_project_container_containers_panel.py /usr/share/openstack-dashboard/openstack_dashboard/local/enabled/

# cp./zun-ui/zun_ui/enabled/_2330_project_container_panelgroup.py /usr/share/openstack-dashboard/openstack_dashboard/local/enabled/

# cp /zun-ui/zun_ui/enabled/_2331_project_container_images_panel.py openstack_dashboard/local/enabled

# cp /zun-ui/zun_ui/enabled/_0330_cloud_shell.py /usr/share/openstack-dashboard/openstack_dashboard/local/enabled/

9.3 安装ui模块

# pip install zun-ui

9.4 重启服务

# systemctl restart httpd memcached

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openstack(queens)部署Zun服务 的相关文章

随机推荐

  • 数学物理计算机的思考

    一些关于数学物理计算机的妄言 如果说冥冥之中有一种真理 自然世界的运作规律 61 真理 61 自然科学 xff0c 致敬牛顿的那本著名的几何书 xff0c 我会把它叫做 自然哲学 以下我说的每句话 xff0c 都蕴涵着我自己的生活经历 xf
  • 一个知乎提问引发的(思考)[https://www.zhihu.com/question/263431508/answer/574084280]

    表示很喜欢这个问题 xff0c 深有同感 xff01 这个问题也让我这种杂家谈谈想法吧 xff0c 看题主应该是骨骼精奇的奇才 xff0c 我假想读者是 小学生 xff0c 所以 xff0c 觉得我啰嗦的大大 xff0c 忍忍吧 xff0c
  • Johnson算法PlantSimulation解决两机器多作业排版问题

    生产系统仿真应用教程PlantSimulation 周金平Johnson算法代码写错了的源代码 xff1a is i j m n y integer do y 61 Jobs ydim m 61 1 n 61 y for i 61 1 to
  • 组成原理---补码加减法,原码一两位乘法,补码一两位乘法,754标准

    翻转课堂 xff0c 学生讲课 xff0c 笔记顺便贴上来吧 万一有人需要呢 这里754标准其实可以看https blog csdn net xingqingly article details 18981671 xff0c 我没有把尾数规
  • POSIX 网络API原理

    1 POSIX 网络API 网络编程常用的API xff1a 2 IO函数的内部过程分析 2 1 Socket socket作为网络编程的第一个函数 xff0c 主要作用是用于创建句柄和对应的TCB控制块 xff1b 建立起文件描述符和内部
  • 卷积神经网络(CNN)的平移不变性和旋转不变性。

    文章目录 不变性的介绍不变性的原理 不变性的介绍 不变性意味着即使目标的外观发生了某种变化 xff0c 但是你依然可以把它识别出来 旋转不变性和平移不变性 xff1a 通俗的讲 xff0c 我给你一张图片 xff0c 你识别出来这是只狗 x
  • ubuntu22.04版本APPimage启动报错问题解决

    文章目录 前言 xff1a 报错信息解决方法结果展示你以为就完了 xff1f 天真 xff01 结果展示2结语 前言 xff1a 因为个人比较喜欢提前使用一些较新的软件 系统之类的东西 xff0c 所有在ubuntu22刚发行就选择了升级
  • 音视频封装原理简介

    1 什么是数据化封住和解封装 xff1f 2 视频数据的封装 3 什么是音视频的封装格式 4 封装格式
  • wsl 配置 java 环境以及使用 vscode 调试

    wsl 配置 java 环境以及使用 vscode 调试 原文 xff1a https blog csdn net huiruwei1020 article details 107775782 按照原文我无法运行 xff0c 按照Stack
  • L13. hrtimer使用实例(高精度定时器)

    1 简介 随着内核不断更新演进 xff0c 内核对定时器的分辨率要求越来越高 硬件的高速发展也逐渐能够满足内核的这一要求 xff0c 因此内核针对硬件提供的便利 xff0c 开始设计了更高分辨率的定时器 xff08 hrtimer xff0
  • 鸿蒙操作系统下载

    简介 华为最近开源了自产的操作系统 Harmony 凑一波热闹 xff0c 下载源码看看 横看成岭侧成峰 xff0c 远近高低各不同 由于目前水平有限 xff0c 所以不对鸿蒙操作系统做出过多评价 xff0c 只是下载来学习一下 愿景是希望
  • 5. C++ 抽象类

    1 简介 抽象类往往用来表征对问题领域进行分析 设计中得出的抽象概念 xff0c 是对一系列看上去不同 xff0c 但是本质上相同的具体概念的抽象 通常在编程语句中用 abstract 修饰的类是抽象类 在C 43 43 中 xff0c 含
  • C++并发编程 - 互斥锁(lock_guard和unique_lock)

    C 43 43 并发编程 互斥锁 在多线程的编程中 xff0c 共享数据的修改限制是必不可少的环节 期望的是 当一个线程访问共享数据期间 xff0c 此数据不应该被其他线程修改 xff1b 当某个线程修改了共享数据 xff0c 应通知其他线
  • CMake搭建编译环境总结

    前言 交叉编译算是每个嵌入式开发者都会经历的一道坎吧 xff0c 通俗的描述就是搭建Arm板代码编译环境 xff0c 让代码能够在Arm板子上跑起来 常用到的编译工具为Makefile和CMake xff0c 本篇记录下CMake的常用技巧
  • C++ lambda表达式

    lambda表达式 目录 一 开篇二 lambda初识三 lambda基本用法四 lambda表达式捕获列表五 总结六 参考 一 开篇 lambda表达式是C 43 43 11引进的一个新特性 xff0c 其写法比较新颖 xff0c 经常被
  • 网络编程 - Linux socket编程

    前言 socket 套接字 是网络编程编程的一种技巧 通过socket不仅可以实现跨进程通信 xff0c 还可以实现跨主机的网络通信 使用这种技术 xff0c 就可以实现全国各地的通讯 例如 xff1a 深圳的一台电脑接收来自北京一台电脑发
  • 记一次STM32F3单片机无法下程序解决方法

    不知道什么操作导致keil5下载STM32F3的程序时报以下错误 xff1a JLink info DLL V4 90 compiled Jul 28 2014 10 35 20 Firmware J Link OB STM32F072 C
  • SpringBoot集成MyBatis-Plus代码生成器(V3.5.1)

    1 说明 MyBatis Plus在3 5 1版本之后 xff0c 改变了代码生成器的用法 xff0c 由于对历史版本的不兼容 xff0c 这次重新梳理一份新的用法 3 5 1版本之前的代码生成器请参考 xff1a SpringBoot集成
  • 插上串口设备导致鼠标乱飘

    今天再一次遇见这种怪事 xff0c 屏幕上鼠标到处乱飘不受控制 xff0c 之前也遇到过 xff0c 没仔细研究 最终在网上搜寻答案发现是插上串口设备导致的问题 xff0c 因为串口一直不停的发送数据 xff0c 会导致电脑将其误识别成鼠标
  • openstack(queens)部署Zun服务

    zun安装手册 Zun是Openstack中提供容器管理服务的组件 xff0c 本文使用的是centos7上的openstack xff08 queens xff09 环境 目录 zun安装手册 3 在controller节点上安装zun服