contrail deploy by juju/maas

20
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved Deploying Contrail with OpenStack by Juju/MAAS – Ikuo Kumagai Bit-isle Equinix Inc.

Upload: ikuo-kumagai

Post on 15-Apr-2017

300 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights ReservedCopyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

Deploying Contrail with OpenStackby Juju/MAAS

– Ikuo Kumagai Bit-isle Equinix Inc.

Page 2: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

Open my Stack

•Ikuo Kumagai(@kumagai19o)

• Blog : Bit-isle R&D institute blog (Japanese only)

Career

• 2012 ~ OpenStack R&D & Providing hosted private OpenStack

• 2011 ~ Developing a cloud system based VMware and BIG-IP

• 2007 ~ Designing a Financial System Infrastructure

• 2006 ~ Developing a Job Scheduler Package

• 2004 ~ Production Control System Developer

• 2001 ~ Visual Basic/Java Programmer

2

Page 3: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

OpenStack Summit Barcelona

•Keynote session by T-Systems

•Contrail meetup

3

Page 4: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

参考にした情報

4

https://github.com/tonyliu0592/opencontrail/wiki/Juju

Page 5: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

•物理サーバ3台を使用

‣デプロイ系はKVMで構築

‣コントローラ系はLXDコンテナでインストール

‣コンピュートは物理サーバをそのまま使用

サーバ構成

Compute

CTRL

Deployment

LXD

Compute

KVM

OpenStack Segment IPMI Segment

Compute

・・・

LXDLXD

KVMKVM

Page 6: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights ReservedCopyright © 2016 Bit-isle Equinix Inc. All Rights Reserved 6

MAAS によるサーバーの管理

New

管理リストに登録(サーバ電源ON)

Ready

Deployed

OSインストール

HW情報を取得(MAASから操作)

Enlist

Commissionig

Deploy

•MAASはPXEブートを管理する管理対象は物理or仮想サーバ

Page 7: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

MAAS Server

MAAS の基本的な動作(簡易概念図)

•下記の仕組みでサーバを起動/初期処理を行う

Tftpd(PXE boot)

Squid(Proxy)

Dhcpd(DHCP)

Bind(DNS)

Apache2(Httpd)root-image

root-tgz

Client

Cloud-init

MAAS-web/API

Metadata-serverrootfs

userdata

Pxe Boot

Iscsiマウント

root fs への書き込み

Cloud-initによる初期設定

iscsi(readonly)

dd

Page 8: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

Jujuによるアプリケーションの管理(Charm)

•JujuはアプリケーションをCharmと呼ばれる定義ファイルでデプロイします。Charmは bashまたはpythonで記述されたプログラムです。CharmStoreに公開されていてそのまま使用することが可能です。またCharmをダウンロードして自分でカスタマイズすることもできます。

8

(例) https://jujucharms.com/u/sdn-charmers/contrail-control/trusty/17

Page 9: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

Jujuによるアプリケーションの管理(Bundle)

•個々のcharmはパラメータとリレーションを設定して使用する。

•これらの関係やパラメータを纏めて記載できるものとしてBundleがある。

•Charmはある程度自由度が高くそれを纏めて使用するためにbundle化して使用する

9

Page 10: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

今回参考にしたBundle

•参考情報のページからcontrail-2n-lxc.yamlを参照

10

https://github.com/tonyliu0592/opencontrail-install/blob/master/juju/contrail-2n-lxc.yaml

Page 11: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

Charm 配置

Manage Control用ノード Compute 用ノード

nova-compute

neutron-contrail

keystone contrail-analytics

contrail-configuration

MAAS

JujuBootStrap

Repository

contrail-control

contrail-webui

glance

Nova-cloud-controller

Openstack-dashboard

kafka

zookeeper

mysql

rabbitmq

Neutron-api

neutron-api-contrail

cassandra

11

JujuClient

Physical KVM LXD

•前頁のbundleを元にデプロイすると以下のようなコンポーネント配置となる。

