您好,登錄后才能下訂單哦!
本篇內容介紹了“Docker for mac安裝Istio的詳細步驟”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在 Docker 18.06.0 的增加對 Kubernetes 的正式支持(在之前的版本也有支持,只是非正式版本)
這里調整了 docker 的內存為 4GB,之前默認 2GB 運行 Kubernetes 感覺會很吃力(當部署完Istio 這一套發現 4 GB也很吃緊,改成 7GB 后電腦才不那么熱...)。
找到 Kubernetes 選項,勾選 Enable 選擇 Kubernetes,然后執行 Apply
我們會看到 Kubernetes 一直在 starting... ,此時 docker 正在下載鏡像,殊不知在遙遠的東方有一堵“墻”,下載需要的鏡像越過墻才可以。
要相信這個世界上總會有人與你一樣遇到相同的問題,于是這個人就寫了一個 github 倉庫。按照文檔所說,我們需要配置一下國內的代理,然后執行下載鏡像腳本,再重新啟動 Kubernetes ,Kubernetes 就這樣奇跡般的啟動起來了。
kubectl 是 Kubernetes 的客戶端
brew install kubernetes-cli # 或者更新 brew upgrade kubernetes-cli
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl proxy
訪問這里:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
如果是想玩玩單點的 Kubernetes 到這里就結束啦~
先下載 Istio 最新版本
找個你心儀的地方解壓,然后配置環境變量:
export PATH="$PATH:/解壓的目錄/istio-1.0.0/bin"
如果放在 .bash_profile
或者 .zshrc
文件中記得要 source 一下
source ~/.bash_profile
驗證一下是否生效
istioctl version
這里為了快速簡單的搭建 Istio ,使用 helm 來幫助我們。
Helm 是 Kubernetes 的包管理器
brew install kubernetes-helm # 驗證一下 helm version
然后我們安裝 Istio 步驟
如果 Helm 版本小于 2.10.0 ,請通過 kubectl apply 安裝 Istio,并等待幾秒鐘,以便在kube-apiserver 中提交CRD:
kubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml kubectl apply -f install/kubernetes/helm/istio/charts/certmanager/templates/crds.yaml
官方文檔提供了安裝幾種方式,Option 1 使用 helm template
安裝,可選的東西比較少。所以我們選擇 Option 2。
注意:這2個選項是互斥的,只能二選一哦。
如果還沒有為 Tiller 配置 service account,請配置一個:
kubectl create -f install/kubernetes/helm/helm-service-account.yaml
使用 service account 在您的集群中安裝 Tiller
helm init --service-account tiller
安裝 Istio
helm install install/kubernetes/helm/istio --name istio --namespace istio-system \ --set tracing.enabled=true \ --set kiali.enabled=true \ --set grafana.enabled=true
默認 tracing 、kiali 、grafana 并不會開啟,這里需要在安裝時手動 --set xxx.enabled=true
進行開啟。配置說明可查看:install/kubernetes/helm/istio/README.md
PS: kiali pod 部署時會無法正常啟動,不影響使用,后面我們會再提到。
我們來部署一個官方的 Bookinfo Examples,進入 istio 的目錄
kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)
確認一下 service 和 pod 是否正確啟動了
kubectl get services
kubectl get pods
然后我們來創建網關
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
再 check 一下
istioctl get gateway
注意! 后面會和官方文檔不太一樣啦,官方會去獲取 ingress 的 ip 和端口,我們使用的 Docker for Mac 不需要查看映射端口,在 Dashboard 上找到 namespace 選擇為 istio-system ,就可以看到我們映射的端口。
激動人心的時刻到啦,訪問這里:http://localhost/productpage
就可以看到 Bookinfo 的demo啦!
可以直接參考官方文檔啦!
開啟 Jaeger 網絡映射
kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=jaeger -o jsonpath='{.items[0].metadata.name}') 16686:16686 &
訪問 http://127.0.0.1:16686/
可以點開具體的一次Trace來查看鏈路情況
更多好玩的東西請參考官方文檔
先看來看我們的 Prometheus和 Grafana 是否正常
kubectl -n istio-system get svc prometheus kubectl -n istio-system get svc grafana
開啟 Grafana 網絡映射
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000 &
訪問 http://localhost:3000/d/LJ_uJAvmk/istio-service-dashboard?refresh=10s&orgId=1
更多好玩的東西請參考官方文檔
kiali 目前還在開發當中,所以不能用于生產,在Istio 默認不被開啟,不過玩玩還是可以的。前面提到 kiali 在部署的時候無法啟動,查看了一下原因是拉取的鏡像為docker.io/kiali/kiali:istio-release-1.0
,而Docker hub 中根本沒有這個 Tag ...
所以抱著試試看的態度,在 Dashboard 手動改一下 tag 為 latest ,更新! 開啟映射網絡端口
kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=kiali -o jsonpath='{.items[0].metadata.name}') 20001:20001 &
訪問:http://localhost:20001/ 賬號密碼:admin/admin
看起來還是蠻酷的,更多細節可以參考 Kiali 官方文檔
在不需要的時候我們可以將Kubernetes 停止,以保證我們 Mac 的性能,在安裝了太多的組件后會比較耗電。
Docker for Mac 還提供了一個非常人性的功能——Reset
無論我們是安裝過程出了問題還是需要做各種測試,只需要輕輕點擊 【Reset Kubernetes cluster】一切就重新開始。
“Docker for mac安裝Istio的詳細步驟”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。