在本指南中,我们将介绍在OpenStack中设置Magnum容器编排服务所需的步骤,可在CentOS、Ubuntu操作系统进行。
前言 Magnum是一项OpenStack API服务,旨在帮助OpenStack用户管理容器编排引擎,例如Kubernetes、Docker Swarm和Apache Mesos。Magnum使用Heat来编排包含Docker和Kubernetes的OS映像,并在虚拟机或群集配置中的裸机上运行该映像。 在遵循本指南之前,您应该拥有一个可运行的OpenStack云环境,对于开发环境,我们有一个指南,您可以参考: 使用DevStack在Ubuntu 18.04上进行OpenStack部署。 使用Packstack RDO在CentOS 7上部署OpenStack Cloud的方法。 在开始之前,您需要访问: OpenStack服务正在使用的数据库服务器。 根访问权限以更改控制器中的Magnum配置文件。 访问管理凭据文件–.keystonerc或.admin-openrc。 一旦确认对上述内容的访问权,就可以开始在OpenStack上设置Magnum容器服务。
步骤1:创建Magnum数据库用户 创建Magnum数据库并授予对Magnum数据库的适当访问权限: $ mysql -u root -p CREATE DATABASE magnum; GRANT ALL PRIVILEGES ON magnum.* TO 'magnum'@'localhost' IDENTIFIED BY 'MagnumDBPassword'; GRANT ALL PRIVILEGES ON magnum.* TO 'magnum'@'%' IDENTIFIED BY 'MagnumDBPassword'; FLUSH PRIVILEGES; \q 用适用于magnum数据库用户的密码替换MagnumDBPassword。
步骤2:建立magnum服务使用者 取得管理员凭据,以访问仅管理员的CLI命令: $ source ~/.keystonerc 然后创建一个大用户服务用户帐户: $ openstack user create --domain default --project service --password MagnumPass magnum
将admin角色添加到magnum用户: $ openstack role add --project service --user magnum admin 创建magnum服务实体: $ openstack service create --name magnum --description "OpenStack Container Infrastructure Management Service" container-infra
步骤3:建立服务API端点 创建容器基础结构管理服务API端点。 用magnum监听的IP地址替换控制器值,这也可以是Compute实例可访问的主机名: $ export controller=192.168.1.10 $ openstack endpoint create --region RegionOne container-infra public http://$controller:9511/v1 $ openstack endpoint create --region RegionOne container-infra internal http://$controller:9511/v1 $ openstack endpoint create --region RegionOne container-infra admin http://$controller:9511/v1
步骤4:建立Magnum网域 创建包含用于容器服务的项目和用户的magnum域: $ openstack domain create --description "Owns users and projects created by magnum" magnum
创建magnum_domain_admin用户以管理magnum域中的项目和用户: $ openstack user create --domain magnum --password aShuumoNg8ieche magnum_domain_admin
将admin角色添加到magnum域中的magnum_domain_admin用户中,以启用管理权限: $ openstack role add --domain magnum --user-domain magnum --user magnum_domain_admin admin
步骤5:安装和配置Magnum组件 现在,我们可以安装Magnum所需的软件包。 如果是在CentOS系统中: $ sudo yum -y install openstack-magnum-api openstack-magnum-conductor python-magnumclient 如果是在Ubuntu系统中: $ sudo apt -y install magnum-api magnum-conductor python-magnumclient 编辑/etc/magnum/magnum.conf文件并在[api]部分中配置主机: [api] ... host = CONTROLLER_IP 在[certificates]部分中,选择Barbican(如果未安装Barbican,则选择x509keypair): [certificates] ... cert_manager_type = x509keypair 在[cinder_client]部分中,配置区域名称: [cinder_client] ... region_name = RegionOne 在[database]部分中,配置数据库访问: [database] ... connection = mysql+pymysql://magnum:MAGNUM_DBPASS@controller/magnum 将MAGNUM_DBPASS替换为您为magnum数据库选择的密码。 在[keystone_authtoken]和[trust]部分中,配置身份服务访问: [keystone_authtoken] ... memcached_servers = controller:11211 auth_version = v3 www_authenticate_uri = http://controller:5000/v3 project_domain_id = default project_name = service user_domain_id = default password = MAGNUM_PASS username = magnum auth_url = http://controller:5000 auth_type = password admin_user = magnum admin_password = MAGNUM_PASS admin_tenant_name = service [trust] ... trustee_domain_name = magnum trustee_domain_admin_name = magnum_domain_admin trustee_domain_admin_password = DOMAIN_ADMIN_PASS trustee_keystone_interface = KEYSTONE_INTERFACE 注: 将MAGNUM_PASS替换为您为身份服务中的magnum用户选择的密码。 使用您为magnum_domain_admin用户选择的密码的DOMAIN_ADMIN_PASS。 KEYSTONE_INTERFACE是公共的还是内部的,具体取决于您的网络配置。 在[oslo_messaging_notifications]部分中,配置驱动程序: [oslo_messaging_notifications] ... driver = messaging 在[DEFAULT]部分中,配置RabbitMQ消息队列访问: [DEFAULT] ... transport_url = rabbit://openstack:RABBIT_PASS@controller 将RABBIT_PASS替换为您为RabbitMQ中的openstack帐户选择的密码。 编辑/etc/magnum/magnum.conf文件,并在[oslo_concurrency]部分下设置lock_path: [oslo_concurrency] ... lock_path = /var/lib/magnum/tmp 填充Magnum数据库: $ sudo su -s /bin/sh -c "magnum-db-manage upgrade" magnum
启动容器基础结构管理服务,并将其配置为在系统启动时启动。 如果是在Ubuntu系统中: sudo systemctl restart magnum-api sudo systemctl restart magnum-conductor 如果是在CentOS系统中: sudo systemctl enable --now openstack-magnum-api.service openstack-magnum-conductor.service 检查服务状态: $ systemctl status openstack-magnum-api.service openstack-magnum-conductor.service
要列出内部服务的情况,请使用: $ openstack coe service list
到这里,操作步骤全部完成。
相关主题 |