手摸手帶你 在Windows系統(tǒng)中安裝Istio
Istio簡介
通過負載均衡、服務(wù)間的身份驗證、監(jiān)控等方法,Istio 可以輕松地創(chuàng)建一個已經(jīng)部署了服務(wù)的網(wǎng)絡(luò),而服務(wù)的代碼只需很少更改甚至無需更改。
通過在整個環(huán)境中部署一個特殊的 sidecar 代理為服務(wù)添加 Istio 的支持,而代理會攔截微服務(wù)之間的所有網(wǎng)絡(luò)通信,然后使用其控制平面的功能來配置和管理 Istio,包括:
為 HTTP、gRPC、WebSocket 和 TCP 流量自動負載均衡。
通過豐富的路由規(guī)則、重試、故障轉(zhuǎn)移和故障注入對流量行為進行細粒度控制。
可插拔的策略層和配置 API,支持訪問控制、速率限制和配額。
集群內(nèi)(包括集群的入口和出口)所有流量的自動化度量、日志記錄和追蹤。
在具有強大的基于身份驗證和授權(quán)的集群中實現(xiàn)安全的服務(wù)間通信。
在Istio官方文檔中,安裝Istio是以Linux或MacOS系統(tǒng)為例的,對于Windows用戶不是很友好,不過真難不倒我們。
安裝 Hyper-V
Hyper-V是微軟提出的一種系統(tǒng)管理程序虛擬化技術(shù),能夠?qū)崿F(xiàn)桌面虛擬化。Hyper-V 可用于 64 位 Windows 10 專業(yè)版、企業(yè)版和教育版。它無法用于家庭版。
點擊“小窗戶”,然后再點擊“設(shè)置”,如下圖:
設(shè)置
在搜索框中輸入“啟用或關(guān)閉Windows功能”,如下圖:
啟用或關(guān)閉Windows功能
點擊“啟用或關(guān)閉Windows功能”后,勾選“Hyper-V”所有選項,如下圖:
Hyper-V
點擊“確定”,等一會兒就安裝好了。(可能需要重啟電腦)
安裝 Docker Desktop
訪問https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe下載,雙擊Docker Desktop Installer.exe運行安裝程序。按照安裝向?qū)系恼f明授權(quán)安裝程序并繼續(xù)進行安裝。
安裝完成后,啟動Docker Desktop,等一會兒初始化完成后,將啟動入門教程:
Docker Desktop
這個教程包括一個簡單的練習(xí),以構(gòu)建示例Docker鏡像,將其作為容器運行,將映像推送并保存到Docker Hub。
開啟 Kubernetes
在Docker Desktop的設(shè)置中,為 Kubernetes 配置 CPU 和 內(nèi)存資源,建議分配4核或更多CPU,8GB或更多內(nèi)存,如下圖:
在Docker Desktop的設(shè)置中,勾選開啟 Kubernetes 和 顯示系統(tǒng)容器,如下:
重啟Docker Desktop后,等待Kubernetes啟動,啟動成功后,可以看到Kubernetes的標(biāo)簽變成綠色,并且在容器列表中可以看到Kubernetes相關(guān)的容器,如下圖:
安裝
到Istio的官方網(wǎng)站(https://github.com/istio/istio/releases)下載windows系統(tǒng)的安裝包,如下圖:
把壓縮包解壓到你覺得安逸的目錄里,然后把istio-1.14.0\bin目錄添加到環(huán)境變量中。
打開命令提示符,執(zhí)行istioctl version命令可以看到IIstio的版本信息,說明環(huán)境變量設(shè)置成功,如下圖:
執(zhí)行如下命令,安裝Istio:
istioctl install --set profile=demo -y
本次安裝采用 demo 配置組合。選擇它是因為它包含了一組專為測試準(zhǔn)備的功能集合,另外還有用于生產(chǎn)或性能測試的配置組合。
稍等片刻,我們就可以看到:
C:\萬貓學(xué)社> istioctl install --set profile=demo -y
? Istio core installed
? Istiod installed
? Egress gateways installed
? Ingress gateways installed
? Installation complete
執(zhí)行如下命令,查看Istio是否安裝成功:
kubectl get pods -n istio-system
可以看到 Istio 相關(guān)的 Pod 都處于 Running 狀態(tài),如下圖:
kubectl get pods -n istio-system
給命名空間添加標(biāo)簽,指示 Istio 在部署應(yīng)用的時候,自動注入 Envoy 邊車代理:
kubectl label namespace default istio-injection=enabled
至此,Istio已經(jīng)在在Windows上安裝完成了。如果你還想進行一些學(xué)習(xí)或者測試Istio的功能,可以部署示例應(yīng)用。
部署示例應(yīng)用
進入istio-1.14.0目錄中,執(zhí)行以下命令,部署 Bookinfo 示例應(yīng)用:
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
如下圖:
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
稍等幾分鐘后,執(zhí)行kubectl get pods命令我們就可以看到Bookinfo 示例應(yīng)用相關(guān)的 Pod 都處于 Running 狀態(tài),如下圖:
kubectl get pods
最后,我們通過檢查返回的頁面標(biāo)題,來驗證應(yīng)用是否已在集群中運行,并已提供網(wǎng)頁服務(wù):
# 獲取ratings的Pod名稱
kubectl get pod -l app=ratings -o jsonpath={.items[0].metadata.name}
# 替換掉ratings的Pod名稱
kubectl exec ratings的Pod名稱 -c ratings -- curl -s productpage:9080/productpage | findstr /r "<title>.*</title>"
具體操作如下圖:
返回的頁面標(biāo)題為:<title>Simple Bookstore App</title>。
作者:萬貓學(xué)社
歡迎關(guān)注微信公眾號 :萬貓學(xué)社