Cisco ACI CNI plug-in for Kubernetes

Kubernetes を ACI と連携して利用する環境の構築と動作を一通り確認頂ける DevNet Lab を使った学習記録
0
Takao Setaka @twtko

@CiscoDevNet#CiscoACI#kubernetes の組み合わせを、一切お手元に実機環境の用意をすることなく利用頂けるSandboxが用意されています(ただし要VPNクライアントのインストール)。DevNetログイン後Reserveして10分後にはすぐにお使い始めて頂くことができます。 devnetsandbox.cisco.com/RM/Diagram/Ind… pic.twitter.com/JlW53B3KtU

2018-11-26 08:18:00
拡大
Takao Setaka @twtko

@CiscoDevNet#CiscoACI + #Kubernetes Sandboxは、KubernetesノードはVMとして提供されますが、ACI Fabricは共有利用ですが実機環境がご利用頂けます。つまり、キチンと疎通確認などまでご確認頂ける、ということです。でも、Pod数には限度があります。おそらく今は48 podぐらい・ω・ pic.twitter.com/tdXY2PX9qT

2018-11-26 08:28:00
拡大
Takao Setaka @twtko

@CiscoDevNet #CiscoACI + #Kubernetes Sandboxの想定利用方法としては、じっくりとStep-by-stepで環境構築から動作テストまでを行うもよし、KubernetesやACIを概ね理解されている方向けにさっと構築や利用の流れを確認するもよし、さらにはAnsibleで構成をササッと作ってデモ利用するもよし、です。 pic.twitter.com/vq0mI41r7q

2018-11-26 08:38:00
拡大
Takao Setaka @twtko

@CiscoDevNet#CiscoACI + #Kubernetes Learning Labは基本的にはSandboxを使った学習・体験を想定していますが、ACI環境をお持ちでしたらお手元でもお試し頂けます。なので、ラボで利用するスクリプト等は全てGitHubに公開されています。 github.com/DevNetSandbox/… pic.twitter.com/nb3nuOC5Va

2018-11-26 08:48:00
拡大
Takao Setaka @twtko

@CiscoDevNet #CiscoACI + #Kubernetes Sandboxでお試し頂けるLearning Labでは、まだBetaですがかなりしっかりと環境構築〜アプリケーションの展開構成までをとても丁寧に学習・体験頂けます。全体で2モジュール/8ラボが用意されており、想定3時間ですがじっくりやるともっとかかるかも…です・ω・ pic.twitter.com/4QDRPbZ1r8

2018-11-27 08:18:00
拡大
Takao Setaka @twtko

@CiscoDevNet Learning Lab "Exploring the ACI CNI plug-in for Kubernetes"のモジュール1は"Installing and Setting Up Kubernetes and the ACI CNI plug-in"です。Sandboxを使っても使わなくても、 #CiscoACI と連携する #Kubernetes 環境、特にネットワーク周りの構成について詳細に確認頂けます。 pic.twitter.com/dfRylxqzAJ

2018-11-27 08:28:00
拡大
Takao Setaka @twtko

@CiscoDevNet Learning Lab "Exploring the ACI CNI plug-in for Kubernetes"のモジュール2は"Deploying #Kubernetes Applications and Managing Policy with #CiscoACI "です。構築環境を利用し、様々な粒度でACIを利用してKubernetesにネットワークとセキュリティを提供する方法を確認頂けます。 pic.twitter.com/mtPNXIIXc4

2018-11-27 08:38:00
拡大
Takao Setaka @twtko

@CiscoDevNet #CiscoACI + #Kubernetes Sandboxでは、1 Spine / 2 Leaf / 1 APICの最小構成ですが実機環境を使ってKubernetes連携をお試し頂けます。APICに対する権限は一部制限されていますが、実UIを通じて構成を確認頂けます。おそらくサンノゼにあるので、ちょっとレスポンスは遅め・ω・ pic.twitter.com/XpI1GosfT0

2018-11-28 08:18:00
拡大
Takao Setaka @twtko

@CiscoDevNet #CiscoACI + #Kubernetes Sandboxでは、DevBoxと呼ばれる操作環境と3台のKubernetes Node (Master + 2)がVMベースで提供されます。ネットワークはSandbox毎に個別に提供されますので、他の利用者を気にせずにご利用頂けます。 pic.twitter.com/ylHZqeUfyE

2018-11-28 08:28:00
拡大
Takao Setaka @twtko

#CiscoACI のコントローラであるAPICは、様々な仮想化・コンテナ環境と同時に連携することが可能です。 #Kubernetes との連携の場合でも複数のKubernetesと同時に連携できますので、 @CiscoDevNet のSandboxでも複数の利用者向けに1つのACI環境を共有して利用することになります。 pic.twitter.com/ipogqFCRRL

2018-11-28 08:38:00
拡大
Takao Setaka @twtko

@CiscoDevNet のLearning Labは学習・体験の場ですので、ホストのネットワーク構成も一通りは手作業で構成してみることが推奨されていますが、複数台のノードで同じ作業を繰り返すのも辛いですし、再度やり直したい場合などは面倒ですので、構成用のAnsible Playbookが一通り用意されています。 pic.twitter.com/Uhb7RxOXSI

2018-11-28 08:48:00
拡大
Takao Setaka @twtko

#CiscoACI + #Kubernetes の連携では、当然ながらKubernetesのノードがACI Fabric配下に接続されることになりますので、物理サーバを利用する場合でもVMを利用する場合でもノード自身もACIネットワークで把握し、必要に応じて通信制御を提供することが可能です。 pic.twitter.com/ByIQ0vS3ob

