创建和检索自定义 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)”,请确保执行以下步骤:
以上是如何在 Go 中创建和检索自定义 Kubernetes 资源(例如 KongPlugins)?的详细内容。更多信息请关注PHP中文网其他相关文章!