使用SDK操作istio资源 本章节介绍如何使用SDK操作istio资源 Go语言版本 准备工作 1. 创建应用服务网格实例。 2. 到云容器引擎控制台找到应用服务网格控制面部署所在的集群,创建命名空间demo。 3. 获取网格控制面云容器引擎集群的kubeconfig信息,保存到本地文件中。 4. 准备一个VirtualService资源,保存到vs.yaml文件中。 具体操作 使用go在default命名空间创建VirtualService资源并列举default命名空间下所有的VirtualService资源,代码示例: package main import ( "context" "flag" "gopkg.in/yaml.v2" "istio.io/clientgo/pkg/apis/networking/v1beta1" "istio.io/clientgo/pkg/clientset/versioned" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/clientgo/tools/clientcmd" "log" "os" ) var ( ns flag.String("namespace", "demo", "namespace to deploy") vsFile flag.String("vs", "vs.yaml", "virtual service yaml") kubeConf flag.String("kubeconfig", "", "kube config file") ) func main() { flag.Parse() rc, err : clientcmd.BuildConfigFromFlags("", kubeConf) if err ! nil { panic(err) } clientset, err : versioned.NewForConfig(rc) if err ! nil { panic(err) } bytes, err : os.ReadFile(vsFile) if err ! nil { panic(err) } vs : &v1beta1.VirtualService{} err yaml.Unmarshal(bytes, vs) if err ! nil { panic(err) } log.Println(vs) , err clientset.NetworkingV1beta1().VirtualServices(ns).Create(context.TODO(), vs, v1.CreateOptions{}) if err ! nil { panic(err) } vsList, err : clientset.NetworkingV1beta1().VirtualServices(ns).List(context.TODO(), v1.ListOptions{}) if err ! nil { panic(err) } for , vsItem : range vsList.Items { log.Println(vsItem) } }