在代码中使用SDK操作Istio资源

定制资源(Custom Resource)是对Kubernetes API的扩展,Istio在K8s原生资源的基础上增加了VirtualService、Gateway等定制资源。您可以集成对应语言的SDK Client,在代码中操作Istio定制资源。本文介绍如何在代码中使用SDK操作Istio资源。

前提条件

创建虚拟服务和网关规则的YAML文件

  1. 使用以下内容,创建virtualService.yaml文件。
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: bookinfo
    spec:
      hosts:
      - "*"
      gateways:
      - bookinfo-gateway
      http:
      - match:
        - uri:
            exact: /productpage
        - uri:
            prefix: /static
        - uri:
            exact: /login
        - uri:
            exact: /logout
        - uri:
            prefix: /api/v1/products
        route:
        - destination:
            host: productpage
            port:
              number: 9080
  2. 使用以下内容,创建gateway.yaml文件。
    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
      name: bookinfo-gateway
    spec:
      selector:
        istio: ingressgateway
      servers:
      - port:
          number: 80
          name: http
          protocol: HTTP
        hosts:
        - "*"

操作Istio资源

创建完虚拟服务和网关规则后,您可以集成对应语言的SDK Client,在代码中操作Istio资源。

语言参考文档
Java使用Java SDK操作Istio资源
Go使用Go SDK操作Istio资源