Google Cloud で次の環境をセットアップしようとしていますが、3 つの大きな問題があります。
データベース クラスタ
- 3 ノード
- 世界に開かれた 1 つのポート、コンピューティング クラスターに開かれたいくつかのポート
コンピューティング クラスター - 5 つのノード - データベース クラスターと通信 - 世界に開かれた 2 つのポート - Docker コンテナーを実行
a)データベース クラスタは正常に動作します。構成ポートは全世界に開いていますが、他のポートをコンピューティング クラスタのみに制限する方法がわかりません。
最初の Pod と Replication-Controller をコンピューティング クラスターで実行することに成功し、コンテナーを世界中に公開するサービスを作成しました。
コントローラ:
{
"id": "api-controller",
"kind": "ReplicationController",
"apiVersion": "v1beta1",
"desiredState": {
"replicas": 2,
"replicaSelector": {
"name": "api"
},
"podTemplate": {
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "apiController",
"containers": [{
"name": "api",
"image": "gcr.io/my/api",
"ports": [{
"name": "api",
"containerPort": 3000
}]
}]
}
},
"labels": {
"name": "api"
}
}
}
}
サービス:
{
"id": "api-service",
"kind": "Service",
"apiVersion": "v1beta1",
"selector": {
"name": "api"
},
"containerPort": "api",
"protocol": "TCP",
"port": 80,
"selector": { "name": "api" },
"createExternalLoadBalancer": true
}
b)コンテナーはポート 3000、サービス ポート 80 を公開します。この 2 つの接続はどこにありますか?
ファイアウォールはラベルで動作します。コンピューティング クラスターで 4 ~ 5 個の異なるポッドを実行し、そのうちの 2 個は世界へのポートを開いています。同じインスタンスで 2 つ以上のコンテナーを実行できます。ただし、ラベルはコンテナではなくノードに固有です。
c)すべてのノードを同じファイアウォール構成で公開しますか? コンテナーにラベルを割り当てることができないため、たとえば API サービスを公開する方法がわかりませんか?