Upload
builiem
View
255
Download
1
Embed Size (px)
Citation preview
1
2016年12月7日
Yahoo! JAPAN
{ytatsumi, tasogabe}@yahoo-corp.jp
Kubernetes を使って OpenStack
の運用管理を進化させよう!
- Kolla-Kubernetes のご紹介 -
Agenda
• Yahoo! JAPAN ご紹介
• OpenStack運用の課題
• Docker(Kolla)で解決出来ること
• Kubernetesで解決できること
2
自己紹介 (1)
3
立見 祐介 (Yusuke Tatsumi)
Yahoo! JAPAN にて、production NW構築・運用に従事。最近はOpenStackプライベートクラウドの仮想ネットワークの検証・構築を行なう。得意技: ケーブリング(物理・仮想)
自己紹介(2)
曽我部 崇 (Takashi Sogabe)
Yahoo! JAPAN にて、OpenStackプライベートクラウドの運用・管理を効率化するための技術開発に従事
得意技: AWS(OpsWorks, CodeDeploy etc.)
4
Yahoo! JAPAN ポータルサイト Overview
5
Yahoo! JAPAN ポータルサイト Overview
6
Monthly Page Views
69+ Billion
http://i.yimg.jp/i/docs/ir/archives/present/2016/jp160728presentation.pdf
http://hr.yahoo.co.jp/infographics/
Monthly Page Views
(Only Smartphone)
39+ Billion
Apps Total Download
380+ Million
Number of services
100+
OpenStack Private Cloud でも、主要なサービスを提供中!
0
5
10
15
20
25
1 year ago Half year ago Today
vCPU (x10k)
Memory (x10TB)
Block (x1PB)
急増するYahoo! JAPAN の ワークロード
急激な利用増加により、Networkを始め安定性の向上が課題となる
”density growth” in HV
7
• YoYでリソース2倍• 利用増加• クラスタ数の爆増
OpenStack 運用の課題 (1)
• Juju/MAAS, Triple-O, Fuel• 初期インストールは簡単になった
• 運用は必ずしも楽にならない• Security Fix• Update• OpenStack Clusterの成長
8
OpenStack 運用の課題 (2)
• OpenStack• クラウドネイティブアプリを開発・運用
できるプラットフォーム• アプリ開発者は大幅に生産性が向上
• OpenStack自体の運用• 旧来の力技運用(ペットのように扱う)• OpenStack Engineer の生産性は以前
と変わらず
9
OpenStack 運用の課題 (3)
• クラウドネイティブの世界• CI/CDパイプライン• ELKスタック等へのログ集約、サー
ビスのメトリクスモニタリング• Design for Failure etc.
10
11
UPDATE OpenStack運用管理
OpenStack CI/CD パイプライン
• CI/CDパイプラインを回すことで、品質の安定とクラスタの進化を加速
12
Commit BuildUnit
TestDeploy
System
Test
Deploy
(Prod)
Measure/
Validate
Production Feedback
TempestRallyTox
Yahoo! JAPAN の取り組み
• OpenStackのコントローラをKubernetes上にデプロイする• https://techblog.yahoo.co.jp/infrastructure/os_on
_k8s/
• OpenStack の Controller 部分を k8s 上に載せるのは難しくない
• ただし、プロダクションレベルでの運用やCompute / Network ノードを扱うには様々な考慮が必要
13
Kolla
14
Kolla
• Docker を用いて OpenStack のCI/CDプロセスを実現
• Mission Statement• Kolla provides production-ready
containers and deployment tools for operating OpenStack clouds.
15
Kolla メリット
• Deployが簡単• Docker Container を用いて素早く
Deploy
• 運用が簡単• Ansible を用いたコンフィグ管理
16
Kolla Architecture
17
OpenStack
Service Containers
Infrastructure Engineering
CI
CD
Ansible Registry
Docker
OScgroups namespaces
Host #n
Quick Start Guide (1)
• Vagrant + VirtualBox• http://docs.openstack.org/develo
per/kolla/vagrant-dev-env.html
18
Quick Start Guide (2)
19
$ git clone -b stable/newton
https://github.com/openstack/kolla kolla-
newton
$ cd kolla-newton/dev/vagrant
$ vi Vagrantfile.custom
$ vagrant up
Quick Start Guide (3)
20
PROVIDER="virtualbox"
PROVIDER_DEFAULTS = {
virtualbox: {
centos: {
bridge_interface: "en0: Wi-Fi (AirPort)",
base_image: "centos/7",
sync_method: “virtualbox",
kolla_path: "/home/vagrant/kolla"
}
}
}
Vagrantfile.custom: (Mac + VirtualBoxの例)
Quick Start Guide (4)
• Guest OS に CentOS(Default)を使う場合は、次の patch を Vagrantfileに当てる必要があります。• masterでは修正済
21
$ cd /path/to/kolla-newton/dev/vagrant
$ patch_id=dcb102608d05d20c58c7340f948c94dd4b6da971
$ git diff $patch_id^ $patch_id > 00patch.txt
$ patch -p4 < 00patch.txt
Quick Start Guide (5)
• Vagrant および VirtualBox をインストールした後に、次のプラグインをインストール
22
$ vagrant plugin install vagrant-hostmanager vagrant-vbguest
Quick Start Guide (6)
• Image のビルド
23
$ kolla-build
• Image のデプロイ
$ sudo kolla-ansible deploy
Quick Start Guide (7)
• RDO の version 指定をするには?• /etc/kolla/kolla-build.conf 内に
rpm_setup_config を指定する
24
rpm_setup_config = http://trunk.rdoproject.org/centos7-
mitaka/current/delorean.repo,http://trunk.rdoproject.org/c
entos7-mitaka/delorean-deps.repo
/etc/kolla/kolla-build.conf (mitaka 例)
Kolla Notes
• Ocata(次期リリース)以降、Kolla は“Kolla” および “Kolla-Ansible” の2つに分離される• Kolla• Docker image のビルド
• Kolla-Ansible• Docker image のデプロイ (Ansible)
25
Kolla Design (1)
• Node type毎に deployされるサービスが異なる• Controller
• APIやDB等、OpenStack Controller• Network
• neutron-agent• Compute
• nova-compute• Storage
• cinder volume (LVM or ceph-osd)
26
Kolla Design (2)
• Docker の設定• Networking• net=host が用いられる
• Storage• Storage Driver: defaultの devicemapper だ
とI/O性能が出ないため、aufs または btrfsへの変更が推奨されている
• Docker host 上の /var/lib/docker 以下にボリュームが保存される
27
Kolla Design (3)
• Under Cloud の構築• Bifrost• スタンドアロンで動作する Ironic• kolla-ansible コマンドにて deploy できる• http://docs.openstack.org/developer/koll
a/bifrost.html• MAAS, Cobbler• Docker Host を構築するだけで良いため、
比較的簡単に作りこめるはず
28
Kolla が向いているケース
• OpenStack クラスタサイズが頻繁に増加しないと見込まれる環境• DockerでCI/CDを回したい• Ansible を用いたインベントリ管理
で十分• 今すぐ使いたい
29
Kolla-Kubernetes
(Kolla-k8s)
30
Kolla-Kubernetes
• Kolla-Kubernetes (Kolla-k8s)• Kolla Container を Kubernetes上
で動かす
31
Kubernetes が得意なこと
• Statelessなアプリの運用管理• Front: Nginx、Backend: RDSや
DynamoDB 等のクラウドサービス環境にフィットする
• Scale Up, Scale Down• Rolling Upgrade
32
Kubernetes が苦手なこと
• Stateful なアプリの運用管理• MySQL や RabbitMQ のように、バック
エンドストレージが必要であったりノードの追加・削除に別途ロジックが必要なものは 実装に工夫が必要
• 特定ホスト上に固定して実行する必要があるアプリ
33
OpenStack on k8s
• 苦手な Statefulアプリをうまく料理できれば、Kubernetesの良さ(Scalability, Manageability)をOpenStackでも味わえる!• MySQL• RabbitMQ
34
Kolla-Kubernetes の特徴
• Stateful component (MySQL, RabbitMQ) を扱える
• nova-compute を扱える• Workflow tool の形で提供される
• Ansible (~Newton)• Operators/Helm (Ocata~)
35
Quick Start Guide
• 2016/11現在、Quick Start(Vagrant等) する方法はありません
• Ocataリリースに向けてアーキテクチャの全面刷新を進めています
• 2016/11現在、動作するコードはmaster上にありません
36
Kolla-k8s Design (Ocata)
http://bit.ly/2gx9J0Z• Kubernetes Operators
• http://bit.ly/2eEVYs2• Stateful ソフトウェア等、複雑なオペレーショ
ンが必要なアプリを k8s 上で運用するためのロジックを実装
• Helm Package• http://bit.ly/2gx9KCf• k8s package manager
37
Kolla-k8s Design
• Under Cloud(k8s cluster) の構築• Public Cloud(AWS, GCE)向けの
Deployment Tool は充実している• kube-deploy• kops
• Bare Metal でも使えそうなものは少ない• halcyon-kubernetes• Juju/MAAS
38
Kolla-k8s 課題 (1)
• Kubernetes cluster の安定運用• cluster 自体の upgrade ができる?• High Availability 構成で運用できる?• 適切にclusterを構成しないと、新たな複雑さ
を OpenStack にもたらすだけになる• 安定運用できれば、OpenStack をk8s上に載
せることで Scalability, Manageability のメリットが得られる• OpenStack Controller のみ Public Cloud上に
デプロイするのは良い考えかもしれない
39
Kolla-k8s 課題 (2)
• Kolla-k8s には課題が沢山• ご興味がある人は、是非contribute
してください!• https://blueprints.launchpad.net/k
olla-kubernetes
40
まとめ
• Kolla や Kolla-Kubernetes を使うと得られるメリット• OpenStack をクラウドネイティブア
プリのように開発・運用できる• Kolla-kubernetes についてはOcata
に向けて開発進行中41
参考情報
42
OpenStack on Kubernetes (1)
• Fuel CCP• https://github.com/openstack/fuel-ccp
• Document• http://fuel-ccp.readthedocs.io/en/latest/
43
OpenStack on Kubernetes (2)
• Stackanetes• https://github.com/stackanetes/sta
ckanetes• Newtonにて、 tech review がリリース
された• http://bit.ly/2gASprT
• コンテナエンジン: rkt
44
OpenStack on Kubernetes (3)
• OpenStack-helm• https://github.com/sapcc/openst
ack-helm• Helm を用いて OpenStack を
Deploy できる
45