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

PHPz
リリース: 2024-02-08 21:24:34
転載
626 人が閲覧しました

使用 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート