Istio-0.8.0在Minikube環(huán)境中快速啟動(dòng)Bookinfo示例

Istio-0.8.0在Minikube環(huán)境中快速啟動(dòng)Bookinfo示例

之前發(fā)表了從零開(kāi)始應(yīng)用Istio--入門示例,使用的istio版本比較低,在0.8.0版本下發(fā)現(xiàn)很多命令不一樣了,所以總結(jié)一下,重新跑一下Bookinfo.

一. 安裝Minikube環(huán)境

使用Minikube的本地實(shí)驗(yàn)環(huán)境, 系統(tǒng)為centos7.0, 國(guó)內(nèi)環(huán)境安裝可以參考https://yq.aliyun.com/articles/221687

安裝VirtualBox

VirtualBox

安裝kubectl

可參考官網(wǎng)提供的安裝說(shuō)明,Install kubectl binary via curl

通過(guò)命令安裝:

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

如果安裝失敗,或者無(wú)法訪問(wèn)可以直接下載

https://storage.googleapis.com/kubernetes-release/release/v1.11.1/bin/linux/amd64/kubectl

然后執(zhí)行

chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

安裝Minikube

參考Minikube - Kubernetes本地實(shí)驗(yàn)環(huán)境 使用阿里提供的Minikube版本, 我這里使用Kubernetes 1.10 release的版本

curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v0.28.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

啟動(dòng)

minikube start \
   --registry-mirror=https://registry.docker-cn.com \
   --extra-config=controller-manager.cluster-signing-cert-file="/var/lib/localkube/certs/ca.crt" \
   --extra-config=controller-manager.cluster-signing-key-file="/var/lib/localkube/certs/ca.key" \
   --extra-config=apiserver.admission-control="NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" \
   --kubernetes-version=v1.10.0

二. 安裝istio

可以參考官網(wǎng)Quick Start

獲取Istio release , 我本地使用的為0.8.0版本

$ curl -L https://git.io/getLatestIstio | sh -
或者在GitHub下載所需版本

進(jìn)入istio目錄

cd istio-0.8.0

添加istioctl 到PATH

export PATH=$PWD/bin:$PATH

安裝, 這里為了方便安裝了不帶TLS的版本

$ kubectl apply -f install/kubernetes/istio-demo.yaml

查看是否安裝正常,看istio-pilot, istio-ingressgateway, istio-policy, istio-telemetry, prometheus, 以及可選的istio-sidecar-injector服務(wù)是否部署

kubectl get svc -n istio-system

NAME                       TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                               AGE
istio-citadel              ClusterIP      10.110.18.88     <none>        8060/TCP,9093/TCP                                                     16h
istio-egressgateway        ClusterIP      10.105.97.56     <none>        80/TCP,443/TCP                                                        16h
istio-ingressgateway       LoadBalancer   10.109.76.80     <pending>     80:31380/TCP,443:31390/TCP,31400:31400/TCP                            16h
istio-pilot                ClusterIP      10.108.201.57    <none>        15003/TCP,15005/TCP,15007/TCP,15010/TCP,15011/TCP,8080/TCP,9093/TCP   16h
istio-policy               ClusterIP      10.100.249.185   <none>        9091/TCP,15004/TCP,9093/TCP                                           16h
istio-sidecar-injector     ClusterIP      10.110.68.171    <none>        443/TCP                                                               16h
istio-statsd-prom-bridge   ClusterIP      10.100.113.133   <none>        9102/TCP,9125/UDP                                                     16h
istio-telemetry            ClusterIP      10.109.5.24      <none>        9091/TCP,15004/TCP,9093/TCP,42422/TCP                                 16h
prometheus                 ClusterIP      10.99.110.28     <none>        9090/TCP                                    

查看pods

kubectl get pods -n istio-system

NAME                                       READY     STATUS      RESTARTS   AGE
istio-citadel-dcb7955f6-vdcjk              1/1       Running     0          11h
istio-egressgateway-56b7758b44-l5fm5       1/1       Running     0          11h
istio-ingressgateway-56cfddbd5b-xbdcx      1/1       Running     0          11h
istio-pilot-cbd6bfd97-wgw9b                2/2       Running     0          11h
istio-policy-699fbb45cf-bc44r              2/2       Running     0          11h
istio-statsd-prom-bridge-949999c4c-nws5j   1/1       Running     0          11h
istio-telemetry-55b675d8c-kfvvj            2/2       Running     0          11h
prometheus-86cb6dd77c-5j48h                1/1       Running     0          11h

這樣istio就安裝完成了

注:
    如果沒(méi)有安裝Istio-sidecar-injector, 那么在部署應(yīng)用時(shí)需要手動(dòng)的注入Envoy,
    命令如下:
    kubectl create -f <(istioctl kube-inject -f <your-app-spec>.yaml)

(*)卸載

如果實(shí)驗(yàn)完成后不在需要Istio環(huán)境可以使用如下命令卸載Istio

$ kubectl delete -f install/kubernetes/istio-demo.yaml

三. 部署B(yǎng)ookinfo應(yīng)用

使用如下命令安裝應(yīng)用容器,這會(huì)花費(fèi)一點(diǎn)時(shí)間

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

為應(yīng)用定義ingress網(wǎng)關(guān)

istioctl create -f samples/bookinfo/routing/bookinfo-gateway.yaml

查看所有的服務(wù)都處在運(yùn)行(Running)狀態(tài)

kubectl get services

NAME                       CLUSTER-IP   EXTERNAL-IP   PORT(S)              AGE
details                    10.0.0.31    <none>        9080/TCP             6m
kubernetes                 10.0.0.1     <none>        443/TCP              7d
productpage                10.0.0.120   <none>        9080/TCP             6m
ratings                    10.0.0.15    <none>        9080/TCP             6m
reviews                    10.0.0.170   <none>        9080/TCP             6m

查看pods

kubectl get pods

NAME                                        READY     STATUS    RESTARTS   AGE
details-v1-1520924117-48z17                 2/2       Running   0          6m
productpage-v1-560495357-jk1lz              2/2       Running   0          6m
ratings-v1-734492171-rnr5l                  2/2       Running   0          6m
reviews-v1-874083890-f0qf0                  2/2       Running   0          6m
reviews-v2-1343845940-b34q5                 2/2       Running   0          6m
reviews-v3-1813607990-8ch52                 2/2       Running   0          6m

使用ngress的IP 和 port訪問(wèn)應(yīng)用

這里主要介紹Minikube方式,如果是其他環(huán)境請(qǐng)參考Determining the ingress IP and ports

執(zhí)行
kubectl get svc istio-ingressgateway -n istio-system

NAME                   TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                                      AGE
istio-ingressgateway   LoadBalancer   10.109.76.80   <pending>     80:31380/TCP,443:31390/TCP,31400:31400/TCP   16h

此處EXTERNAL-IP 的值為<pending> 在這種情況下可以通過(guò)服務(wù)的node port訪問(wèn)gateway

獲取訪問(wèn)端口

export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http")].nodePort}')

Minikube環(huán)境下獲取訪問(wèn)IP

export INGRESS_HOST=$(minikube ip)

Set GATEWAY_URL:

export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

訪問(wèn)

curl -o /dev/null -s -w "%{http_code}\n" http://${GATEWAY_URL}/productpage

結(jié)果 200

如果Minikube 的IP本地可以訪問(wèn),可以用瀏覽器打開(kāi)http://$GATEWAY_URL/productpage訪問(wèn)Bookinfo的web頁(yè)面.

Cleanup Bookinfo

刪除路由,終止應(yīng)用pods

samples/bookinfo/kube/cleanup.sh

確認(rèn)是否關(guān)閉

istioctl get gateway           #-- there should be no more gateway
istioctl get virtualservices   #-- there should be no more virtual services
kubectl get pods               #-- the Bookinfo pods should be deleted
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末身冀,一起剝皮案震驚了整個(gè)濱河市篓叶,隨后出現(xiàn)的幾起案子残邀,更是在濱河造成了極大的恐慌签则,老刑警劉巖厕鹃,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異掏熬,居然都是意外死亡捻浦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門屋确,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)纳击,“玉大人续扔,你說(shuō)我怎么就攤上這事』朗” “怎么了纱昧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)堡赔。 經(jīng)常有香客問(wèn)我识脆,道長(zhǎng),這世上最難降的妖魔是什么善已? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任灼捂,我火速辦了婚禮,結(jié)果婚禮上雕拼,老公的妹妹穿的比我還像新娘纵东。我一直安慰自己粘招,他們只是感情好啥寇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著洒扎,像睡著了一般辑甜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袍冷,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天磷醋,我揣著相機(jī)與錄音,去河邊找鬼胡诗。 笑死邓线,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的煌恢。 我是一名探鬼主播骇陈,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瑰抵!你這毒婦竟也來(lái)了你雌?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤二汛,失蹤者是張志新(化名)和其女友劉穎婿崭,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體肴颊,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡氓栈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了婿着。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片授瘦。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡幸海,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出奥务,到底是詐尸還是另有隱情物独,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布氯葬,位于F島的核電站挡篓,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏帚称。R本人自食惡果不足惜官研,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闯睹。 院中可真熱鬧戏羽,春花似錦、人聲如沸楼吃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)孩锡。三九已至酷宵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間躬窜,已是汗流浹背浇垦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荣挨,地道東北人男韧。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像默垄,于是被迫代替她去往敵國(guó)和親此虑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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