Go to file
Antoni Segura Puimedon 5bd2d40f1d requirements: add pyroute2 to the runtime reqs
This has worked so far because kuryr-lib, which is a requirement of
kuryr-kubernetes has pyroute2 as a requirement. However, since
kuryr-kubernetes is a direct consumer of pyroute2 with its binding code,
we can't pretend this is an indirect dependency. We must include it
here.

Change-Id: I882fa9b7159e01c159a77eb949a0bf1e76f51a81
Signed-off-by: Antoni Segura Puimedon <antonisp@celebdor.com>
2017-03-08 00:50:02 +01:00
2016-12-05 18:05:22 +00:00
2016-10-04 21:56:50 +03:00
2016-11-18 10:14:56 +03:00
2016-11-18 10:14:56 +03:00
2016-05-12 09:14:08 +00:00
2016-12-07 13:20:25 +00:00
2017-01-31 23:50:28 +01:00

Team and repository tags

image

kuryr-kubernetes

Kubernetes integration with OpenStack networking

Please fill here a long description which must be at least 3 lines wrapped on 80 cols, so that distribution package maintainers can use it in their packages. Note that this is a hard requirement.

Configuring Kuryr

Generate sample config, etc/kuryr.conf.sample, running the following:

$ ./tools/generate_config_file_samples.sh

Rename and copy config file at required path:

$ cp etc/kuryr.conf.sample /etc/kuryr/kuryr.conf

Edit Neutron section in /etc/kuryr/kuryr.conf, replace ADMIN_PASSWORD:

[neutron]
auth_url = http://127.0.0.1:35357/v3/
username = admin
user_domain_name = Default
password = ADMIN_PASSWORD
project_name = service
project_domain_name = Default
auth_type = password

In the same file uncomment the bindir parameter with the path to the Kuryr vif binding executables. For example, if you installed it on Debian or Ubuntu:

[DEFAULT]
bindir = /usr/local/libexec/kuryr

How to try out nested-pods locally:

Following are the instructions for an all-in-one setup where K8s will also be running inside the same Nova VM in which Kuryr-controller and Kuryr-cni will be running. 4GB memory and 2 vCPUs, is the minimum resource requirement for the VM:

  1. To install OpenStack services run devstack with devstack/local.conf.pod-in-vm.undercloud.sample. Ensure that "trunk" service plugin is enabled in /etc/neutron/neutron.conf:

    [DEFAULT]
    service_plugins = neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,neutron.services.trunk.plugin.TrunkPlugin
  2. Launch a VM with Neutron trunk port.

  3. Inside VM, install and setup Kubernetes along with Kuryr using devstack:
    • Since undercloud Neutron will be used by pods, neutron services should be disabled in localrc.
    • git clone kuryr-kubernetes at /opt/stack/.
    • In the devstack/plugin.sh, comment out configure_neutron_defaults. This method is getting UUID of default Neutron resources project, pod_subnet etc. using local neutron client and setting those values in /etc/kuryr/kuryr.conf. This will not work at the moment because Neutron is running remotely. Thats why this is being commented out and manually these variables will be configured in /etc/kuryr/kuryr.conf
    • Run devstack with devstack/local.conf.pod-in-vm.overcloud.sample.
  4. Once devstack is done and all services are up inside VM:
    • Configure /etc/kuryr/kuryr.conf to set UUID of Neutron resources from undercloud Neutron:

      [neutron_defaults]
      ovs_bridge = br-int
      pod_security_groups = <UNDERCLOUD_DEFAULT_SG_UUID>
      pod_subnet = <UNDERCLOUD_SUBNET_FOR_PODS_UUID>
      project = <UNDERCLOUD_DEFAULT_PROJECT_UUID>
      worker_nodes_subnet = <UNDERCLOUD_SUBNET_WORKER_NODES_UUID>
    • Configure “pod_vif_driver” as “nested-vlan”:

      [kubernetes]
      pod_vif_driver = nested-vlan
    • Configure binding section:

      [binding]
      driver = kuryr.lib.binding.drivers.vlan
      link_iface = <VM interface name eg. eth0>
    • Restart kuryr-k8s-controller from within devstack screen.

Now launch pods using kubectl, Undercloud Neutron will serve the networking.

Features

  • TODO
Description
RETIRED, Kubernetes integration with OpenStack networking
Readme 46 MiB