2018-11-29 08:18:00
拡大
Takao Setaka @twtko

#CiscoACI + #Kubernetes の連携では、コンテナ自身が利用するネットワーク自体はVXLANを使ってACI Leafとの間で通信を行います。実際にはOpenStack連携の場合と同様にOpen vSwitch + OpFlexによる通信制御が利用されています。ただし、管理通信とL4-L7連携の部分だけは管理上VLANベースです・ω・ pic.twitter.com/fXh2JSzpqP

2018-11-29 08:28:00
拡大
Takao Setaka @twtko

#CiscoACI + #Kubernetes の連携ではコンテナに対する通信制御に注目しがちですが、ACIでの連携ではMasterやNodeなどのKubernetesホスト自身に対する通信制御も適切に構成管理することができる点は、結構重要なポイントです。 pic.twitter.com/fGBCDv2U38

2018-11-29 08:38:00
拡大
Takao Setaka @twtko

#CiscoACI + #Kubernetes 連携において、ネットワークの接続性やセキュリティ管理は、物理は物理、コンテナはコンテナ、ではなく共通の方式で管理できる点はけっこう重要です。KはKubernetes、BはBaremetalを意味し、EPGと呼ばれるグループ間をC / Contractで通信ルールを定義します。外部接続も同様。 pic.twitter.com/0XJ8LNaEcd

2018-11-30 08:18:00
拡大
Takao Setaka @twtko

#CiscoACI + #Kubernetes 連携では、Kubernetesにおいて外部との接続のための重要な要素であるLoad Balancer部分についても、ACIのL4-L7連携機能を活用した実装となっています。各ノードに分散して実装されるLBへの通信の接続をACI側で制御することが可能です。 pic.twitter.com/sdpiduSJoP

2018-11-30 08:28:00
拡大
Takao Setaka @twtko

#CiscoACI + #Kubernetes 連携のSandboxでは実機環境が提供されていますので、実際にKubernetesで管理されたコンテナアプリケーションの動作を確認頂くことが可能です。ACI+Kubernetes環境を構築し終えてフロントエンドとバックエンドのコンテナに分離されたテストAppが動作したら、おめでとう!です。 pic.twitter.com/fAAr1pp2Qe

2018-11-30 08:38:00
拡大
Takao Setaka @twtko

#CiscoACI にとって、物理サーバであろうとVMであろうと、そしてコンテナであろうと、個別にIPアドレスを持つ要素はすべてそれぞれが1つのEndpointです。 #Kubernetes 連携の場合でも、きちんと個別のコンテナをEndpointとして識別してUIからも接続ステータスを把握頂くことが可能です。 pic.twitter.com/1hYuxIwvvf

2018-11-30 08:48:00
拡大
Takao Setaka @twtko

@CiscoDevNet のSandboxは予約して専有的に利用する環境と共有利用する環境の2種類がありますが、 #CiscoACI + #Kubernetes のSandboxは専有環境として提供されており、VPN接続した上でSSH接続でkubectlコマンドを利用したKubernetes環境の管理操作ももちろん可能です。 pic.twitter.com/E0QQNs8hFO

2018-11-30 08:58:00
拡大
Takao Setaka @twtko

先週はモジュール1の範囲、つまりは環境構築を主にTweetしてきましたが、今週はモジュール2の範囲、実際にKubernetes環境上にアプリケーションを展開するパターンについて見ていきたいと思います。 #CiscoACI#Kubernetes の連携では、3つのパターンでセキュリティを構成することができます。 pic.twitter.com/JP54HYr91b

2018-12-03 08:18:00
拡大
Takao Setaka @twtko

#CiscoACI + #Kubernetes のLearning Labでは、My Heroアプリが動作テスト用に利用されています。このアプリはマイクロサービスとして構成されており、UI / App / Data と分離された要素毎にコンテナ化することにより各種テストが可能で、こちらもGitHubに公開されています。 github.com/hpreston/myher… pic.twitter.com/3MiRkTkwJf

2018-12-03 08:28:00
拡大
Takao Setaka @twtko

My HeroアプリはフロントエンドにWeb UI (実際にはそれ以外も可)、バックエンドに投票アプリが動作し、別途データを持つコンテナが構成されている実装となっています。 pic.twitter.com/2kyoPLfpN2

2018-12-03 08:38:00
拡大
Takao Setaka @twtko

My Hero Appを展開するスクリプトとまっさらに戻すスクリプトも全てGitHubで公開されています。いくつも展開したり、何度もやり直したり、とても便利にお使い頂けます。 pic.twitter.com/gInHfc4bAf

2018-12-03 08:48:00
拡大
Takao Setaka @twtko

#CiscoACI#Kubernetes に対してClusterレベル、Namespaceレベル、そしてDeploymentレベルの3種類の隔離セキュリティをネットワーク側で提供します。デフォルトではCluster IsolationとしてCluster全体が1つのEPGにマッピングされます。 pic.twitter.com/bAiKPj8fy3

2018-12-04 08:18:00
拡大
Takao Setaka @twtko

#CiscoACI + #Kubernetes 連携において、External IPが構成されたコンテナについてはACI側でL3outの中でExternal EPGがホスト単位で構成されます。 pic.twitter.com/bTSL0NSyUv

2018-12-04 08:28:00
拡大