Istio 范例

一走敌、Istio / 入門 - 部署示例應用

部署yml文件在孝,位于istio目錄的samples目錄下寒矿。如C:\Program Install\istio-1.10.3\samples个扰。

1. 部署B(yǎng)ooking

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

#kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
service/details created
serviceaccount/bookinfo-details created
deployment.apps/details-v1 created
service/ratings created
serviceaccount/bookinfo-ratings created
deployment.apps/ratings-v1 created
service/reviews created
serviceaccount/bookinfo-reviews created
deployment.apps/reviews-v1 created
deployment.apps/reviews-v2 created
deployment.apps/reviews-v3 created
service/productpage created
serviceaccount/bookinfo-productpage created
deployment.apps/productpage-v1 created

2. 查看創(chuàng)建的資源

#kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
details-v1-79f774bdb9-5wft6       2/2     Running   0          4m6s
productpage-v1-6b746f74dc-9xx25   2/2     Running   0          4m6s
ratings-v1-b6994bb9-jn58f         1/2     Running   0          4m6s
reviews-v1-545db77b95-dm4bz       2/2     Running   0          4m6s
reviews-v2-7bf8c9648f-hsgwr       2/2     Running   0          4m6s
reviews-v3-84779c7bbc-bhq66       2/2     Running   0          4m6s

#kubectl get svc
NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
details       ClusterIP   10.101.66.249   <none>        9080/TCP   4m10s
kubernetes    ClusterIP   10.96.0.1       <none>        443/TCP    6h4m
productpage   ClusterIP   10.111.50.235   <none>        9080/TCP   4m9s
ratings       ClusterIP   10.110.48.219   <none>        9080/TCP   4m10s
reviews       ClusterIP   10.100.11.29    <none>        9080/TCP   4m10s
#kubectl get ingress
No resources found in default namespace.

#kubectl get sidecars
No resources found in default namespace.

驗證

kubectl exec  ratings-v1-b6994bb9-jn58f -c ratings -- curl -s productpage:9080/productpage 

二打月、Istio / 入門 對外發(fā)布

此時,BookInfo 應用已經(jīng)部署,但還不能被外界訪問碎税。 要開放訪問柏副,需要創(chuàng)建 Istio 入站網(wǎng)關(guān)(Ingress Gateway), 它會在網(wǎng)格邊緣把一個路徑映射到路由。

  1. 關(guān)聯(lián)應用到Ingress Gateway
#kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
gateway.networking.istio.io/bookinfo-gateway created
virtualservice.networking.istio.io/bookinfo created
#kubectl get gateway -n default
NAME               AGE
bookinfo-gateway   2m46s

#kubectl get vs -n default
NAME       GATEWAYS               HOSTS   AGE
bookinfo   ["bookinfo-gateway"]   ["*"]   2m55s
  1. 確保配置文件正確
#istioctl analyze

? No validation issues found when analyzing namespace: default.

三蚣录、Istio / 入門 配置ingress地址和端口

  1. 對于運行于本地環(huán)境的Kubernetes割择,如minikube:
環(huán)境變量 說明
INGRESS_HOST 本地IP
INGRESS_PORT kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}' windows用單引號,linux用雙引號
SECURE_INGRESS_PORT kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=='https')].nodePort}' windows用單引號萎河,linux用雙引號
GATEWAY_URL $INGRESS_HOST:$INGRESS_PORT
#kubectl -n istio-system get service istio-ingressgateway
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                                                                      AGE
istio-ingressgateway   LoadBalancer   10.110.185.80   localhost     15021:30776/TCP,80:32338/TCP,443:32623/TCP,31400:31980/TCP,15443:31490/TCP   88m

#kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=='http2')]}'
'{"name":"http2","nodePort":32338,"port":80,"protocol":"TCP","targetPort":8080}'

#kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=='http2')].nodePort}'
'32338'
#kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=='https')]}'
'{"name":"https","nodePort":32623,"port":443,"protocol":"TCP","targetPort":8443}'

#kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=='https')].nodePort}'
'32623'
  1. 對于正經(jīng)Kubernetes集群
    執(zhí)行如下荔泳,看是否支持外部負載均衡。范例:
kubectl get svc istio-ingressgateway -n istio-system
NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                                      AGE
istio-ingressgateway   LoadBalancer   172.21.109.129   130.211.10.121  80:31380/TCP,443:31390/TCP,31400:31400/TCP   17h

如果 EXTERNAL-IP 存在值虐杯,那么就存在外部負載均衡可用于ingress gateway玛歌。 EXTERNAL-IP 值為 <none> (or <pending>),那就不存在外部負載均衡擎椰。這時支子,可以通過 node port訪問gateway(如上例)。

