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 サイトの他の関連記事を参照してください。