istio 1.7.2纯内网安装

今天从istioctl到bookinfo再到kiali,重新撸了一次。单体应用,这一刻感觉比前年弄的那一次,真的方便了不少。

一, 下载解压

得到istio-1.7.2目录,先将bin/istioctl拷贝到/usr/local/bin目录。
其它时间,在istio-1.7.2目录下玩就可以了。

二,准备docker镜像

还好,都是可以想办法下载的,不像gcr的仓库,国内下不了。

docker images
REPOSITORY                                                                     TAG                 IMAGE ID            CREATED             SIZE
istio/proxyv2                                                                  1.7.2               d8fb7dcfd395        6 weeks ago         364MB
istio/pilot                                                                    1.7.2               d45159d9caa3        6 weeks ago         278MB
quay.io/kiali/kiali                                                            v1.22               86cfc43dddbf        2 months ago        168MB
grafana/grafana                                                                7.0.5               89ec51554c46        4 months ago        159MB
istio/examples-bookinfo-reviews-v3                                             1.16.2              83e6a8464b84        4 months ago        694MB
istio/examples-bookinfo-reviews-v2                                             1.16.2              39cff5d782e1        4 months ago        694MB
istio/examples-bookinfo-reviews-v1                                             1.16.2              181be23dc1af        4 months ago        694MB
istio/examples-bookinfo-ratings-v2                                             1.16.2              4c23d9a4a44d        4 months ago        161MB
istio/examples-bookinfo-ratings-v1                                             1.16.2              99ce598b98cf        4 months ago        161MB
istio/examples-bookinfo-details-v2                                             1.16.2              6be995c3be33        4 months ago        149MB
istio/examples-bookinfo-details-v1                                             1.16.2              edf6b9bea3db        4 months ago        149MB
istio/examples-bookinfo-productpage-v1                                         1.16.2              7f1e097aad6d        4 months ago        207MB
jaegertracing/all-in-one                                                       1.18                0e2e4c273c1d        4 months ago        48.3MB
prom/prometheus                                                                v2.19.0             39d1866a438a        4 months ago        142MB
openzipkin/zipkin-slim                                                         2.20.0              ec81b0245c0d        8 months ago        122MB
jimmidyson/configmap-reload                                                    v0.3.0              7ec24a279487        14 months ago       9.7MB

三,生成一个安装的yaml文件

如果在家里可以连外网,可以直接使用如下命令
istioctl manifest generate --set profile=demo > istio-demo.yaml
但,如果是企业纯内网,那最好将上面的镜像,都改一下tag,放到公司内的harbor仓库中,然后,在生成yaml时,定义一下harbor的地址。
istioctl manifest generate --set .values.global.hub="xxxcom.cn/3rd_part/docker.io/istio" --set profile=demo > istio-demo.yaml
我试过,如果真的一点网都连不上,好像就算本地有那个镜像,也没有毛用,docker还是要远方看一下。
为了方面测试,没有lb环境下,将ingress的service修改为nodeport吧。

apiVersion: v1

kind: Service

metadata:

  annotations: null

  labels:

    app: istio-ingressgateway

    istio: ingressgateway

    release: istio

  name: istio-ingressgateway

  namespace: istio-system

spec:

  ports:

  - name: status-port

    port: 15021

    targetPort: 15021

  - name: http2

    port: 80

    targetPort: 8080

  - name: https

    port: 443

    targetPort: 8443

  - name: tcp

    port: 31400

    targetPort: 31400

  - name: tls

    port: 15443

    targetPort: 15443

  selector:

    app: istio-ingressgateway

    istio: ingressgateway

  type: NodePort

四,部署集群

出于礼貌,可以先建好namespace
kubectl create ns istio-system
我又遇到过不礼貌的,提前没有ns,就是不掉我~
将yaml文件应用到k8s集群
kubectl apply -f istio-demo.yaml
然后,如果一定安好,那就静候时光吧。

kubectl -n istio-system get svc

NAME                   TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                                                                      AGE

istio-egressgateway    ClusterIP   10.43.10.106   <none>        80/TCP,443/TCP,15443/TCP                                                     9m8s

istiod                 ClusterIP   10.43.8.76     <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP,853/TCP                                9m8s

istio-ingressgateway   NodePort    10.43.29.72    <none>        15021:30717/TCP,80:31101/TCP,443:31853/TCP,31400:30946/TCP,15443:31031/TCP   9m8s

kubectl -n istio-system get pod

NAME                                    READY   STATUS    RESTARTS   AGE

istiod-67b9c76c59-24rrl                 1/1     Running   0          10m

istio-ingressgateway-6ffdb76d94-wzjnw   1/1     Running   0          10m

istio-egressgateway-779946795c-vl79w    1/1     Running   0          10m

五,应用bookinfo示例

先把default弄起自动注入sidecar
kubectl label namespace default istio-injection=enabled
来,一把梭哈,输了下海干活,赢了会所嫩模!!!
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
朋友,又期待岁月静好吧。

kubectl get pod 

NAME                                READY   STATUS    RESTARTS   AGE

nginx-deployment-559fdddb7b-qn66z   2/2     Running   0          2d16h

