Maison >développement back-end >Golang >Comment créer et récupérer des ressources Kubernetes personnalisées telles que KongPlugins dans Go ?

Comment créer et récupérer des ressources Kubernetes personnalisées telles que KongPlugins dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-29 08:37:30726parcourir

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

Création et récupération de ressources Kubernetes personnalisées

Introduction

La gestion des ressources Kubernetes personnalisées dans le code nécessite comprendre les mécanismes spécifiques de création et de récupération. Cet article montre comment créer et obtenir des ressources personnalisées pour Kong in Go, en abordant les défis courants rencontrés lorsque l'on travaille avec des types de ressources non standard.

Création d'une ressource personnalisée

Pour créer une ressource personnalisée, telle qu'un KongPlugin, le code suivant peut être utilisé :

<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>

Ici, les données KongPlugin sont rassemblées et envoyées comme corps de la requête. La fonction AbsPath fournit le chemin d'accès au point de terminaison API de la ressource personnalisée.

Récupération d'une ressource personnalisée

Pour récupérer une ressource personnalisée, le code suivant peut être utilisé :

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

La fonction AbsPath fournit à nouveau le chemin d'accès au point de terminaison de l'API de la ressource personnalisée. Les données renvoyées contiennent les données brutes de la ressource.

Erreurs de dépannage

Si la récupération échoue avec une erreur telle que "le serveur n'a pas pu trouver la ressource demandée ( get KongPlugin)", assurez-vous que les étapes suivantes sont suivies :

  • La définition de ressource personnalisée (CRD) est installée correctement.
  • Le compte de service utilisé par l'application dispose des autorisations nécessaires pour afficher la ressource.
  • La demande est effectuée avec l'espace de noms et le nom de la ressource corrects.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn