2016-11-08 9 views
1

私はAWS上で動作するkubernetesクラスタをセットアップしました。私が今やりたいことは、リモートマシンからクラスタを制御することです(例えば、私のmacbook pro)。リモートマシンからKubernetesのRESTful APIを入手するにはどうすればいいですか?

私は、KubernetesにはRESTful APIがあり、Kubectlはプロキシとして機能することが分かっています。 実行することにより: kubectl proxy --port=8001 & 私は例えば、カールとRESTfulなAPIにアクセスすることができます

curl http://localhost:8001/api 

は、それから私は、私はlocalhostのみをカールできることを見出しました。次のコマンドでリモートマシンからカールした場合:

curl http://dns-to-the-k8-machine:8080/api 

私は「接続が拒否されました」と表示されます。私はここで何が起こっているのだろうか?そして、簡単にapiに遠隔からアクセスする方法はありますか?

ありがとうございます。

答えて

0

クラスタをプロビジョニングした方法によっては、APIサーバーが別のポートをリッスンしている可能性があります。 kubeconfigファイル(~/.kube/config)をご覧ください。接続先のサーバーがあるセクションがあるはずです。

また、クラスタで証明書や他の種類の認証を使用している可能性があります。これらは、同じkubeconfigファイルで概説されています。

kubectl proxyを使用している場合、kubectlは上記の部分を自動的に処理し、ローカルホスト経由でラップトップにプロキシし直します。

+0

ありがとうSteve。 kubeconfigは完全に動作します。リモートマシンからクラスタにアクセスできるようになりました。しかし、小さな問題があります。 kubeconfigを認証として使用する場合、kubernetesマスターノードの443ポートとプライベートIPを介して通信することによって、クラスタにアクセスする権限が与えられます。つまり、自分のラップトップではなく、別のawsインスタンスからのみクラスタにアクセスできます。マスターノードの公開IP経由でクラスタにアクセスする権限を与える方法があるのだろうか? –

+0

クラスタをどのように展開しましたか? apiサーバのプライベートIPを指し示すIPまたはロードバランサのエンドポイントを公開する必要があります。 –

関連する問題