環(huán)境變量 說明
INGRESS_HOST kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
INGRESS_PORT kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}' nodePort改port
SECURE_INGRESS_PORT kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=='https')].port}' nodePort改port
GATEWAY_URL $INGRESS_HOST:$INGRESS_PORT
  1. 外部訪問測試
    Istio Bookinfo 示例包含四個獨立的微服務达舒,每個微服務都有多個版本值朋。其中一個微服務 reviews 的三個不同版本已經(jīng)部署并同時運行。在瀏覽器中訪問 Bookinfo 應用程序的 /productpage 并刷新幾次巩搏。您會注意到昨登,有時書評的輸出包含星級評分,有時則不包含贯底。

http://localhost/productpage

圖片.png
圖片.png
圖片.png

四丰辣、Istio / 入門 Dashboard

部署 Kiali 儀表板、 以及 Prometheus禽捆、 Grafana笙什、 還有 Jaeger

部署

#kubectl apply -f samples/addons

#kubectl get svc -n istio-system
NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                      AGE
grafana                ClusterIP      10.109.68.9      <none>        3000/TCP                                                                     2m58s
istio-egressgateway    ClusterIP      10.100.39.94     <none>        80/TCP,443/TCP                                                               116m
istio-ingressgateway   LoadBalancer   10.110.185.80    localhost     15021:30776/TCP,80:32338/TCP,443:32623/TCP,31400:31980/TCP,15443:31490/TCP   116m
istiod                 ClusterIP      10.103.228.126   <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP                                        116m
jaeger-collector       ClusterIP      10.109.202.41    <none>        14268/TCP,14250/TCP                                                          2m56s
kiali                  ClusterIP      10.107.0.209     <none>        20001/TCP,9090/TCP                                                           2m55s
prometheus             ClusterIP      10.109.39.193    <none>        9090/TCP                                                                     2m54s
tracing                ClusterIP      10.108.251.51    <none>        80/TCP                                                                       2m57s
zipkin                 ClusterIP      10.103.210.61    <none>        9411/TCP                                                                     2m56s

#kubectl get pods -n istio-system
NAME                                   READY   STATUS    RESTARTS   AGE
grafana-56d978ff77-24znt               1/1     Running   0          3m9s
istio-egressgateway-5547fcc8fc-dkfk2   1/1     Running   0          116m
istio-ingressgateway-8f568d595-ttbfg   1/1     Running   0          116m
istiod-5c79cf75bf-d67vk                1/1     Running   0          76m
jaeger-5c7c5c8d87-lh8vn                1/1     Running   0          3m9s
kiali-5bb9c9cf49-5xjxf                 1/1     Running   0          3m7s
prometheus-5546cc5d8f-txz4x            3/3     Running   0          3m5s

kubectl rollout status deployment/kiali -n istio-system
deployment "kiali" successfully rolled out

查看dashboard,會自動打開一個頁面

C:\Program Install\istio-1.10.3>istioctl dashboard kiali
http://localhost:20001/kiali
圖片.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胚想,一起剝皮案震驚了整個濱河市琐凭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顿仇,老刑警劉巖淘正,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摆马,死亡現(xiàn)場離奇詭異臼闻,居然都是意外死亡,警方通過查閱死者的電腦和手機囤采,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進店門述呐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蕉毯,你說我怎么就攤上這事乓搬∷祭纾” “怎么了?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵进肯,是天一觀的道長激蹲。 經(jīng)常有香客問我,道長江掩,這世上最難降的妖魔是什么学辱? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮环形,結(jié)果婚禮上策泣,老公的妹妹穿的比我還像新娘。我一直安慰自己抬吟,他們只是感情好萨咕,可當我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著火本,像睡著了一般危队。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钙畔,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天交掏,我揣著相機與錄音,去河邊找鬼刃鳄。 笑死盅弛,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的叔锐。 我是一名探鬼主播挪鹏,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼愉烙!你這毒婦竟也來了讨盒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤步责,失蹤者是張志新(化名)和其女友劉穎返顺,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔓肯,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡遂鹊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蔗包。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秉扑。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖调限,靈堂內(nèi)的尸體忽然破棺而出舟陆,到底是詐尸還是另有隱情误澳,我是刑警寧澤,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布秦躯,位于F島的核電站忆谓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏踱承。R本人自食惡果不足惜陪毡,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勾扭。 院中可真熱鬧毡琉,春花似錦、人聲如沸妙色。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽身辨。三九已至丐谋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間煌珊,已是汗流浹背号俐。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留定庵,地道東北人吏饿。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蔬浙,于是被迫代替她去往敵國和親猪落。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內(nèi)容