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.

フォーラム資料(2018/01/19) Calico検証PJ Istioの紹介

745 views

Published on

沖縄オープンラボラトリ フォーラム資料(2018/01/19) Calico検証PJ

Published in: Business
  • Be the first to comment

  • Be the first to like this

フォーラム資料(2018/01/19) Calico検証PJ Istioの紹介

  1. 1. Project Calico Usecase ServiceMesh-Istio Testbed WG Calico検証PJ 2018/1/19
  2. 2. Okinawa Open Laboratory 2 Agenda  Istioご紹介  Istioとは  Istio Architecture  Istio with Calico  なぜIstioにCalicoが必要なのか  Istioデモ
  3. 3. Okinawa Open Laboratory 3 Istioご紹介
  4. 4. Okinawa Open Laboratory 4 なぜIstioを調べたか  Calico検証を通してKubernetesなどのコンテナネットワークに向いて いることがわかってきた  KubeCon(2017/12)でもIstioが盛り上がっている  Calicoを開発しているTigeraがTigera CNXを発表した  Tigera CNXはKubernetes+Calico+Istio
  5. 5. Okinawa Open Laboratory 5 マイクロサービス開発における問題 アプリケーションがマイクロサービスで開発されるケースが増えてきた サービスメッシュの規模と複雑さが増すにつれて 一元的な監視/管理/セキュリティが難しくなってきた サービスメッシュとは: マイクロサービスアーキテクチャのサービス間を相互接続するネットワーク
  6. 6. Okinawa Open Laboratory 6 なぜ難しいのか  ネットワーク  トラフィックフローやサービスへのロードバランスをどう管理するか  認証・認可/セキュリティ  サービス間での認証・認可  サービス間のトラフィックをどのように保護するか  監視  全てのサービスをどのように監視するか  ボトルネックになっているサービスをどう見つけるか  障害回復  サービスを開発する全てのチームがリトライやエラーハンドリング、サーキットブレー カーを再実装するのか  クロスプラットフォーム対応  カナリアリリース、ブルーグリーンデプロイメント  サービスを跨ぐトレーシング
  7. 7. Okinawa Open Laboratory 7 Istioとは  Istioとは  サービスメッシュを一元的に管理するためのオープンプラットフォーム  接続: 障害回復、サービスディスカバリー、ロードバランシング  管理: トラフィック制御、ネットワークポリシー制御  監視: 統計情報収集、ログ、トレーシング  セキュア: エンドツーエンドの認証・認可  Istioの目的・Istioを使うと何が嬉しいか  アプリケーション開発者がサービスメッシュの機能を考えなくて良い  サービスのサイドカーとして動作するため、アプリケーションコードに手を 加えることなくサービスメッシュに必要な機能を提供する
  8. 8. Okinawa Open Laboratory 8 Istioアーキテクチャ概要  Envoy  サービスディスカバリ、ロードバランシング、TLS終端、HTTP2/gRPCプロキシ、 ヘルスチェック、メトリクスなど  Mixer  アクセスコントロール  テレメトリ  Pilot  サービスディスカバリ  インテリジェントルーティング  A/Bテスト  カナリアリリースなど  障害回復  タイムアウト、リトライ  サーキットブレーカーなど  Istio-Auth  サービス間とエンドユーザへのTLS認証 Istio-AuthMixerPilot EnvoyEnvoy Microservice A Microservice B Client / External service データプレーン コントロールプレーン Pod Pod
  9. 9. Okinawa Open Laboratory 9 Istio with Calico
  10. 10. Okinawa Open Laboratory 10 Istioポリシーとネットワークポリシー  Istioポリシーとネットワークポリシーの違い  Istioポリシーの不足点  セキュリティとしてEgressポリシーは重要だが、Istioポリシーはpod内に同じ ネームスペースのIstioProxy(Envoy)を配置することで実装しているため、不正 行為を行った場合IstioProxyをバイパスしIstioポリシーが施行されない場合が ある レイヤ ポリシー種別 施行ポイント 実装 L7 Istio Policy Pod Userspace App (Envoy) L3-4 Network Policy Kubernetes Node Kernel (iptablesなど) Envoy Microservice Pod Kubernetes Node Node内 ネットワーク 凡例 Linux Kernel Router サービスメッシュ ネットワーク コンテナ Istioポリシー 実施ポイント Kubernetesポリシー 実施ポイント トラフィック
  11. 11. Okinawa Open Laboratory 11 Pod A Pod B Pod C ネットワークポリシーの役割 EnvoyEnvoy Microservice A Microservice B Kubernetes Node  Istioのポリシーでは防げないIPレイヤーの攻撃に対しネットワークポリシ ーを使用する ①Istio管理外ポッドへのL3,4攻撃 (アクセス先のIP/アクセス元のIPを制限) ②保護されたポッドへのL3,4攻撃 (アクセス先のIP/アクセス元のIPを制限) ③メッシュ外サービスへのL3,4攻撃 (アクセス先のIPを制限) など Microservice C Node ネットワーク VM 凡例 Linux Kernel Router サービスメッシュ ネットワーク ① ② ③ コンテナ
  12. 12. Okinawa Open Laboratory 12 デモ
  13. 13. Okinawa Open Laboratory 13 デモ内容  環境について  Kubernetes + Calico + Istio環境を使用する  IstioにデプロイしたマイクロサービスのBookinfo(サンプルアプリケーシ ョン)を使用する  デモ内容  Istioのインテリジェントルーティングにより、ユーザーごとにアクセス するサービスを変える  Kubernetesのネットワークポリシーにより、Podに対して特定Pod以外 はアクセス不可にするデモを実施
  14. 14. Okinawa Open Laboratory 14 Bookinfoとは
  15. 15. Okinawa Open Laboratory 15 Bookinfoとは
  16. 16. Okinawa Open Laboratory 16 デモ環境  テストベッド環境に構築したKubernetes + Istio環境を使用  KubernetesデプロイしたSampleアプリケーションを使用 物理サーバー Kubernetes(Calico) + Istio 192.168.28.0/24 eth0 192.168.28.56 凡例 仮想サーバー 物理サーバー V P N 192.168.122.0/24 192.168.122.121/24 Bookinfo
  17. 17. Okinawa Open Laboratory 17 デモ インテリジェントルーティング  WEBブラウザのreview部分は各コンテナにラウンドロビンされるため表示 内容が毎回変わる  ログインユーザーにより振り分けられるコンテナを指定するRouteRuleを設 定する(OOLユーザーのアクセスはv3に固定される確認を行う) apiVersion: config.istio.io/v1alpha2 kind: RouteRule metadata: name: user-ool-v3 Spec: destination: name: reviews precedence: 2 match: request: headers: cookie: regex: “^(.*?;)?(user=ool)(;.*)?$" route: - labels: version: v3 Bookinfo 一般ユーザ ool
  18. 18. Okinawa Open Laboratory 18 デモ ネットワークポリシー  Kubernetesはデフォルトではネットワークポリシーを設定していないため すべてのPodはL3,L4で疎通可能(全てのコンテナへの攻撃が可能な状況)  設計上通信の必要なPod以外から の通信を拒否するL3ポリシーを 設定する (ポリシーによりcurlが不可になる 確認を行う)
  19. 19. Okinawa Open Laboratory 19 参考情報
  20. 20. Okinawa Open Laboratory 20 Calico Applycation Layer Policy  Calicoではまだ機能制限は多いがネットワークポリシーだけでなくア プリケーションポリシーも制御できる機能を開発している apiVersion: projectcalico.org/v3 kind: GlobalNetworkPolicy metadata: name: customer spec: selector: app == 'customer' ingress: - action: Allow http: methods: ["GET"] egress: - action: Allow
  21. 21. Okinawa Open Laboratory 21 Q&A
  22. 22. Thank you

×