istio-ui——一款开源的简易Istio UI的介绍和使用教程

栏目: 后端 · 发布时间: 6年前

内容简介:​ 开发校验是必须的,没人能保证自己不犯错,即使是

istio-ui——一款开源的简易Istio UI的介绍和使用教程

由来

​ 开发 istio-ui 是由于运维: 到时候线上几百个istio配置文件管理会很麻烦 。其实在开始接触istio的时候,我们其他同学就有这样的想法,当时大家都认为不久官方或社区就会有相应的产品出来。但等了几个月还是没音讯,所以我们就按照我们自己的需求开发了 istio-ui ,并且开源。当然现在还是一块滑板。离奔驰还需要慢慢雕琢。 在这个基础上,结合我们当前服务环境,增加了:校验,注入,模板等功能。

校验

校验是必须的,没人能保证自己不犯错,即使是 Ctrl+CCtrl+V

注入

有三种方式

  • 一键注入

基于运行中的服务 Deployment:apps/v1 进行注入,使用这种方式服务会被重新部署

  • 文件上传注入

将需要注入的文件发送到远程api接口

kubectl apply -f <(curl -F "config=@samples/bookinfo/platform/kube/bookinfo.yaml" http://localhost:9100/inject/file)
  • 内容注入

将需要注入的内容发送到远程api接口

kubectl apply -f <(curl -X POST --data-binary @samples/bookinfo/platform/kube/bookinfo.yaml -H "Content-type: text/yaml" http://localhost:9100/inject/context)

​ 一键注入主要用于测试和学习,因为他需要二次部署,不适用于生产。而api接口注入是为了和持续集成部署结合起来。

模板

​ 模板这个功能我们还在思考中,在使用istio过程中发现,不同服务的服务治理配置很多是一样的,不会出现 千人千面 的情况,所以打算实现通过模板形式管理配置。

k8s编排管理

​ 这是我们运维的想法,把k8s的编排也放在 istio-ui 管理,为了方便持续集成部署。但这个功能还没确定是否在 istio-ui 上开发,因为 istio-ui 的职责设定是管理istio的配置,如果把k8s的编排也放过来,那时候应该不叫 istio-ui 了。

安装

安装前先确认已安装k8s

  • docker

需要先设置 KUBECONFIG ,这是授权istio-ui访问k8s的api-server接口

docker run -itd -v $KUBECONFIG:$HOME/.kube/config -p9100:9100 
--name istio-ui --env KUBECONFIG=$HOME/.kube/config registry.cn-shenzhen.aliyuncs.com/jukylin/istio-ui:v0.1
  • k8s
kubectl apply -f https://raw.githubusercontent.com/jukylin/istio-ui/master/istio-ui.yaml

新手任务

​ 在任务开始前先确认已安装k8s, istioistio-ui ,在这个任务中我们使用k8s安装 istio-ui ,用官网的 Bookinfo 作为例子。

获取Istio-ui的IP

istio-ui.yaml 默认使用 LoadBalancer 部署

export ISTIOUI_IP=kubectl get service istio-ui -o jsonpath='{.status.loadBalancer.ingress[0].ip}'

使用api接口注入部署 Bookinfo

kubectl apply -f <(curl -F "config=@samples/bookinfo/platform/kube/bookinfo.yaml" http://ISTIOUI_IP:9100/inject/file)

配置Gateway

  • 访问gateway配置页
http://ISTIOUI_IP:9100/static/index.html#/global-istio-config?type=gateway
  • 添加下面配置
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: istio-ui-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - hosts:
    - "*"
    port:
      name: gateway-http
      number: 80
      protocol: HTTP

istio-ui——一款开源的简易Istio UI的介绍和使用教程

配置VirtualService

  • 访问Deployment配置页
http://ISTIOUI_IP:9100/static/index.html#/deploy
  • 点击productpage-v1的 istio配置 ,添加下面配置
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: productpage-vs
spec:
  hosts:
  - "productpage.example.com"
  gateways:
  - istio-ui-gateway
  http:
  - match:
    route:
    - destination:
        host: productpage
        port:
          number: 9080

istio-ui——一款开源的简易Istio UI的介绍和使用教程

绑定host

  • 获取 INGRESS_IP
export INGRESS_IP=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  • 将productpage.example.com 和 INGRESS_IP进行绑定

浏览器预览结果

http://productpage.example.com/productpage?u=normal

istio-ui——一款开源的简易Istio UI的介绍和使用教程

​ 至此新手任务已经完成, istio-ui 和官方提供的配置方式区别只是在于线上和线下配置,直接用来做官方的新手任务是一样的效果,而且为了保证原生性,我们并没有对配置进行1byte的修改。

结语

istio-ui 的功能还不算完善,希望有兴趣的同学,可以贡献想法或代码,一起打造一个易用的istio-ui配置管理后台。前段时间听说 sofa-mesh 也在做对应的istio-ui后台,期待能早点推向社区,让我们参考学习。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning Java Objects中文版从概念到代码

Beginning Java Objects中文版从概念到代码

巴克 / 万波 / 人民邮电出版社 / 2007-1 / 78.00元

《Beginning Java Objects中文版从概念到代码(第2版)》是关于软件对象和Java的,但并不是纯粹地介绍Java语言,而是强调如何从对象模型转换到功能完整的Java应用程序。书中讲述了对象基础、对象建模和模型的实现。《Beginning Java Objects中文版从概念到代码(第2版)》除了用学生注册系统(SRS)示例贯穿全书之外,还在附录中给出三个附加的案例,这些案例是每章......一起来看看 《Beginning Java Objects中文版从概念到代码》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具