Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20180123 rancher meetupyokohama_minehiko_nohara

529 views

Published on

2018年1月23日開催 Rancher Meetup #01 Yokohamaの資料です。

Published in: Technology
  • Be the first to comment

20180123 rancher meetupyokohama_minehiko_nohara

  1. 1. Rancher2.0への移行に向けて Minehiko Nohara Macnica Networks, Corp. 1
  2. 2. 本資料について 2 ・ 本資料に記載されている会社名、商品、サービス名等は各社 の登録商標または商標です。なお、本資料中では、「™」、「®」は 明記しておりません。 ・本資料は、出典元が記載されている資料、画像等を除き、弊社 が著作権を有しています。 ・著作権法上認められた「私的利用のための複製」や「引用」など の場合を除き、本資料の全部または一部について、無断で複製・ 転用等することを禁じます。 ・本資料は作成日現在における情報を元に作成されております が、その正確性、完全性を保証するものではありません。 免責事項
  3. 3. 自己紹介 • なまえ: 野原 峰彦 (のはら みねひこ) • 2006年にマクニカグループに入社 – 自社SaaSサービス開発担当 – Eメールアーカイブ製品担当 – Web Analytics製品担当 – 仮想分散型Firewall製品担当 – オーバーレイ型SDN製品担当 – Hyper Converged System製品担当 他 • 現在はWeb分離セキュリティ製品のMenlo Securityや、Kubernetes用のHCIの Diamantiを担当 3
  4. 4. マクニカネットワークスとは • “より優れた製品やサービスを” 私たちは世界から最高水準のテクノロジーをベースに、お客 様に最適のITソリューションを提供する技術商社です 4
  5. 5. ビジネスドメイン Enterprise IT Network Big DataSDx NFV Cloud Infrastructure Mobile Telecom Storage Security 5
  6. 6. ビジネスドメイン Enterprise IT Network Big DataSDx NFV Cloud Infrastructure Mobile Telecom Storage Security 一緒に働いていただける方、絶賛 募集中です! 6
  7. 7. マクニカのRANCHER利用ユースケース 振り返り 7
  8. 8. 製品の技術サポート業務の課題 • 多くの製品のサポートにおいて、解析ツール、監視ツールなどの 環境が必要 – 2006年ごろは毎回サーバーを物理で構築してアプリをインストール (1日がかりの作業) – 2010年ごろから仮想マシンで運用を開始するも、スケールやバックアップ、 リストア、利用可能なリソースの逼迫など、まだ課題は多かった – 2015年ごろより、徐々に環境をDockerに移行 • Zabbix、Nagiosなどの運用監視サーバー • Webサーバー • Squidサーバー • 各種DBサーバーなど • 取り扱い製品の一部をDockerイメージ化 8
  9. 9. Dockerを使うことで・・ • メリット – リソース削減 – ポータビリティ – 高速デプロイ – Dependency問題からの開放 • デメリット – 運用(デプロイメントや監視、スケール管理など) – 独自のコマンド – 永続データのバックアップ 9
  10. 10. Rancherとの出会い • 2015年春、OpenStack Summitのブースに立ち寄り、製品を知った – 当時からコンセプトは非常に優れていたが、当時はあまり安定していなかった印象。 • 2016年夏ごろ、社内エンジニア向けDocker Private Cloud構築がプロジェクト化 – RancherのGAリリースを知り、評価の結果、Rancher 1.1による構築を決定。 • 2016年10月末から社内でのサービス提供開始! – エンジニアの一時利用のPaaSに特化して提供 10
  11. 11. Rancherとは? • コンテナのデプロイから運用管理を一元的にWeb GUIから実行できるソフトウェ ア。 • Dockerのホストとしてオンプレだけでなく、さまざまなクラウド上のホストとの連携 や自動プロビジョニングをサポートする。連携やプロビジョニングのための操作も 非常にシンプル。 • ソフトウェアはdockerイメージでも提供されているため、dockerが入ったマシンが あれば誰でも無料で簡単に使うことができる。 11 オンプレ クラウド ・・and more
  12. 12. マクニカ Dockerクラウド: App as a Service • Rancherが提供するWeb UIで簡単操作! 12
  13. 13. マクニカDockerクラウド構成 • ユーザーインターフェイスはRancher1.1からスタートし、現在は1.5.6 • Appカタログは、Privateカタログを利用 – 信頼されたOfficialイメージはDocker HUBより取得 – オリジナルのイメージは原則オンプレのDockerレジストリより取得することで、問 題のあるアプリの利用を極力避ける • Docker HostはUbuntuおよびCoreOSを利用 – Quota(リソース制限)を目的として、Docker Hostはユーザーごとに独立したもの を提供 – 仮想環境上に構築しているため、リソースはオーバーコミット前提 – ユーザー自身によるホストの追加も可能 • 各ホストのバックアップはNutanixのスナップショット機能を利用 13
  14. 14. カタログ2 マクニカDockerクラウドの構成 社員A 社員B 社員C 社員D Docker Hub GitHub.com自社作成イメージ系 信頼性の高いオフィ シャルなイメージなど イメージ取得 イメージ取得 カタログ1 Docker Registry Ubuntu Ubuntu Ubuntu Ubuntu Backup Backup GitHub Enterprise Prism + vSphere 14
  15. 15. RancherのPrivateカタログ • Docker-composeベースのyamlファイルで記述 • Rancher-composeと組み合わせて、UIからの変数の代入が可能 • ローカルのレジストリを利用する場合はimageに指定する 例: dockerrepo.macnica.net:5000/noharaimage:latest ※ composeファイルはバージョンごとに用意するため、バージョン に応じてレジストリを変更することも可能。 15
  16. 16. Rancher利用のメリット • 利用したいアプリケーションを瞬時に起動できる – Dockerの知識や面倒なインストール作業は不要。 • Dockerコンテナの中のshell画面にGUIから簡単にアクセス – dockerコンテナが稼動しているホストを探す必要がない – ホストにログインして、コマンドでコンテナIDを探したり、コンテナの中 に入るためのコマンドを実行するような手間がない • 必要に応じてLBなどのインフラを容易に追加できる 16
  17. 17. RANCHER2.0へ! GAリリース後のマイグレーションに向けて 17
  18. 18. 前提条件 • 現状はまだTechPreview版しか提供されていないため、ベータ またはGA版リリース後に追加テストを実施の上、環境を移行す る • TechPreview版ではRBACなど一部の機能制限があるため、 ベータまたは GA版リリース後に再検証する 18
  19. 19. 背景(モチベーション) • Rancherを利用し続けるために、いずれUpgradeは必須 • 社内では既にKubernetesクラスタが動作している – Kubernetesナレッジの活用/蓄積 – 既存クラスタの管理の統合 – Rancher上で既存のpodスペックファイルが利用できる – Kubernetesを利用した製品との連携 19
  20. 20. kubernetesとは • コンテナのオーケストレーションツールで、デプロイやスケール管理、リ ソース管理、セルフヒーリングを行う、Googleが開発したOSS。 – 複数台のノードをクラスタ化してコンテナを展開することが可能。 – MesosphereのDC/OSや、Docker Swarmが競合としてよく比較されていた。 • K8s(k+8文字<ubernete>+s)とも呼ばれる。 • ギリシャ語で船の操縦士の意味の言葉。 • 現在はDocker社を含む多くの製品がkubernetesをサポートし、事実上コン テナオーケストレーターのスタンダードになったといわれる。 • Rancherも独自のオーケストレーター(Cattle)を提供していたが、version2.0 からはKubernetesをサポートする。 20 ①②③④⑤⑥⑦⑧
  21. 21. Rancher2.0 21
  22. 22. 評価のポイント • 既存環境と同等の機能が提供できること – マルチテナンシーとQuota – Privateカタログの利用 – Docker Registryの利用 ※マクニカのユースケースでは、データの引継ぎは不要 • 拡張として期待すること – 既存のPodスペックファイルが利用できる – Kubectlによるpod管理ができる – 他のkubernetesクラスタの統合管理ができる 22
  23. 23. 評価の結果 • 既存環境と同等の機能が提供できること – マルチテナンシーとQuota 現状はテストできない (CLIでnamespaceは作成できるが、 Rancherには反映されない模様) – Privateカタログの利用  OK – Docker Registryの利用  NG • 拡張として期待すること – 既存のPodスペックファイルが利用できる  OK ただし、一部動かせていないものも – Kubectlによるpod管理ができる  OK – 他のkubernetesクラスタの統合管理ができる OK ただし、期待動作までは至らず一旦 保留 ※ 限られた時間内での評価であるため、原因を調査し切れていない結果である点、ご了承ください。 23
  24. 24. 既存環境と同等の機能 評価結果1 24
  25. 25. マルチテナンシーとQuota • マルチテナンシーはTechPreview版の制限(GA後は出来る前 提でよい) • Quotaは現状の仮想マシン分割の方式化に加え、Kubernetes のQuota機能も選択肢となる想定 25
  26. 26. Privateカタログの利用 • Privateカタログは問題なく動作!コンテナも正常起動する。 26
  27. 27. Docker Registryの利用 • コンテナが起動/終了を繰り返す状態に(未解決) – 同じイメージをdocker hubから起動すると問題ない – レジストリからイメージのPullは出来ている – PODが作成され、Runningになるが、すぐにStopし、また起動。これをずっ と繰り返している状態。コンテナにはアクセスできず。 – Beta以降で再度テスト。 – Starting Running Stopped 27
  28. 28. 「既存環境と同等の機能」としては概ね良さそう • マルチテナンシーとQuota – マルチテナンシーはTechPreview版の制限であるため、GA版での正常動作に 期待 – Quotaは、マルチテナンシーが動作すれば、現在のホスト分割方式で問題ない。 • Privateカタログの利用 – docker-composeで作成したカタログがそのまま動いたことで、非常に安心した。 • Docker Registryの利用 – これは環境の問題もあり得る。Beta以降にもう少し調査する。 全般には動作は非常に安定しているため、好印象。 Docker registryのみ解決が必要。 28
  29. 29. 拡張として期待すること 評価結果2 29
  30. 30. 拡張として期待すること • Podスペックファイルの利用について – 一部を除き、社内で利用するものが問題なく利用できた • PersistentVolumeについては正しく動作せず、調査が必要。 • RancherのStackの定義方法が良くわからない。 • Kubectlの利用について – 可能 • UIからアクセスするか、kubectl-shellのコンテナにログインして実行。 • デフォルトがcattle-systemというnamespaceになっているので、--namespaceオプショ ンでdefaultを指定したり、--all-namespacesオプションなどを利用する。 (Rancherとして、current-contextを設定してよいのかどうか未確認) 30
  31. 31. 既存のPodスペックファイル • Kind:replicationcontroller  デプロイ可能 • Kind:deployment  デプロイ可能 • Kind:service  デプロイ可能 • Kind:persistentvolume  NG • Kind:persistentvolumeclaim  NG (パラメータの問題かも?) ※ 今回の評価では、上記以外は未検証 31
  32. 32. Kubectlの利用 • Container>Advancedの画面からLaunch kubectlボタン 32
  33. 33. 気になった点(今後確認) • Kubectlで稼働中のpodスペックから抜粋した次のパラメーターを設定して も、やはりstackはDefaultになる(パラメーターが足りない?) – annotations: io.rancher.stack.name: io.rancher.stack_service.name: – PodスペックファイルをインポートしたときにGUIで指定したStackが、空のまま残る (消えない) • YamlでNamespaceを指定するとエラーになる(作成したnamespaceがダッ シュボードで選択できず) – Failed to apply Kubernetes resource ReplicationController/nginx: exit status 1 (error: the namespace from the provided object "nohara" does not match the namespace "default". You must pass '--namespace=nohara' to perform this operation. ) 33
  34. 34. 他のKubernetesクラスタの統合管理 • Kubernetesを効率的かつ高パフォーマンスで安定利用するた めの、分散ストレージを搭載したHCI製品を管理対象に。 – Kubernetes自体を便利に使えるものではない – Rancherと連携でき、POD管理が簡易にできれば・・ 34
  35. 35. 対象製品のkubernetesクラスタの管理 • 起動中のPODが全てRancherから見えるようになった。 • 起動中のPODのShellにRancherのWeb UIから直接アクセスで きるようになった。 • Web UIからyamlをUploadしてPODを起動することができるよう になった。 • 本製品に対しては、PersistentVolumeもデプロイできた。 – 本製品とのインテグレーションにより、永続データの利用も可能に。 35
  36. 36. PODの状態管理や再起動、shellへのアクセス 36
  37. 37. まだ出来ていないこと • カタログからのアプリ起動 – 本製品のネットワークを利用するためにはpodスペックファイル上の annotationsでネットワーク名を指定する必要がある。 – Rancher2.0のGA版リリース以降、ナレッジなどを見ながら方法を模索 し、テストする。 • できればカタログでPODスペックファイルも利用したい。 37
  38. 38. RANCHER2.0のインストール Tips 38
  39. 39. TechPreviewのインストール • インストールはdocker版を使えば非常に簡単 https://rancher.com/rancher2-0/ $ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:preview • 数分程度でRancherサーバーが起動し、使える状態になる。 • Dockerが利用可能なLinuxマシンで実行 – Ubuntu 16.04 (kernel v3.10+) または RHEL/CentOS 7.3 – 4GB以上のメモリ、 80GB以上のローカルストレージが利用可能 39
  40. 40. Rancher2.0のインストールでハマったところ • インストール直後、コンテナが全てエラーになる 40
  41. 41. よく見ると、systemのPODの一部でエラー • IPSECのPODがエラーになる – System error: mountpoint for devices not found – https://github.com/moby/moby/issues/14353  上記URLで紹介されているスクリプトで解決可能 https://github.com/tianon/cgroupfs-mount • kubectl-shellのPODが起動しない – Waiting for a pod to・・のまま、数時間放置しても変わらず。 – https://github.com/rancher/rancher/issues/9951  対象環境のDockerのバージョンが1.13.xで、k8s1.7がサポートしていないために発 生していた。 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG- 1.7.md#external-dependency-version-information • Dockerを1.12.6にダウングレードしたところ、IPSECの問題も発生しなくなった 41
  42. 42. ヘルスチェック • NamespaceにSystemを選択した状態でContainerの一覧を見る。 42 全てがActiveまたは Healthyになっている 今回異常が見られたのは Ipsec と Kubectl-shell
  43. 43. 今回Rancher2.0を評価した環境 • OS: Ubuntu 16.04 LTS • Docker: 1.12.6 • Rancher: 2.0 alpha-10 (kubernetesは17.6) 43
  44. 44. QUESTIONS? 最後に 44
  45. 45. Thank you M.Nohara 45

×