Using Kuryr to Integrate Network Between OpenStack and Kubernetes (Part 1)

Using Kuryr to Integrate Network Between OpenStack and Kubernetes (Part 1)

Kubernetes Kuryr is a subproject of OpenStack Neutron. Its main objective is to integrate network configuration between OpenStack and Kubernetes. This particular project implements a native Neutron-based network, which enables OpenStack VM and Kubernetes Pods to run in the same subnet. It also utilizes Neutron L3 agent and security group to deliver network routing, and port management features.

The integration of Kuryr-Kubernetes consists of two major components:

  1. Kuryr Controller: Monitoring Kubernetes API to obtain Kubernetes resources status, and then allocate and manage resources based on the requirements of Kubernetes resources
  2. Kuryr CNI: Binding network to Pods based on Kubernetes resources allocation

This article describes how to use DevStack and Kubespray to establish a simple test environment.

Prerequisites

You can prepare two physical computers beforehand with CentOS 7.x installed, which will be run by using a flat network.

Update CentOS 7.x packages of each nodes:

$ sudo yum --enablerepo=cr update -y

Then disable and stop firewalld and SELinux to avoid problems:

$ sudo setenforce 0
$ sudo systemctl disable firewalld && sudo systemctl stop firewalld

OpenStack Controller Installation

Firstly, switch to controller node (172.24.0.34), and enter the following commands. You may execute the commands as below to create DevStack user:

$ sudo useradd -s /bin/bash -d /opt/stack -m stack
$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack 

The reason to choose DevStack is that instead of using Linux screen command, users tend to use Systemd command to manage services.

Next, you can switch to the stack user to deploy OpenStack:

$ sudo su - stack

Download DevStack package:

$ git clone https://git.openstack.org/openstack-dev/devstack
$ cd devstack

Create a local.conf file to describe deployment information.

[[local|localrc]]
HOST_IP=172.24.0.34
GIT_BASE=https://github.com
ADMIN_PASSWORD=passwd
DATABASE_PASSWORD=passwd
RABBIT_PASSWORD=passwd
SERVICE_PASSWORD=passwd
SERVICE_TOKEN=passwd
MULTI_HOST=1

Tip:
Change HOST_IP address to your IP.
After that, execute the following command to start deployment:

$ ./stack.sh

Openstack Compute Installation

Switch to compute node (172.24.0.80), and enter the following commands.

Then, execute the following command to create DevStack user:

$ sudo useradd -s /bin/bash -d /opt/stack -m stack
$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

The reason to choose DevStack is that instead of using Linux screen command, users tend to use Systemd command to manage services.

Next, you can switch user to deploy OpenStack:

$ sudo su - stack

Download DevStack installation package:

$ git clone https://git.openstack.org/openstack-dev/devstack
$ cd devstack

Create a local.conf file to describe deployment information:

[[local|localrc]]
HOST_IP=172.24.0.80
GIT_BASE=https://github.com
MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log
ADMIN_PASSWORD=passwd
DATABASE_PASSWORD=passwd
RABBIT_PASSWORD=passwd
SERVICE_PASSWORD=passwd
DATABASE_TYPE=mysql
SERVICE_HOST=172.24.0.34
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
ENABLED_SERVICES=n-cpu,q-agt,n-api-meta,c-vol,placement-client
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL=”http://$SERVICE_HOST:6080/vnc_auto.html”
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN

Tips:
Change HOST_IP address to your IP.
Then, change SERVICE_HOST to IP address of master node.

After that, execute the following command to start deployment:

$ ./stack.sh

Continue

by 白凱仁 迎棧科技軟體工程師

EDM

Select list(s)*

 

Loading