新聞中心
本篇內(nèi)容介紹了“Docker for mac安裝Istio的詳細(xì)步驟”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括環(huán)翠網(wǎng)站建設(shè)、環(huán)翠網(wǎng)站制作、環(huán)翠網(wǎng)頁(yè)制作以及環(huán)翠網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,環(huán)翠網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到環(huán)翠省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
安裝 Kubernetes
在 Docker 18.06.0 的增加對(duì) Kubernetes 的正式支持(在之前的版本也有支持,只是非正式版本)
這里調(diào)整了 docker 的內(nèi)存為 4GB,之前默認(rèn) 2GB 運(yùn)行 Kubernetes 感覺(jué)會(huì)很吃力(當(dāng)部署完Istio 這一套發(fā)現(xiàn) 4 GB也很吃緊,改成 7GB 后電腦才不那么熱...)。
找到 Kubernetes 選項(xiàng),勾選 Enable 選擇 Kubernetes,然后執(zhí)行 Apply
我們會(huì)看到 Kubernetes 一直在 starting... ,此時(shí) docker 正在下載鏡像,殊不知在遙遠(yuǎn)的東方有一堵“墻”,下載需要的鏡像越過(guò)墻才可以。
要相信這個(gè)世界上總會(huì)有人與你一樣遇到相同的問(wèn)題,于是這個(gè)人就寫(xiě)了一個(gè) github 倉(cāng)庫(kù)。按照文檔所說(shuō),我們需要配置一下國(guó)內(nèi)的代理,然后執(zhí)行下載鏡像腳本,再重新啟動(dòng) Kubernetes ,Kubernetes 就這樣奇跡般的啟動(dòng)起來(lái)了。
安裝 kubectl
kubectl 是 Kubernetes 的客戶(hù)端
brew install kubernetes-cli # 或者更新 brew upgrade kubernetes-cli
安裝 Kubernetes dashboard
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
啟動(dòng) proxy
kubectl proxy
訪(fǎng)問(wèn)這里:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
如果是想玩玩單點(diǎn)的 Kubernetes 到這里就結(jié)束啦~
安裝 Istio
先下載 Istio 最新版本
找個(gè)你心儀的地方解壓,然后配置環(huán)境變量:
export PATH="$PATH:/解壓的目錄/istio-1.0.0/bin"
如果放在 .bash_profile
或者 .zshrc
文件中記得要 source 一下
source ~/.bash_profile
驗(yàn)證一下是否生效
istioctl version
安裝 Istio
這里為了快速簡(jiǎn)單的搭建 Istio ,使用 helm 來(lái)幫助我們。
安裝 Helm
Helm 是 Kubernetes 的包管理器
brew install kubernetes-helm # 驗(yàn)證一下 helm version
然后我們安裝 Istio 步驟
如果 Helm 版本小于 2.10.0 ,請(qǐng)通過(guò) 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個(gè)選項(xiàng)是互斥的,只能二選一哦。
如果還沒(méi)有為 Tiller 配置 service account,請(qǐng)配置一個(gè):
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
默認(rèn) tracing 、kiali 、grafana 并不會(huì)開(kāi)啟,這里需要在安裝時(shí)手動(dòng) --set xxx.enabled=true
進(jìn)行開(kāi)啟。配置說(shuō)明可查看:install/kubernetes/helm/istio/README.md
PS: kiali pod 部署時(shí)會(huì)無(wú)法正常啟動(dòng),不影響使用,后面我們會(huì)再提到。
部署 Bookinfo
我們來(lái)部署一個(gè)官方的 Bookinfo Examples,進(jìn)入 istio 的目錄
kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)
確認(rèn)一下 service 和 pod 是否正確啟動(dòng)了
kubectl get services
kubectl get pods
然后我們來(lái)創(chuàng)建網(wǎng)關(guān)
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
再 check 一下
istioctl get gateway
注意!后面會(huì)和官方文檔不太一樣啦,官方會(huì)去獲取 ingress 的 ip 和端口,我們使用的 Docker for Mac 不需要查看映射端口,在 Dashboard 上找到 namespace 選擇為 istio-system ,就可以看到我們映射的端口。
激動(dòng)人心的時(shí)刻到啦,訪(fǎng)問(wèn)這里:http://localhost/productpage
就可以看到 Bookinfo 的demo啦!
卸載
可以直接參考官方文檔啦!
分布式跟蹤-Jaeger
開(kāi)啟 Jaeger 網(wǎng)絡(luò)映射
kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=jaeger -o jsonpath='{.items[0].metadata.name}') 16686:16686 &
訪(fǎng)問(wèn) http://127.0.0.1:16686/
可以點(diǎn)開(kāi)具體的一次Trace來(lái)查看鏈路情況
更多好玩的東西請(qǐng)參考官方文檔
使用Grafana 查詢(xún)指標(biāo)
先看來(lái)看我們的 Prometheus和 Grafana 是否正常
kubectl -n istio-system get svc prometheus kubectl -n istio-system get svc grafana
開(kāi)啟 Grafana 網(wǎng)絡(luò)映射
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000 &
訪(fǎng)問(wèn) http://localhost:3000/d/LJ_uJAvmk/istio-service-dashboard?refresh=10s&orgId=1
更多好玩的東西請(qǐng)參考官方文檔
kiali
kiali 目前還在開(kāi)發(fā)當(dāng)中,所以不能用于生產(chǎn),在Istio 默認(rèn)不被開(kāi)啟,不過(guò)玩玩還是可以的。前面提到 kiali 在部署的時(shí)候無(wú)法啟動(dòng),查看了一下原因是拉取的鏡像為docker.io/kiali/kiali:istio-release-1.0
,而Docker hub 中根本沒(méi)有這個(gè) Tag ...
所以抱著試試看的態(tài)度,在 Dashboard 手動(dòng)改一下 tag 為 latest ,更新! 開(kāi)啟映射網(wǎng)絡(luò)端口
kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=kiali -o jsonpath='{.items[0].metadata.name}') 20001:20001 &
訪(fǎng)問(wèn):http://localhost:20001/ 賬號(hào)密碼:admin/admin
看起來(lái)還是蠻酷的,更多細(xì)節(jié)可以參考 Kiali 官方文檔
停止Kubernetes
在不需要的時(shí)候我們可以將Kubernetes 停止,以保證我們 Mac 的性能,在安裝了太多的組件后會(huì)比較耗電。
一切都可以重來(lái)...
Docker for Mac 還提供了一個(gè)非常人性的功能——Reset
無(wú)論我們是安裝過(guò)程出了問(wèn)題還是需要做各種測(cè)試,只需要輕輕點(diǎn)擊 【Reset Kubernetes cluster】一切就重新開(kāi)始。
“Docker for mac安裝Istio的詳細(xì)步驟”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
本文題目:Dockerformac安裝Istio的詳細(xì)步驟
文章分享:http://fisionsoft.com.cn/article/gsgisp.html