Hongbin Lu 0f5e065855 Configure Zun for Placement (Train+)
After the integration with placement [1], we need to configure how
zun-compute is going to work with nova-compute.

* If zun-compute and nova-compute run on the same compute node,
  we need to set 'host_shared_with_nova' as true so that Zun
  will use the resource provider (compute node) created by nova.
  In this mode, containers and VMs could claim allocations against
  the same resource provider.
* If zun-compute runs on a node without nova-compute, no extra
  configuration is needed. By default, each zun-compute will create
  a resource provider in placement to represent the compute node
  it manages.

[1] https://blueprints.launchpad.net/zun/+spec/use-placement-resource-management

Change-Id: I2d85911c4504e541d2994ce3d48e2fbb1090b813
2019-09-10 01:47:15 +00:00

117 lines
3.2 KiB
ReStructuredText

=======================
Zun - Container service
=======================
"Zun is an OpenStack Container service. It aims to provide an
OpenStack API for provisioning and managing containerized
workload on OpenStack."
For more details about Zun, see `OpenStack Zun Documentation
<https://docs.openstack.org/zun/latest/>`__.
Preparation and Deployment
--------------------------
By default Zun and its dependencies are disabled.
In order to enable Zun, you need to edit globals.yml and set the
following variables:
.. code-block:: yaml
enable_zun: "yes"
enable_kuryr: "yes"
enable_etcd: "yes"
enable_placement: "yes"
docker_configure_for_zun: "yes"
Docker reconfiguration requires reboostrapping before deploy.
Make sure you understand the consequences of restarting Docker.
Please see :ref:`rebootstrapping` for details.
If it's initial deploy, then there is nothing to worry about
because it's initial bootstrapping as well and there are no
running services to affect.
.. code-block:: console
$ kolla-ansible bootstrap-servers
Finally deploy:
.. code-block:: console
$ kolla-ansible deploy
Verification
------------
#. Generate the credentials file:
.. code-block:: console
$ kolla-ansible post-deploy
#. Source credentials file:
.. code-block:: console
$ . /etc/kolla/admin-openrc.sh
#. Download and create a glance container image:
.. code-block:: console
$ docker pull cirros
$ docker save cirros | openstack image create cirros --public \
--container-format docker --disk-format raw
#. Create zun container:
.. code-block:: console
$ zun create --name test --net network=demo-net cirros ping -c4 8.8.8.8
.. note::
Kuryr does not support networks with DHCP enabled, disable DHCP in the
subnet used for zun containers.
.. code-block:: console
$ openstack subnet set --no-dhcp <subnet>
#. Verify container is created:
.. code-block:: console
$ zun list
+--------------------------------------+------+---------------+---------+------------+------------+-------+
| uuid | name | image | status | task_state | addresses | ports |
+--------------------------------------+------+---------------+---------+------------+------------+-------+
| 3719a73e-5f86-47e1-bc5f-f4074fc749f2 | test | cirros | Created | None | 172.17.0.3 | [] |
+--------------------------------------+------+---------------+---------+------------+------------+-------+
#. Start container:
.. code-block:: console
$ zun start test
Request to start container test has been accepted.
#. Verify container:
.. code-block:: console
$ zun logs test
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=45 time=96.396 ms
64 bytes from 8.8.8.8: seq=1 ttl=45 time=96.504 ms
64 bytes from 8.8.8.8: seq=2 ttl=45 time=96.721 ms
64 bytes from 8.8.8.8: seq=3 ttl=45 time=95.884 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 95.884/96.376/96.721 ms
For more information about how zun works, see
`zun, OpenStack Container service <https://docs.openstack.org/zun/latest/>`__.