Page 12: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

Unit内のサービスの配置

•各Contrailコンポーネントで動作しているサービスは以下の通り

12

== Contrail Control ==supervisor-control contrail-control contrail-control-nodemgr

== Contrail Analytics ==supervisor-analytics contrail-alarm-gen contrail-analytics-apicontrail-analytics-nodemgrcontrail-collector contrail-query-engine contrail-snmp-collector contrail-topology

== Contrail Web UI ==supervisor-webui: contrail-webui contrail-webui-middleware

== Contrail Config ==supervisor-config: contrail-api:0 contrail-config-nodemgr contrail-device-manager contrail-discovery:0 contrail-schema contrail-svc-monitor ifmap

== Contrail Support Services ==supervisor-support-service:

== Contrail vRouter ==supervisor-vrouter: contrail-vrouter-agentcontrail-vrouter-nodemgr

Control用ノード Compute 用ノード

Page 13: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

Charm間の関係

13

# OpenStack- [ keystone, mysql ]- [ glance, mysql ]- [ glance, keystone ]- [ openstack-dashboard, keystone ]- [ nova-cloud-controller, mysql ]- [ nova-cloud-controller, rabbitmq-server ]- [ nova-cloud-controller, keystone ]- [ nova-cloud-controller, glance ]- [ neutron-api, mysql ]- [ neutron-api, rabbitmq-server ]- [ neutron-api, nova-cloud-controller ]- [ neutron-api, keystone ]- [ "nova-compute:shared-db", "mysql:shared-db" ]- [ "nova-compute:amqp", "rabbitmq-server:amqp" ]- [ nova-compute, glance ]- [ nova-compute, nova-cloud-controller ]

# Contrail- [ kafka, zookeeper ]- [ "contrail-configuration:cassandra", "cassandra:database" ]- [ "contrail-configuration:contrail-analytics-api", "contrail-analytics:contrail-analytic- [ contrail-configuration, zookeeper ]- [ contrail-configuration, rabbitmq-server ]- [ "contrail-configuration:identity-admin", "keystone:identity-admin" ]- [ "contrail-configuration:identity-service", "keystone:identity-service" ]- [ "contrail-analytics:identity-service", "keystone:identity-service" ]- [ "contrail-analytics:cassandra", "cassandra:database" ]- [ "contrail-analytics:contrail-api", "contrail-configuration:contrail-api" ]- [ "contrail-analytics:contrail-discovery", "contrail-configuration:contrail-discovery" ]- [ contrail-analytics, kafka ]- [ contrail-analytics, zookeeper ]- [ "contrail-control:contrail-discovery", "contrail-configuration:contrail-discovery" ]- [ "contrail-control:contrail-ifmap", "contrail-configuration:contrail-ifmap" ]- [ "contrail-control:contrail-api", "contrail-configuration:contrail-api" ]- [ contrail-control, keystone ]- [ neutron-api-contrail, neutron-api ]- [ neutron-api-contrail, contrail-configuration ]- [ neutron-api-contrail, keystone ]- [ contrail-webui, keystone ]- [ "contrail-webui:contrail_api", "contrail-configuration:contrail-api" ]- [ "contrail-webui:contrail_discovery", "contrail-configuration:contrail-discovery" ]- [ "contrail-webui:cassandra", "cassandra:database" ]- [ neutron-contrail, nova-compute ]- [ neutron-contrail, keystone ]- [ "neutron-contrail:contrail-discovery", "contrail-configuration:contrail-discovery" ]- [ "neutron-contrail:contrail-api", "contrail-configuration:contrail-api" ]

Page 14: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights ReservedCopyright © 2016 Bit-isle Equinix Inc. All Rights Reserved 14

使用したCharm (OpenStack)

•OpenStack‣charm: cs:~sdn-charmers/keystone-0(3.1対応あり)

• #charm: cs:trusty/keystone(2.2の場合は有効)

‣charm: cs:trusty/openstack-dashboard

‣charm: cs:trusty/nova-cloud-controller

‣charm: cs:trusty/glance

‣charm: cs:trusty/neutron-api

‣charm: cs:trusty/nova-compute

‣困ったときは以下のOpenStackのbundleを参照

• https://jujucharms.com/openstack-base/

Page 15: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights ReservedCopyright © 2016 Bit-isle Equinix Inc. All Rights Reserved 15

使用したCharm (Contrail)

•Contrail‣ charm: cs:~sdn-charmers/trusty/contrail-configuration

‣ charm: cs:~sdn-charmers/trusty/contrail-control

‣ charm: cs:~sdn-charmers/trusty/contrail-analytics

‣ charm: cs:~sdn-charmers/trusty/contrail-webui

‣ charm: cs:~sdn-charmers/trusty/neutron-api-contrail

‣ charm: cs:~sdn-charmers/trusty/neutron-contrail

‣※by oil-ciと書かれたcharmもあります。Contrail2.2 に関しては問題なく動きましたが、2016/12時点では3.1対応はsdn-charmersのものしかされていないようでした。

(例) cs:~oil-ci/trusty/contrail-contrail-webui-2

Page 16: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights ReservedCopyright © 2016 Bit-isle Equinix Inc. All Rights Reserved 16

使用したCharm(その他)

•その他‣ charm: cs:trusty/mysql

‣ charm: cs:trusty/rabbitmq-server

‣ charm: cs:trusty/cassandra

‣ charm: cs:trusty/apache-zookeeper

‣ charm: cs:~sdn-charmers/trusty/apache-kafka

‣なるべく公式の物を使用

• ※kafkaについては 公式の物で動作確認できませんでした。

Page 17: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

使用したリポジトリ

各Charmではパッケージインストール時に必要に応じてリポジトリを追加します。

‣Canonical 公式

• http://archive.ubuntu.com/ubuntu

• http://security.ubuntu.com/ubuntu

‣Ubuntu Cloud Archive‣http://ubuntu-cloud.archive.canonical.com/ubuntu/

‣PPA

• OpenContrail

‣https://launchpad.net/~opencontrail/+archive/ubuntu/ppa

• Cassandra(3系は使用不可)

‣ "deb http://www.apache.org/dist/cassandra/debian 21x main"

‣ "ppa:cassandra-charmers/stable"

‣ "ppa:openjdk-r/ppa"

‣ローカルリポジトリ

• Contrail3.1系パッケージを集めてリポジトリを作成

17

Page 18: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights ReservedCopyright © 2016 Bit-isle Equinix Inc. All Rights Reserved 18

リポジトリ管理について

•Personal Package Archives (PPA) – Launchpad

•Aptly

Page 19: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights ReservedCopyright © 2016 Bit-isle Equinix Inc. All Rights Reserved 19

デプロイ結果(2016/12/9時点)

Contrail 2.2(OpenContrail PPA使用)

※Kafkaとの連携は不可

Contrail 3.1(ローカルリポジトリ使用)

※nova-common パッケージの不整合: Depends: nova-common (= 2:12.0.5-0ubuntu1~cloud0) but 2:13.0.0-0ubuntu2~cloud0.1contrail is to be installed

Neutron-Contrail 連携

Contrail-WebUIログイン

インスタンス起動

Contrail-Collector動作

Icehouse ○ ○ ○ ○(※)

Juno - - - -

Kilo ○ ○ ○ ○(※)

Neutron-Contrail 連携

Contrail-WebUIログイン

インスタンス起動

Contrail-Collector動作

Liberty ○ ○ ×(※) ×(※)

Mitaka ○ ○ ○ ○

Newton NewtonはXenialのみサポート(公式サイト)

Page 20: Contrail deploy by Juju/MAAS

Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved

使用したBundle

•以下のgithub リポジトリにて公開し、随時更新予定

‣https://github.com/i-kumagai/contrail-juju

20