摘要:廣告各版本離線安裝包祝賀發(fā)布在此獻(xiàn)上教程一份安裝安裝強(qiáng)勢(shì)插播廣告三步安裝,不多說安裝推薦生產(chǎn)環(huán)境用安裝,可以調(diào)參地址如我使用的版本這個(gè)不裝會(huì)報(bào)錯(cuò)先創(chuàng)建一個(gè)把管理員權(quán)限給安裝服務(wù)端如果已安裝更新加
廣告 | kubernetes各版本離線安裝包
祝賀istio1.0發(fā)布, 在此獻(xiàn)上教程一份
安裝安裝k8s 強(qiáng)勢(shì)插播廣告
三步安裝,不多說
安裝helm, 推薦生產(chǎn)環(huán)境用helm安裝,可以調(diào)參
release地址
如我使用的2.9.1版本
yum install -y socat # 這個(gè)不裝會(huì)報(bào)錯(cuò)
[root@istiohost ~]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz [root@istiohost ~]# tar zxvf helm-v2.9.1-linux-amd64.tar.gz [root@istiohost ~]# cp linux-amd64/helm /usr/bin
先創(chuàng)建一個(gè)service account 把管理員權(quán)限給helm:
[root@istiohost ~]# cat helmserviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: tiller-clusterrolebinding subjects: - kind: ServiceAccount name: tiller namespace: kube-system roleRef: kind: ClusterRole name: cluster-admin apiGroup: ""
kubectl create -f helmserviceaccount.yaml
安裝helm 服務(wù)端 tiller :
helm init --service-account tiller # 如果已安裝更新加 --upgrade 參數(shù) helm list #沒任何返回表示成功
安裝istio
curl -L https://git.io/getLatestIstio | sh - cd istio-1.0.0/ export PATH=$PWD/bin:$PATH
helm 2.10.0以前的版本需要裝一下CRD:
kubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml kubectl apply -f install/kubernetes/helm/istio/charts/certmanager/templates/crds.yaml
安裝istio, 由于你沒有LB所以用NodePort代替:
helm install install/kubernetes/helm/istio --name istio --namespace istio-system --set gateways.istio-ingressgateway.type=NodePort --set gateways.istio-egressgateway.type=NodePort
安裝成功:
[root@istiohost istio-1.0.0]# kubectl get pod -n istio-system NAME READY STATUS RESTARTS AGE istio-citadel-7d8f9748c5-ntqnp 1/1 Running 0 5m istio-egressgateway-676c8546c5-2w4cq 1/1 Running 0 5m istio-galley-5669f7c9b-mkxjg 1/1 Running 0 5m istio-ingressgateway-5475685bbb-96mbr 1/1 Running 0 5m istio-pilot-5795d6d695-gr4h4 2/2 Running 0 5m istio-policy-7f945bf487-gkpxr 2/2 Running 0 5m istio-sidecar-injector-d96cd9459-674pk 1/1 Running 0 5m istio-statsd-prom-bridge-549d687fd9-6cbzs 1/1 Running 0 5m istio-telemetry-6c587bdbc4-jndjn 2/2 Running 0 5m prometheus-6ffc56584f-98mr9 1/1 Running 0 5m [root@istiohost istio-1.0.0]# kubectl get svc -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-citadel ClusterIP 10.108.253.89使用教程 官網(wǎng)事例 Bookinfo Application8060/TCP,9093/TCP 5m istio-egressgateway NodePort 10.96.151.14 80:30830/TCP,443:30038/TCP 5m istio-galley ClusterIP 10.102.83.130 443/TCP,9093/TCP 5m istio-ingressgateway NodePort 10.99.194.13 80:31380/TCP,443:31390/TCP,31400:31400/TCP,15011:31577/TCP,8060:30037/TCP,15030:31855/TCP,15031:30775/TCP 5m istio-pilot ClusterIP 10.101.4.143 15010/TCP,15011/TCP,8080/TCP,9093/TCP 5m istio-policy ClusterIP 10.106.221.68 9091/TCP,15004/TCP,9093/TCP 5m istio-sidecar-injector ClusterIP 10.100.5.170 443/TCP 5m istio-statsd-prom-bridge ClusterIP 10.107.28.242 9102/TCP,9125/UDP 5m istio-telemetry ClusterIP 10.105.66.20 9091/TCP,15004/TCP,9093/TCP,42422/TCP 5m prometheus ClusterIP 10.103.128.152 9090/TCP
productpage 調(diào)用details和reviews渲染頁(yè)面
details包含書本信息
reviews 書本反饋,調(diào)用ratings服務(wù)
ratings 書本租借信息
reviews服務(wù)有三個(gè)版本:
V1 不請(qǐng)求ratings
V2 請(qǐng)求ratings,返回1到5個(gè)黑星
V3 請(qǐng)求ratings,返回1到5個(gè)紅星
數(shù)據(jù)平面:
安裝應(yīng)用:
kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)
安裝完成:
[root@istiohost istio-1.0.0]# kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE details ClusterIP 10.104.66.319080/TCP 2m kubernetes ClusterIP 10.96.0.1 443/TCP 4h productpage ClusterIP 10.109.68.13 9080/TCP 2m ratings ClusterIP 10.99.55.110 9080/TCP 2m reviews ClusterIP 10.102.19.129 9080/TCP 2m [root@istiohost istio-1.0.0]# kubectl get pods NAME READY STATUS RESTARTS AGE details-v1-fc9649d9c-dpnlp 2/2 Running 0 2m productpage-v1-58845c779c-7g8th 2/2 Running 0 2m ratings-v1-6cc485c997-fb7nh 2/2 Running 0 2m reviews-v1-76987687b7-x5n7z 2/2 Running 0 2m reviews-v2-86749dcd5-xchzb 2/2 Running 0 2m reviews-v3-7f4746b959-nthrq 2/2 Running 0 2m
創(chuàng)建一個(gè)gateway,這是為了集群外可以訪問
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
瀏覽器訪問url:
47.254.28.88是我的節(jié)點(diǎn)ip,使用nodeport模式
http://47.254.28.88:31380/productpage
連續(xù)點(diǎn)擊三次,你會(huì)發(fā)現(xiàn)右邊沒星星-> 黑星星-> 紅星星切換,對(duì)應(yīng)三個(gè)版本的review,默認(rèn)策略是輪詢
創(chuàng)建destination rules, 配置路由訪問規(guī)則,現(xiàn)在還是輪詢
kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml智能路由 請(qǐng)求路由 request routing 根據(jù)版本路由
把所有路由切換到v1版本
kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml
這樣執(zhí)行完后,不管怎么刷頁(yè)面,我們都看不到星星,因?yàn)関1版本沒星
可以看到destination是這樣的:
http: - route: - destination: host: details subset: v1
試想如此我們做版本切換將是何等簡(jiǎn)單
根據(jù)用戶路由kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml
你會(huì)發(fā)現(xiàn)用jason用戶登錄就能看到黑星星,而其它方式看到的頁(yè)面都是無星星
因?yàn)檫@個(gè)user走了v2版本,能不強(qiáng)大? 那當(dāng)然還能根據(jù)header什么的做路由了,就不多說了
http: - match: - headers: end-user: exact: jason route: - destination: host: reviews subset: v2 - route: - destination: host: reviews subset: v1故障注入 Fault injection
kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml
假設(shè)代碼里有個(gè)bug,用戶jason, reviews:v2 訪問ratings時(shí)會(huì)卡10s, 我們?nèi)稳幌M说蕉说臏y(cè)試能正常走完
kubectl apply -f samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml
注入錯(cuò)誤讓jason用戶有個(gè)7s的延遲
hosts: - ratings http: - fault: delay: fixedDelay: 7s percent: 100 match: - headers: end-user: exact: jason route: - destination: host: ratings subset: v1 - route: - destination: host: ratings subset: v1
這時(shí)訪問頁(yè)面顯然會(huì)出錯(cuò),因?yàn)槲覀兿M?s內(nèi)能返回,這樣我們就發(fā)現(xiàn)了一個(gè)延遲的bug
Error fetching product reviews! Sorry, product reviews are currently unavailable for this book.
所以我們就可能通過故障注入去發(fā)現(xiàn)這些異常現(xiàn)象
鏈路切換 Traffic Shifting我們先把50%流量發(fā)送給reviews:v1 50%流量發(fā)送給v3,然后再把100%的流量都切給v3
把100%流量切到v1kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml
此時(shí)不論刷幾遍,都沒有星星
v1 v3各50%流量kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-50-v3.yaml
- route: - destination: host: reviews subset: v1 weight: 50 - destination: host: reviews subset: v3 weight: 50
此時(shí)一會(huì)有星,一會(huì)沒星,但是已經(jīng)不是輪詢算法了
全切v3kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-v3.yaml
這時(shí)不管怎么刷都是紅心了
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/32681.html
摘要:廣告各版本離線安裝包祝賀發(fā)布在此獻(xiàn)上教程一份安裝安裝強(qiáng)勢(shì)插播廣告三步安裝,不多說安裝推薦生產(chǎn)環(huán)境用安裝,可以調(diào)參地址如我使用的版本這個(gè)不裝會(huì)報(bào)錯(cuò)先創(chuàng)建一個(gè)把管理員權(quán)限給安裝服務(wù)端如果已安裝更新加 廣告 | kubernetes各版本離線安裝包 祝賀istio1.0發(fā)布, 在此獻(xiàn)上教程一份 安裝 安裝k8s 強(qiáng)勢(shì)插播廣告 三步安裝,不多說 安裝helm, 推薦生產(chǎn)環(huán)境用helm安裝,...
摘要:自行建站服務(wù)器購(gòu)買網(wǎng)站搭建網(wǎng)站維護(hù)全程自主,彈性靈活。網(wǎng)站部署常見網(wǎng)站類型有以下幾種個(gè)人博客常用于搭建個(gè)人博客網(wǎng)站,尤其適用于首次使用阿里云進(jìn)行建站的新用戶。若您需要在阿里云服務(wù)器上部署站點(diǎn)環(huán)境安裝應(yīng)用程序,可點(diǎn)此查看網(wǎng)站基礎(chǔ)環(huán)境搭建服務(wù)。相信很多新用戶會(huì)有這樣的疑惑,我要做個(gè)網(wǎng)站,到底要使用什么產(chǎn)品,如何能快速完成網(wǎng)站建站呢?搭建網(wǎng)站有兩種選擇,一種是直接購(gòu)買建站模板,另一種則是自行建站。...
摘要:自行建站服務(wù)器購(gòu)買網(wǎng)站搭建網(wǎng)站維護(hù)全程自主,彈性靈活。網(wǎng)站部署常見網(wǎng)站類型有以下幾種個(gè)人博客常用于搭建個(gè)人博客網(wǎng)站,尤其適用于首次使用阿里云進(jìn)行建站的新用戶。若您需要在阿里云服務(wù)器上部署站點(diǎn)環(huán)境安裝應(yīng)用程序,可點(diǎn)此查看網(wǎng)站基礎(chǔ)環(huán)境搭建服務(wù)。前言相信很多新用戶會(huì)有這樣的疑惑,我要做個(gè)網(wǎng)站,到底要使用什么產(chǎn)品,如何能快速完成網(wǎng)站建站呢?搭建網(wǎng)站有兩種選擇,一種是直接購(gòu)買建站模板,另一種則是自行建...
摘要:最佳實(shí)踐良好的編碼規(guī)范單元測(cè)試持續(xù)集成文檔,從一開始就形成良好的編碼習(xí)慣。真實(shí)的電商業(yè)務(wù)所有的業(yè)務(wù)需求來自真實(shí)的客戶,并且線上良好運(yùn)營(yíng)中。 重要通知: Laravel + 小程序的開源電商版本源碼已經(jīng)在 github 上拉,歡迎提交 issue 和 star :) 開源電商 Server 端: Laravel API源碼 開源電商 client 端:小程序源碼 iBrand 簡(jiǎn)介...
閱讀 1840·2021-11-23 09:51
閱讀 1294·2021-11-18 10:02
閱讀 971·2021-10-25 09:44
閱讀 2109·2019-08-26 18:36
閱讀 1630·2019-08-26 12:17
閱讀 1154·2019-08-26 11:59
閱讀 2751·2019-08-23 15:56
閱讀 3363·2019-08-23 15:05