Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Istioサービスメッシュ入門 / Getting Started with the Isti...

Istioサービスメッシュ入門 / Getting Started with the Istio Service Mesh

Title: Istioサービスメッシュ入門
Slides for Hands-on Sessions at Azure Antenna Sept 11, 2018
Date: 2018.09.11

Moved from slideshare

Yoichi Kawasaki

September 11, 2018
Tweet

More Decks by Yoichi Kawasaki

Other Decks in Technology

Transcript

  1. Kubernetes: デファクト オーケストレーター ポータブル Public, private, hybrid, multi-cloud 拡張可能 Modular,

    pluggable, hookable, composable 自己回復(Self-healing) Auto-placement, auto-restart, auto-replication, auto-scaling
  2. Master VM Master VM Master VM Worker Node Worker Node

    Worker Node Worker Node Worker Node Worker Node
  3. kubectl apiserver Web UI etcd scheduler Controller manager kubelet kube

    proxy Container LB CLIコマンド ダッシュボード 永続化データ保持のためのKVS 認証、CRUD操作 Podのノード割り当て 各種コントローラー ノードごとの Pod管理 Service VIPアドレスのルーティング 外部からの アクセス https://kubernetes.io/docs/concepts/overview/components/ 全ての操作はapiserver経由で行われる API Container runtime kubelet kube proxy Container ノードごとの Pod管理 Service VIPアドレスのルーティング Container runtime
  4. Deployment ReplicaSet V1 Pod Pod Pod Deployment ReplicaSet v1 Pod

    Pod ReplicaSet V2 Pod Deployment ReplicaSet V2 Pod Pod Pod
  5. Azure Container Ecosystem IaaS PaaS Azure services SQL Database Redis

    Cache CosmosDB And more! Partner services OpenShift Pivotal Cloud Foundry Docker Enterprise Edition Mesosphere DC/OS Azure Azure Container Registry (ACR) OSBA Azure Kubernetes Service (AKS) ACS Engine Batch Azure Container Instances (ACI) Azure Virtual Machines Virtual Machine Scale Sets (VMSS) Service Fabric Virtual kubelet App Service
  6. マイクロサービスの設計: サービス間通信 https://docs.microsoft.com/ja-jp/azure/architecture/microservices/interservice- communication • 通信の回復性 • サービス間通信の回復力を高める設計パターン: リトライ、サーキットブレーカー •

    負荷分散 • シナリオに応じた負荷分散アルゴリズムの適用 • 分散トレース • 1トランザクションで複数サービス呼び出しを要する処理における一連の手順全体を 再構成するための相関 ID を伝達 • サービスバージョン管理 • 各サービスの複数バージョンの管理と特定バージョンへのルーティング • サービス間トラフィック暗号化 • TLS暗号化と相互TLS認証
  7. • サービスメッシュはサービス間通信を処理するソフトウェア レイヤーで、アプリに代わってネットワーク要求を送信する ヘルパー サービス • サービスメッシュが提供する代表的なネットワークサービス • トラフィック制御 •

    回復性、耐障害性処理 • 可視化、分散トレース • 認証、セキュリティ機能 https://github.com/istio/istio https://github.com/linkerd/linkerd https://github.com/runconduit/conduit
  8. Istioで利用されている主な機能 • Dynamic service discovery • Load balancing • TLS

    termination • HTTP/2 and gRPC proxies • Circuit breakers • Health checks • Staged rollouts with %-based traffic split • Fault injection • Rich metrics https://www.envoyproxy.io/ Envoy はKubernetes Pod内に Sidecarとしてデプロイされる “ENVOY IS AN OPEN SOURCE EDGE AND SERVICE PROXY, DESIGNED FOR CLOUD-NATIVE APPLICATIONS” https://www.envoyproxy.io/
  9. • defines the rules that control how requests for a

    service are routed within an Istio service mesh • defines policies that apply to traffic intended for a service after routing has occurred • configuration for load balancing, connection pool size from the sidecar, and outlier detection settings to detect and evict unhealthy hosts from the load balancing pool • can be used for scenarios like A/B testing, or routing to a specific version of a service Traffic Routing Configuration reference: https://istio.io/docs/reference/config/istio.networking.v1alpha3/
  10. Product page Mixer Pilot Citadel Ingress gateway Review V1 Review

    V2 Review V3 Ratings Details https://github.com/istio/istio/tree/master/samples/bookinfo https://istio.io/docs/examples/bookinfo/