首頁 >後端開發 >Golang >如何使用 Go 用戶端程式庫建立和擷取自訂 Kubernetes 資源?

如何使用 Go 用戶端程式庫建立和擷取自訂 Kubernetes 資源?

Patricia Arquette
Patricia Arquette原創
2024-10-31 22:25:02786瀏覽

How to Create and Retrieve Custom Kubernetes Resources using the Go Client Library?

在 Go 中建立和擷取自訂 Kubernetes 資源

在 Kubernetes 中,您可以定義和管理自訂資源,從而擴展平台的功能。可以使用 Go 用戶端程式庫以程式設計方式完成建立和取得自訂資源。

建立自訂資源

要建立自訂資源(例如 KongPlugin),您需要使用 RESTClient Kubernetes 用戶端集。操作方法如下:

<code class="go">// Create a KongPlugin custom resource.
kongPlugin := &KongPlugin{
    TypeMeta: metav1.TypeMeta{
        APIVersion: "configuration.konghq.com/v1",
        Kind:       "KongPlugin",
    },
    ObjectMeta: metav1.ObjectMeta{
        Name: "add-response-header",
    },
    Config: KongPluginConfig{
        Add: KongPluginConfigAdd{
            Headers: []string{"demo: injected-by-kong"},
        },
    },
    Plugin: "response-transformer",
}

body, err := json.Marshal(kongPlugin)
if err != nil {
    panic(err)
}

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

擷取自訂資源

要擷取自訂資源,您可以使用RESTClient 的Get() 方法:

<code class="go">// Get the KongPlugin custom resource.
data, err := clientset.RESTClient().
    Get().
    AbsPath("/apis/configuration.konghq.com/v1/namespaces/" + namespace + "/kongplugins/add-response-header").
    DoRaw(context.TODO())</code>

AbsPath() 注意:

  • AbsPath() 方法取得Kubernetes 資源的完整絕對路徑。
  • 要找出資源的絕對路徑,請使用 kubectl get -o=jsonpath='{$.metadata.selfLink}'。
  • 或者,您可以透過包含 API 群組、版本、命名空間和資源類型來手動指定路徑。

以上是如何使用 Go 用戶端程式庫建立和擷取自訂 Kubernetes 資源?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn