首页  >  文章  >  后端开发  >  如何使用 RESTClient 创建和获取自定义 Kubernetes 资源?

如何使用 RESTClient 创建和获取自定义 Kubernetes 资源?

DDD
DDD原创
2024-10-29 01:26:30859浏览

How do I Create and Get Custom Kubernetes Resources using RESTClient?

创建/获取自定义 Kubernetes 资源

创建自定义 Kubernetes 资源

创建自定义 Kubernetes 资源,例如如 KongPlugin 示例所示,使用 RESTClient() 方法指定资源的路径。您可以使用 Fluent 界面:

<code class="go">data, err := clientset.RESTClient().
        Get().
        AbsPath("/apis/<api>/<version>").
        Namespace("<namespace>").
        Resource("kongplugins").
        Name("kongplugin-sample").
        DoRaw(context.TODO())</code>

或者手动指定路径:

<code class="go">data, err := clientset.RESTClient().
        Get().
        AbsPath("/apis/<api>/<version>/namespaces/<namespace>/kongplugins/kongplugin-sample").
        DoRaw(context.TODO())</code>

您可以在自定义资源的自链接中找到 AbsPath。

获取自定义 Kubernetes 资源

类似地,要获取自定义 Kubernetes 资源,请使用 RESTClient() 方法指定资源的路径。使用 json 包编组要发布的数据,并使用 Body() 方法发送数据:

<code class="go">kongPlugin := &KongPlugin{
        TypeMeta: metav1.TypeMeta{
            APIVersion: "<api>/<version>",
            Kind:       "KongPlugin",
        },
        ObjectMeta: metav1.ObjectMeta{
            Name:      "kongplugin-sample",
            Namespace: "<namespace>",
        },
        ...}}

body, err := json.Marshal(kongPlugin)

data, err := clientset.RESTClient().
        Post().
        AbsPath("/apis/<api>/<version>/namespaces/<namespace>/kongplugins").
        Body(body).
        DoRaw(context.TODO())</code>

注意,Body() 方法的参数是一个空接口,允许您使用根据 Kubernetes 文档,不同类型的参数。

以上是如何使用 RESTClient 创建和获取自定义 Kubernetes 资源?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn