Install

https://istio.io/latest/docs/setup/getting-started/

❯ istioctl version
client version: 1.8.2
control plane version: 1.8.1
data plane version: 1.8.1 (2 proxies)

Install 時の profile. サンプル動かす程度なら domo で, 実運用ならとりあえず default でいいみたい。

https://istio.io/latest/docs/setup/additional-setup/config-profiles/

Exsample

bookinfo

https://istio.io/latest/docs/examples/bookinfo/

default namespace に上げられた Pod に自動でラベル付けする

kubectl label namespace default istio-injection=enabled

反映するアプリの Deployment 定義は普通のものそう

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

反映直後(Ready 0/2 だけどあってんの?

❯ kubectl get po
NAME                              READY   STATUS            RESTARTS   AGE
details-v1-558b8b4b76-8dhl6       0/2     PodInitializing   0          24s
productpage-v1-6987489c74-wfzzt   0/2     PodInitializing   0          23s
ratings-v1-7dc98c7588-l2ndf       0/2     PodInitializing   0          24s
reviews-v1-7f99cc4496-ct89l       0/2     PodInitializing   0          23s
reviews-v2-7d79d5bd5d-qp2tq       0/2     PodInitializing   0          24s
reviews-v3-7dbcdcbc56-xdt6p       0/2     PodInitializing   0          23s

2 分ぐらいで Runninng へ

❯ kubectl get po
NAME                              READY   STATUS    RESTARTS   AGE
details-v1-558b8b4b76-8dhl6       2/2     Running   0          2m7s
productpage-v1-6987489c74-wfzzt   2/2     Running   0          2m6s
ratings-v1-7dc98c7588-l2ndf       2/2     Running   0          2m7s
reviews-v1-7f99cc4496-ct89l       2/2     Running   0          2m6s
reviews-v2-7d79d5bd5d-qp2tq       2/2     Running   0          2m7s
reviews-v3-7dbcdcbc56-xdt6p       2/2     Running   0          2m6s

外から接続するための istio-gateway

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: bookinfo-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: bookinfo
spec:
  hosts:
  - "*"
  gateways:
  - bookinfo-gateway
  http:
  - match:
    - uri:
        exact: /productpage
    - uri:
        prefix: /static
    - uri:
        exact: /login
    - uri:
        exact: /logout
    - uri:
        prefix: /api/v1/products
    route:
    - destination:
        host: productpage
        port:
          number: 9080