ホームページ  >  記事  >  バックエンド開発  >  ReST インターフェースを使用して Kubernetes APIServer から「フレンドリーな」応答を取得する方法

ReST インターフェースを使用して Kubernetes APIServer から「フレンドリーな」応答を取得する方法

WBOY
WBOY転載
2024-02-09 08:10:181182ブラウズ

如何使用 ReST 接口从 Kubernetes APIServer 获取“友善”响应

php エディタ Apple は、ReST インターフェイスを使用して Kubernetes APIServer から「フレンドリーな」応答を取得する方法を紹介します。 Kubernetes は、クラスター内のさまざまなリソースを管理および監視するための API を提供する、人気のあるコンテナー オーケストレーション プラットフォームです。 ReST インターフェイスを使用すると、Kubernetes APIServer と簡単に対話し、必要な情報を取得できます。この記事では、ReST インターフェイスを使用して認証、リクエストの送信、応答の処理を行う方法と、考えられるエラー状態の処理方法を詳しく説明します。 Kubernetes を初めて使用する場合でも、Kubernetes の経験豊富なユーザーでも、この記事は役立つガイダンスと実践的なアドバイスを提供します。

質問内容

私は golang client-go ライブラリを使用して、Rest get、post レベルで kubernetes API サーバーと通信しています。受信した応答は整形式の JSON 構造ではなく、API オブジェクトの「種類」でもありません。

プログラムの断片は次のとおりです:

リーリー

応答は次で始まります:

リーリー

次のコマンドが返すものと同様の出力が期待されます:

kubeconfig := filepath.join(
         os.getenv("home"), ".kube", "config",
    )
    config, err := clientcmd.buildconfigfromflags("", kubeconfig)
    if err != nil {
        log.fatal(err)
    }
    config.negotiatedserializer = scheme.codecs.withoutconversion()


    groupversion, _ := schema.parsegroupversion("api/v1")
    config.groupversion = &groupversion
    config.contenttype = "application/json"

    config.acceptcontenttypes = "application/json"
    
    examplerestclient, err := rest.restclientfor(config)
    if err != nil {
        panic(err)
    }
    
    var statuscode int
    var contenttype string

    response, err := examplerestclient.
        get().
        resource("nodes").
        do(context.background()).
        statuscode(&statuscode).
        contenttype(&contenttype).
        get()
    
    if err != nil {
        panic(err)
    }

    fmt.printf("content-type is %s\n", contenttype)
    fmt.printf("status code is %d\n", statuscode)

    fmt.printf("received response %v\n", response)

解決策

受信した応答は整形式の JSON 構造ではありません

あなたは、client-go モジュールがどのように機能するかについて混乱していると思います。

REST API からの応答は間違いなく 整形式の JSON 応答ですが、これは go データ構造 (this など) にアンマーシャリングされます。

返されたノードにアクセスしたい場合は、標準の go 構文を使用して結果を操作できます。

リーリー

次のコマンドが返すものと同様の出力が期待されます:

なぜ? client-go バインディングは、Go コードに役立つデータを返します。 json 出力を生成したい場合は、リソースを明示的に json 形式にマーシャリングする必要があります: リーリー

以上がReST インターフェースを使用して Kubernetes APIServer から「フレンドリーな」応答を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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