details-v1-5dd7f66d97-hmb5s         2/2     Running   0          3m10s

reviews-v3-59b4576599-sbh4n         2/2     Running   0          3m10s

productpage-v1-6dd78fb87f-c94jj     2/2     Running   0          3m10s

reviews-v2-7b7d895d85-jgd9c         2/2     Running   0          3m10s

ratings-v1-fc4ccd4df-99p7z          2/2     Running   0          3m9s

reviews-v1-56f9d844f5-6jkfb         2/2     Running   0          3m9s

六,测试简单的规则访问

应用一下网关
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
路由任意发挥
kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml
先来命令行模拟,加点鸡血值

kubectl exec -it $(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}') -c ratings -- curl productpage:9080/productpage | grep -o "<title>.*</title>"
<title>Simple Bookstore App</title>

确认一下访问端口

[root@localhost software]# kubectl -n istio-system get svc
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                                                      AGE
istio-egressgateway    ClusterIP   10.43.28.91     <none>        80/TCP,443/TCP,15443/TCP                                                     42m
istio-ingressgateway   NodePort    10.43.173.235   <none>        15021:30659/TCP,80:31998/TCP,443:31133/TCP,31400:31511/TCP,15443:32212/TCP   42m
istiod                 ClusterIP   10.43.113.220   <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP,853/TCP                                42m

嗯:31998,访问一下http://192.168.1.214:31998/productpage,多刷几次,reviews的几个版本都会出来。

2020-11-02 21_37_11-悬浮球.png

2020-11-02 22_24_25-悬浮球.png

其它流量规则测试不着急,先搞搞其它UI,才齐活~

七,

又是一把梭哈。
kubectl apply -f samples/addons/
这里面,啥都有,kiali, prometheus,jaeger,grafana都有。
学前端一样,将这几个的service都弄成nodeport,看到的界面多哈哈。
如果都是nodeport,那么现在输出如下:

[root@localhost istio-1.7.2]# kubectl get pod -n istio-system
NAME                                    READY   STATUS    RESTARTS   AGE
istiod-95bffc969-67qms                  1/1     Running   0          15m
istio-egressgateway-7b49cdb77f-2hbbr    1/1     Running   0          15m
istio-ingressgateway-577b99649b-6nswb   1/1     Running   0          15m
prometheus-9d5676d95-nsg2r              2/2     Running   0          8m56s
grafana-75b5cddb4d-tfm7m                1/1     Running   0          8m57s
jaeger-5795c4cf99-ppqtt                 1/1     Running   0          8m56s
kiali-6c49c7d566-gk4dn                  1/1     Running   0          8m56s
[root@localhost istio-1.7.2]# kubectl get svc -n istio-system
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                                                      AGE
istio-egressgateway    ClusterIP   10.43.28.91     <none>        80/TCP,443/TCP,15443/TCP                                                     15m
istio-ingressgateway   NodePort    10.43.173.235   <none>        15021:30659/TCP,80:31998/TCP,443:31133/TCP,31400:31511/TCP,15443:32212/TCP   15m
istiod                 ClusterIP   10.43.113.220   <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP,853/TCP                                15m
kiali                  NodePort    10.43.11.85     <none>        20001:32475/TCP,9090:30778/TCP                                               9m2s
grafana                NodePort    10.43.148.20    <none>        3000:30137/TCP                                                               9m3s
tracing                NodePort    10.43.170.152   <none>        80:31277/TCP                                                                 9m2s
zipkin                 NodePort    10.43.24.116    <none>        9411:32689/TCP                                                               9m2s
prometheus             NodePort    10.43.166.219   <none>        9090:31285/TCP          

八,更新kiali的configmap设置

kubectl edit configmap -n istio-system kiali
按下图的套路来。

20200929230525414.png

我觉得应该可以直接在Yaml里搞,但这里这样快
删除这个kiali的pod,自动重新建POD,让configmap更新生效。

kubectl delete pod -n istio-system $(kubectl get pod -n istio-system | grep -i kiali | awk '{print $1}')

九,UI测试

多访问bookinfo(http://192.168.1.214:31998/productpage)几次,然后,去看看各个UI的功能吧。
http://192.168.1.214:32475/kiali/console/overview?duration=60&refresh=15000

2020-11-02 22_32_35-悬浮球.png

2020-11-02 22_32_16-悬浮球.png
2020-11-02 22_31_36-悬浮球.png
2020-11-02 22_31_09-悬浮球.png

http://192.168.1.214:31277/jaeger/search

2020-11-02 22_33_52-悬浮球.png

2020-11-02 22_33_35-悬浮球.png
2020-11-02 22_33_19-悬浮球.png
2020-11-02 22_33_06-悬浮球.png

http://192.168.1.214:30137/d/UbsSZTDik/istio-workload-dashboard?orgId=1&var-workload=ratings-v1&var-namespace=default&refresh=10s

2020-11-02 22_34_58-悬浮球.png

十,铲除istio

删除应用,再加下面两条命令,应该妥妥的。

samples/bookinfo/platform/kube/cleanup.sh
kubectl delete ns istio-system
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354