ホームページ >バックエンド開発 >Golang >Go で KongPlugin などのカスタム Kubernetes リソースを作成および取得するにはどうすればよいですか?

Go で KongPlugin などのカスタム Kubernetes リソースを作成および取得するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-29 08:37:30728ブラウズ

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 で KongPlugin などのカスタム Kubernetes リソースを作成および取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。