2017-08-10 21 views
2

Googleコンテナエンジンに複数の同じドッカーコンテナを展開しようとしています。 https://cloud.google.com/container-engine/docs/tutorials/hello-nodeGoogleコンテナエンジン、ポッドへの直接アクセス

ロードバランサによって管理される冗長サービスを実行する方法を説明しているので、バランサに連絡すると、私の冗長ポッドの1つに要求が送信されます。そしてそのモードでは、うまく動作します。

しかし、これを別の方法で行う必要があります。私はクライアントから直接個々のポッドに連絡できる必要があります。

mac-124307:hellonode ivm$ kubectl expose deployment hello-world --type=NodePort --port 9000 --target-port 9000 
service "hello-world" exposed 

mac-124307:hellonode ivm$ kubectl get service 
NAME   CLUSTER-IP  EXTERNAL-IP PORT(S)   AGE 
hello-world 10.15.253.149 <nodes>  9000:30513/TCP 21m 
kubernetes 10.15.240.1  <none>  443/TCP   46m 

コマンドは文句はありません、と私は外部IPは、個々の対処を参照するには、「のgcloudコンピューティングインスタンスのリスト」を使用することができます。だから、私はコマンド「の展開を公開kubectl」と--type = NodePortを使用しようとしていますポッド:

mac-124307:hellonode ivm$ gcloud compute instances list 
NAME           ZONE   MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP  STATUS 
gke-hello-cluster-default-pool-402030b2-j60q us-central1-a n1-standard-1    10.128.0.3 104.197.72.212 RUNNING 
gke-hello-cluster-default-pool-402030b2-q86r us-central1-a n1-standard-1    10.128.0.4 35.192.4.43  RUNNING 
gke-hello-cluster-default-pool-402030b2-tf7t us-central1-a n1-standard-1    10.128.0.2 146.148.72.137 RUNNING 

が、私は、これらのIPアドレスのいずれかでポート9000への私の接続がタイムアウトを接続してみてください。

mac-124307:hellonode ivm$ curl http://104.197.72.212:9000/ 
... <time-out> 

私は間違っていますか?

+0

Google Cloud Firewallにポート9000を開設しましたか? –

+0

直接トラフィックをポッドにルーティングすると、k8の設計原則のいくつかが無効になります。あなたは個々のポッドに直接手を伸ばして何を達成しようとしていますか? – danielepolencic

答えて

1

割り当てられたノードポートが30513であることに注意してください。 9000を使用しています。これは、ClusterIPのポート番号10.15.253.149が割り当てられています。

また、Ericの提案するように、ファイアウォールにポート30513を開いておく必要があります。

このポッドに一度だけアクセスする必要がある場合は、kubectl port-forward name-of-a-hello-pod 9000を使用して、ワークステーションの127.0.0.1:9000をポッドに直接転送することもできます。もちろんこれは、kubect port-forwardが実行されている間だけ動作します。

関連する問題