定制资源(Custom Resource)是对Kubernetes API的扩展,Istio在K8s原生资源的基础上增加了VirtualService、Gateway等定制资源。您可以集成对应语言的SDK Client,在代码中操作Istio定制资源。本文介绍如何在代码中使用SDK操作Istio资源。
前提条件
- 已创建ASM实例。具体操作,请参见创建ASM实例。
- 已添加ACK集群到ASM实例。具体操作,请参见添加集群到ASM实例。
- 已部署Bookinfo应用示例到ASM实例的ACK集群中。具体操作,请参见在ASM实例关联的集群中部署应用。
- 已在ASM实例的ACK集群中部署入口网关。具体操作,请参见创建入口网关。
创建虚拟服务和网关规则的YAML文件
- 使用以下内容,创建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
- 使用以下内容,创建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资源 |