前幾天介紹完了 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 使用會有些差異的地方。