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/
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