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.

Whats service mesh & istio ?

BMXUGつきじ#6 k8s上のマイクロサービスを支える「Istio」発表資料です。

  • Login to see the comments

Whats service mesh & istio ?

  1. 1. Date :2018.3.16 Location :BMXUGつきじ#6 What’s Service Mesh & Istio ?
  2. 2. Profile Twitter:cyberblack28 Job Infrastructure Engineer Frontend Engineer Educational Solution Architect Community Hobby1: Music,Live,FES !! Hobby2: Take a picture !! https://www.flickr.com/photos/cyberblack ISBN-10: 4798155373 ISBN-13: 978-4798155371 第6章 Rancher2.0の 部分を執筆しました。 2018年3月15日発売
  3. 3. Rancher Partner Network 2017年7月からRancher Labsとパートナーシップを締結しました。 導入支援・教育サービスを提供します。
  4. 4. Agenda 1. What’s Service Mesh ? 2. What’s Istio ? 3. Istio Install 4. Information
  5. 5. What’s Service Mesh ? 2018: The Year of the Service Mesh CNCon & KubeCon North America 2017
  6. 6. What’s Service Mesh ? Make Microservices Easy(er) CNCon & KubeCon North America 2017
  7. 7. What’s Service Mesh ? そもそも、サービスメッシュって何?
  8. 8. What’s Service Mesh ? マイクロサービスが互いに 通信するネットワーク
  9. 9. What’s Service Mesh ? マイクロサービスって何?
  10. 10. What’s Service Mesh ? Monoliths & Microserviceのお話
  11. 11. What’s Service Mesh ? スケールアウト 複数の機能(サービス)を 1つのApplication (実行体)とする Application全体を複数のServerに複製 してスケールする Application Server Application Server Application Server Application Monoliths
  12. 12. What’s Service Mesh ? Microservice スケールアウト 個々の機能(サービス) を独立したプロセスで 実行させる Serverに各機能(サービス)を配備してスケールする Server Server Server Server
  13. 13. What’s Service Mesh ? マイクロサービスが互いに 通信するネットワーク サービスメッシュとは?
  14. 14. What’s Service Mesh ? Server Server Server Server このサービス同士が通信するネットワーク それがサービスメッシュ
  15. 15. What’s Service Mesh ? 数個のサービスであれば問題ないけど、 数百、数千、数万、数億のサービスメッシュとなると....
  16. 16. What’s Istio ? Istio
  17. 17. What’s Istio ? Microsoft Azure It’s similar ? SEABREEZE
  18. 18. What’s Istio ? Istioとは、 複雑なサービスメッシュの管理を 上手に行うためのOSS
  19. 19. ServerServer What’s Istio ? Server Server Sidecar Sidecar Sidecar Sidecar Service Mesh Control Plane Sidecar Data Plane
  20. 20. What’s Istio ? Official chart
  21. 21. What’s Istio ? Istio Component Category Component Description Data Plane Envoy サービスメッシュのイン/アウトバウントの全て のトラフィックを管理するプロキシサーバで、 KubernetesではPodのサイドカーとしてデプロ イ。 Control Plane Mixer Envoyを通して各サービスのデータを収集し、 その情報を元にアクセスコントロールを行うコ ンポーネント。 Control Plane Pilot サービスディスカバリやトラッフィック管理な どを担当。 Control Plane Istio-Auth ユーザ認証やサービス間のTLS相互認証等を担 当。
  22. 22. NodeNode What’s Istio ? Node Node Envoy Envoy Envoy Envoy Mixer Envoy Data Plane Pod Container Pod Container ContainerPod Pod Container Pod Container Istio - AuthIstio-Manager
  23. 23. What’s Istio ? • HTTP/1.1, HTTP/2. gRPC、およびTCPトラフィックの自動化されたZone間のロー ド・バランシング • 豊富なルーティング・ルール、耐障害性、フォールト・インジェクションを伴ったマイク ロサービス間通信の振る舞いに関する詳細なコントロール制御 • アクセス・コントロールやレイト・リミット、及び割り当てをサポートするプラガブルな ポリシー・レイヤーと設定用のAPI • クラスターへの全てのトラフィックのメトリクス、ログおよびトレースを自動化 • クラスター内での、強力なIDアサーションによるセキュアなサービス間認証の提供 Istioの主な特徴
  24. 24. Istio Install Istio環境の構築 Internet Terminal Manager Server kubectl Kubernetes Cluster Server ServerAgent Bookinfo RancherUI JaegerUI GCE GCE Bookinfo
  25. 25. Istio Install JAEGERについて • Uber社が開発し、Go言語で書かれ、OpenTracing仕様の分散トレーサー兼モ ニタリングツール • CNCF(Cloud Native Computing Foundation)のプロジェクト マイクロサービス、サービスメッシュ環境において、各サービスの挙動や性能な どを把握する上で分散トレーシングツールは必要不可欠です。JAEGER以外にも Zipkin、Appdashなどあります。
  26. 26. Istio Install Official Architecure Chart
  27. 27. Docker + Rancher + Kubernetes完成後のIstioインストールからの手順です。 Kubernetesクラスタ環境ができていれば問題ありません。 $ curl -L https://git.io/getLatestIstio | sh - 1.Istioダウンロード $ cd istio-0.0.6 2.Istioディレクトリ移動 $ export PATH=$PWD/bin:$PATH 3.PATH設定 $ kubectl apply -f install/kubernetes/istio.yaml 4.Istio Core Componentインストール Istio Install
  28. 28. Istio Install $ kubectl get svc -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingress LoadBalancer 10.43.164.179 35.190.227.164 80:30252/TCP,443:32497/TCP 2m istio-mixer ClusterIP 10.43.41.80 <none> 9091/TCP,15004/TCP,9093/TCP,9094/TCP,9102/TCP,9125/UDP,42422/TCP 2m istio-pilot ClusterIP 10.43.35.195 <none> 15003/TCP,8080/TCP,9093/TCP,443/TCP 2m 1.Service確認 $ kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ca-cd9dfbdbb-dmwfm 1/1 Running 0 6m istio-ingress-84c7ddcb7f-x7cln 1/1 Running 0 6m istio-mixer-67d9bd59cb-ffkdm 3/3 Running 0 6m istio-pilot-5dd75b8f7f-4lszq 2/2 Running 0 6m 2.Pod確認 3.Bookinfoアプリケーションインストール $ kubectl apply -f <(istioctl kube-inject --debug -f samples/bookinfo/kube/bookinfo.yaml) service "details" created deployment "details-v1" created service "ratings" created deployment "ratings-v1" created service "reviews" created deployment "reviews-v1" created deployment "reviews-v2" created deployment "reviews-v3" created service "productpage" created deployment "productpage-v1" created ingress "gateway" created
  29. 29. Istio Install $ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE details ClusterIP 10.43.131.189 <none> 9080/TCP 5m kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 31m productpage ClusterIP 10.43.212.118 <none> 9080/TCP 4m ratings ClusterIP 10.43.38.115 <none> 9080/TCP 5m reviews ClusterIP 10.43.116.15 <none> 9080/TCP 5m 4.Service確認 5.Pod確認 $ kubectl get pods NAME READY STATUS RESTARTS AGE details-v1-85d88d8d78-9qrbb 2/2 Running 0 11m productpage-v1-79d9b8f6fd-9njrx 2/2 Running 0 11m ratings-v1-5784cf4566-sltm9 2/2 Running 0 11m reviews-v1-8658f757b6-q84fn 2/2 Running 0 11m reviews-v2-74c77465d8-bn9bx 2/2 Running 0 11m reviews-v3-65d99d4694-txk9f 2/2 Running 0 11m $ kubectl get ingress -o wide NAME HOSTS ADDRESS PORTS AGE gateway * 35.190.227.164 80 12m 6.Ingress IP確認
  30. 30. Istio Install $ export GATEWAY_URL=35.190.227.164:80 7.export実行 8.Webブラウザアクセス http://35.190.227.164/productpage
  31. 31. Istio Install $ kubectl apply -n istio-system -f https://raw.githubusercontent.com/jaegertracing/jaeger- kubernetes/master/all-in-one/jaeger-all-in-one-template.yml 9.JAEGERインストール 10.RancherUIの上部メニュー「KUBERNETES」-「Infrastructure Stacks」選択
  32. 32. Istio Install 11.「kubernetes-ingress-lbs」で「Add LoadBalancer」を選択
  33. 33. Istio Install 12.以下設定を実施し、「Create」ボタンを押下 任意名を入力 「16686」と入力「16686」と入力 「jaeger-agent」を 選択
  34. 34. Istio Install 13.「16686/tcp」をクリック
  35. 35. Istio Install 14.「Jaeger UI」画面確認
  36. 36. Istio Install 15.Bookinfoアプリを数回リロードして、「productpage」を選択して、「Find Traces」Find Tracesボタンを押下
  37. 37. Information 参考サイト 1.Istio https://istio.io/ 2.Istio IBM https://www.ibm.com/blogs/solutions/jp-ja/ibm-google-lyft-give- microservices-ride-istio-service-mesh/ 3.Istio入門 その1 -Istioとは?- https://qiita.com/Ladicle/items/979d59ef0303425752c8 Istio The Service Mesh 1.Pattern: Service Mesh http://philcalcado.com/2017/08/03/pattern_service_mesh.html
  38. 38. Information 2018.04.19(Thu) @BELLESALLE KANDA お申し込み先 https://eventregist.com/e/containerdays1804/ticket rancherjp20 “20%OFF Promotion Code”
  39. 39. Information Training 4/20(Fri),5/7(Mon) 講師担当 お申し込み先 4/20(Fri) https://eventregist.com/e/containerdays1804training/ticket 5/7(Mon) http://eventregist.com/e/containerdays1804training2
  40. 40. Information Training カリキュラム Docker基礎 • サーバ仮想化について • Dockerの基礎技術~Linuxコンテナー~ • Dockerとは? • Dockerの基礎技術~Dockerイメージ~ • Dockerハンズオン~WordPressの環境作成~ • 参考図書・資料 • 仮想マシンの作成 • Dockerのインストール • Docker Hubからコンテナーイメージのpull • コンテナーの起動 • 起動したコンテナーの確認 • コンテナーとホストLinuxとの切替 • コンテナーの起動と停止 • DockerfileからWordPress環境作成 • コンテナーのcommit • コンテナーイメージをDocker Hubにpush • コンテナーのライフサイクル • 複数コンテナー • Docker Compose • docker-compose.ymlの内容 • .envファイルの内容 • 主なコマンド • コンテナーオーケストレーション Kubernetes(オーケストレーション) • kubernetesについて Worklad~Podについて~ Network~Serviceについて~ Storage~Volumeについて~ Storage~PersistentVolume(PV)とPersistentVolumeClaim(PVC)について~ Storage~StorageClass~ Storage~ConfigMapについて~ Storage~Secretについて~ オブジェクト識別~LabelとLabel Selectorについて~ オブジェクト識別~Namespaceについて~ • ハンズオン環境について • RKE(Rancher Kubernetes Engine)について • 仮想マシン作成とRKEインストール準備 • RKEのインストール • RKEでkubernetesクラスターの構築 • kubectlについて • kubectlのインストール • Helmについて • Helmのインストール • Prometheusについて • Prometheusのインストール • PrometheusとGrafana連携 • weavescopeについて • weavescopeのデプロイ • Guestbookアプリケーションについて • Guestbookアプリケーションのデプロイ • Ingressについて • Ingressの設定追加 • kubernetes dashboardについて • kubernetes dashboardのデプロイ Microsft Azure AKS • AKSについて • AKSでkubernetesクラスターの構築
  41. 41. Thank you for your attention !!

×