2017-04-26 9 views
0

Google Cloudにk8sクラスタがあり、そこにフロントエンド/ apiコンテナがあります。 Google CloudにElasticSearchクラスター(es1、es2)がありますが、k8sの下にはありません。kubernetesコンテナからGoogle Cloudインスタンスにアクセスする方法

私は名前をコンテナから 'API' 'フロントエンド' でAPIコンテナにアクセスすることができます。 es1es2からアクセス可能な名前は「es1」です。

コンテナのAPI /フロントエンドからES1のような名前でESクラスタ、ES2にアクセスするための正しい方法は何ですか?

ありがとうございます!

答えて

0

あなたは、彼らがクラスタ内にあるかのようにあなたのKubernetesクラスタの外部のリソースを参照したい場合は、最も簡単なオプションは、各ElasticSearchインスタンスの静的IPを割り当て、その後、手動のエンドポイントとのKubernetesサービスを指定することが考えられます:

https://kubernetes.io/docs/concepts/services-networking/service/#services-without-selectors

あなたが持っている各インスタンスごとにエンドポイントエントリを追加できます。これで、内部クラスタDNSは、クラスタ内のポッドであるかのように、esインスタンスの解決と負荷分散を行います。

あなたは(サービスセレクタの欠如に注意してください)このようなエンドポイントを作成:

kind: Endpoints 
apiVersion: v1 
metadata: 
    name: my-service 
subsets: 
    - addresses: 
     - ip: 1.2.3.4 
    ports: 
     - port: 9376 
--- 

kind: Service 
apiVersion: v1 
metadata: 
    name: my-service 
spec: 
    ports: 
    - protocol: TCP 
     port: 80 
     targetPort: 9376 

は今、あなたは通常通り my-service.my-namespace.svc.cluster.localを使用してサービスにアクセスすることができます。

+0

ありがとう!私はそれを試みます – Nick

1

インスタンスと同じネットワーク/サブネットワークでKubernetes Cluster(GKE)を作成すると、k8sポッドからGCEインスタンスの内部IPを接続できます。

関連する問題