首页 > 后端开发 > Golang > 如何在 Go 中创建和检索自定义 Kubernetes 资源(例如 KongPlugins)?

如何在 Go 中创建和检索自定义 Kubernetes 资源(例如 KongPlugins)?

Patricia Arquette
发布: 2024-10-29 08:37:30
原创
728 人浏览过

How do you create and retrieve custom Kubernetes resources like KongPlugins in Go?

创建和检索自定义 Kubernetes 资源

简介

在代码中管理自定义 Kubernetes 资源需要了解创建和检索的具体机制。本文演示了如何在 Go 中为 Kong 创建和获取自定义资源,解决使用非标准资源类型时面临的常见挑战。

创建自定义资源

要创建自定义资源(例如 KongPlugin),可以使用以下代码:

<code class="go">body, err := json.Marshal(&KongPlugin{
    TypeMeta: metav1.TypeMeta{
        APIVersion: "configuration.konghq.com/v1",
        Kind:       "KongPlugin",
    },
    ObjectMeta: metav1.ObjectMeta{
        Name:      "add-response-header",
        Namespace: "<namespace>",
    },
    Config: KongPluginConfig{
        Add: KongPluginConfigAdd{
            Headers: []string{"demo: injected-by-kong"},
        },
    },
    Plugin: "response-transformer",
})

data, err := clientset.RESTClient().
    Post().
    AbsPath("/apis/configuration.konghq.com/v1/namespaces/<namespace>/kongplugins").
    Body(body).
    DoRaw(context.TODO())</code>
登录后复制

此处,KongPlugin 数据被编组并作为请求正文发送。 AbsPath 函数提供自定义资源的 API 端点的路径。

检索自定义资源

要检索自定义资源,可以使用以下代码:

<code class="go">data, err := clientset.RESTClient().
    Get().
    AbsPath("/apis/configuration.konghq.com/v1/namespaces/<namespace>/kongplugins/kongplugin-sample").
    DoRaw(context.TODO())</code>
登录后复制

AbsPath 函数再次提供自定义资源的 API 端点的路径。返回的数据包含资源的原始数据。

排查错误

如果检索失败,并出现“服务器找不到请求的资源( get KongPlugin)”,请确保执行以下步骤:

  • 自定义资源定义 (CRD) 已正确安装。
  • 应用程序使用的服务帐户具有必要的权限查看资源。
  • 使用正确的命名空间和资源名称发出请求。

以上是如何在 Go 中创建和检索自定义 Kubernetes 资源(例如 KongPlugins)?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板