前幾天介紹完了 istio 是什麼,以及為什麼我們要使用 istio ,今天就來正式進入實戰的部分。

首先我們先去官網下載 istio 的安裝檔 1.7.2

筆者寫 istio 時版本最新到1.7.2,不過 istio 版本更新非常快,筆者從 1.4 用不到一年就已經跳到1.7了。

依據你的需求載需要的檔案並且把它解壓縮,再來可以在 /bin 資料夾找到,istioctl,把它 cp 到 /usr/local/bin/istioctl

然後下

$ istioctl-example install --set profile=demo
✔ Istio core installed
✔ Istiod installed
✔ Ingress gateways installed
✔ Egress gateways installed
✔ Installation complete

先用 demo 嘗試看看,如果要在 PROD 環境,記得要另外挑 profile 做調教。 建議 multipass 至少要給它 4 core 4g ram,筆者一開始用預設vm 是裝不起來的

接下來就安裝完成了。

可以檢查看看是否有安裝成功只要使用

$ kubectl -n istio-system get deploy
NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
istio-ingressgateway   1/1     1            1           49m
istiod                 1/1     1            1           49m

istio 可以指定你哪些 namespace 要掛上 sidecar 指令可以這樣下

$ kubectl label namespace default istio-injection=enabled

default 可以依照需求自行換成自己的 namespace

最後我們試試看

$ kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
redis-test-867fd6b547-8x5fr   2/2     Running   0          5d

這是用前幾天部署出來的 redis ,就可以無痛注入 sidecar

有沒有發現到 READY 欄位原本都是 1/1 ,現在變成 2/2 ,就是 sidecar 已經掛成功了喔

明天我們會來聊聊,用上 istio ,有些 kubectl 使用會有些差異的地方。