ホームページ >バックエンド開発 >Golang >go Kubernetes クライアントを使用してカスタム リソースを作成する

go Kubernetes クライアントを使用してカスタム リソースを作成する

PHPz
PHPz転載
2024-02-08 21:24:34665ブラウズ

使用 go Kubernetes 客户端创建自定义资源

php エディタ Xiaoxin では、go Kubernetes クライアントを使用してカスタム リソースを作成する方法を紹介します。クラウド ネイティブ テクノロジーの発展に伴い、コンテナ オーケストレーション プラットフォームとして Kubernetes を採用する企業が増えています。カスタム リソース (CRD) の作成は Kubernetes の重要な機能であり、開発者がアプリケーションとサービスを Kubernetes にシームレスに統合するのに役立ちます。この記事では、go Kubernetes クライアントを使用してカスタム リソースを作成する方法を詳しく紹介します。これにより、Kubernetes で独自のアプリケーションをより柔軟に管理およびデプロイできるようになります。

質問内容

Go kubernetes クライアントを使用して、デプロイされた crd に基づいてカスタム リソースをデプロイしたいと考えています。お客様のドキュメントに基づいて、例を次のように変更しました:

リーリー

コードを実行しようとすると、ロガーからフィードバックが得られません。エラーですがパニックです:

リーリー

すべてが http リクエスト処理内で実行されていますが、他の (CRD ベースではない) リソースで使用しているため、問題はないと思います。 ロギングを拡張すると、

という行を使用してリソースが作成されるまではすべて正常に動作することがわかりました。
u := &unstructured.unstructured{}
u.object = map[string]interface{}{
    "metadata": map[string]interface{}{
        "name": task.name,
    },
    "spec": map[string]interface{}{
        "steps": []interface{}{
            map[string]interface{}{
                "image": "ubuntu",
                "name":  "hello",
                "command": []interface{}{
                    "echo",
                },
                "args": []interface{}{
                    "hello world!",
                },
            },
        },
    },
}
u.setgroupversionkind(schema.groupversionkind{
    group:   "tekton.dev",
    version: "v1beta1",
    kind:    "task",
})

err := c.create(context.background(), u)
if err != nil {
    logger.error("error creating tektontask!", "err", err)
} else {
    logger.info("created tektontask.", "task", u)
}

解決策

問題が見つかりました。クライアントを初期化するのを忘れてしまいました

リーリー

以上がgo Kubernetes クライアントを使用してカスタム リソースを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。