View
302
Download
1
Category
Preview:
Citation preview
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.
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
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
OpenStack Summit Barcelona
•Keynote session by T-Systems
•Contrail meetup
3
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
参考にした情報
4
https://github.com/tonyliu0592/opencontrail/wiki/Juju
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
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仮想サーバ
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
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
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
Jujuによるアプリケーションの管理(Bundle)
•個々のcharmはパラメータとリレーションを設定して使用する。
•これらの関係やパラメータを纏めて記載できるものとしてBundleがある。
•Charmはある程度自由度が高くそれを纏めて使用するためにbundle化して使用する
9
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
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を元にデプロイすると以下のようなコンポーネント配置となる。
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 用ノード
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" ]
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/
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
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については 公式の物で動作確認できませんでした。
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
Copyright © 2016 Bit-isle Equinix Inc. All Rights ReservedCopyright © 2016 Bit-isle Equinix Inc. All Rights Reserved 18
リポジトリ管理について
•Personal Package Archives (PPA) – Launchpad
•Aptly
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のみサポート(公式サイト)
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
使用したBundle
•以下のgithub リポジトリにて公開し、随時更新予定
‣https://github.com/i-kumagai/contrail-juju
20
Recommended