私は fabric8.io を使用して、Kubernetes でアプリケーション コンテナーを調整しています。特定のポートで特定のラベルを持つポッドを管理するサービスを作成しようとしています。これを行う API の具体的な例はありますか。私は例でそれを見つけることができませんでした
利用可能なjavadocがないようです???
私は fabric8.io を使用して、Kubernetes でアプリケーション コンテナーを調整しています。特定のポートで特定のラベルを持つポッドを管理するサービスを作成しようとしています。これを行う API の具体的な例はありますか。私は例でそれを見つけることができませんでした
利用可能なjavadocがないようです???
Fabric8 の Kubernetes クライアントは、生成されたモデルと、JSON および YAML 構成とまったく同じ構造を持つ DSL を使用しています。
したがって、次のような Service インスタンスを作成するには:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "myservice"
},
"spec": {
"ports": [
{
"protocol": "TCP",
"port": 80,
"targetPort": 8080,
}
],
"selector": {
"key": "value1",
},¬
"portalIP": "172.30.234.134",
"type": "ClusterIP",
}
}
次のコードを使用できます。
Service service = new ServiceBuilder()
.withNewMetadata()
.withName("myservice")
.endMetadata()
.withNewSpec()
.addNewPort()
.withProtocol("TCP")
.withPort(80)
.withNewTargetPort(8080)
.endPort()
.addToSelector("key1", "value1")
.withPortalIP("172.30.234.134")
.withType("ClusterIP")
.endSpec()
.build();
サービス オブジェクトの参照を保持する必要がなく、作成するだけの場合は、次のようにインライン化できます。
client.services().createNew()
.withNewMetadata()
.withName("myservice")
.endMetadata()
.withNewSpec()
.addNewPort()
.withProtocol("TCP")
.withPort(80)
.withNewTargetPort(8080)
.endPort()
.addToSelector("key1", "value1")
.withPortalIP("172.30.234.134")
.withType("ClusterIP")
.endSpec()
.done();
デフォルト値をコミットでき、セレクターのようなものをオプションで 1 行にインライン化できるため、同等の JSON よりもさらにコンパクトです。
これはサービスだけでなく、すべての Kubernetes/Openshift リソースに適用されます。
JSON または YAML が配置されている場合は、クライアントに入力ストリームを提供することで簡単にロードできます。
Service service = client.services().load(inputStream).get();
ここには、サービスを直接作成するなど、さらに多くのオプションがあります。
Service newService = client.services().load(inputStream).create();
言語や形式に関係なく、構造は常に同じであることを常に覚えておくと役に立ちます。ほとんど何でもインライン化できるため、IDE でのタブ補完は非常に役立ちます。
作成しているリソース タイプ (ポッド、サービス、デプロイなど) がわからない場合は、使用できます
client.load(inputStream).createOrReplaceAnd();
作成したリソースを作成または更新します。
注: 複数のリソースを 1 つの yaml ファイルで作成し、最新の kubernetes クライアントを使用して作成する場合、最初のリソースのみを作成できます。
kubernetes ダッシュボードまたは kubectl を使用すると、同じ yaml ファイルにリストされた複数のリソースを作成できるはずです。