美文网首页
istio on k8s,初探

istio on k8s,初探

作者: dracula337435 | 来源:发表于2018-12-23 15:39 被阅读0次

istio官网链接-中文

istio官网截图

我用k8s来尝个鲜
我用的是minikube-v1.4.0istio-v1.3.2
下载安装包的文档
官网安装说明
可见此处,最重要的一点,在下载的安装包中执行命令

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

示例应用

按照官方文档-Bookinfo 应用部署bookinfo示例应用,应用结构如下图所示:

bookinfo涉及到的几个微服务示例

关键步骤可见此处

 kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)

以及

kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

其实,仅有bookinfo.ymal而没有-gateway.yaml时,已经有效果了。
可通过更改service productpagetype,由ClusterIP改为NodePort,此时访问,可见到成功调到了后台的服务。
-gateway.yml很有意思,其实bookinfo中的各servicetypeClusterIP,这也意味着外部不能访问。加上此yml后,可从外部访问了,只是需要通过istio-system下的service istio-ingressgateway

自己来一个试试

之前的bookinfo-gateway.yml中已定义了一个gateway和一个VirtualService。理解的重点,依赖链条VirtualService->Gateway->istio的ingressgateway

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: bookinfo-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: bookinfo
spec:
  hosts:
  - "*"
  gateways:
  - bookinfo-gateway
  http:
  - match:
    - uri:
        exact: /productpage
    - uri:
        exact: /login
    - uri:
        exact: /logout
    - uri:
        prefix: /api/v1/products
    route:
    - destination:
        host: productpage
        port:
          number: 9080

已有一个service some-tomcat18080 -> 8080,仿照写一个

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: tomcat
spec:
  hosts:
  - "*"
  gateways:
  - bookinfo-gateway
  http:
  - match:
    - uri:
        exact: /test-vs-tomcat-exact
    - uri:
        prefix: /test-vs-tomcat-prefix
    route:
    - destination:
        host: some-tomcat
        port:
          number: 18080

对比exactprefix

类型 url示例 被转发
exact /exact
exact /exact-blabla ×
prefix /prefix
prefix /prefix-blabla

但是,这个不像反向代理,去掉匹配到的前缀,比如,访问/exact,转发到tomcat,路径仍是/exact;访问/prefix-blabla,转发到tomcat,路径仍是/prefix-blabla

相关文章

网友评论

      本文标题:istio on k8s,初探

      本文链接:https://www.haomeiwen.com/subject/osjnkqtx.html