1. ホーム
  2. kubernetes

[解決済み] kubectlのポートフォワードはどのように動作しますか?

2022-03-01 21:27:46

質問

kubectl は、アプリケーションのサービスを作成するために使用できるコマンドを公開し、インターネットからそれにアクセスするためのIPアドレスを割り当てます。

私が理解する限り、Kubernetesクラスタ内の任意のアプリケーションにアクセスするには、Serviceリソースが作成され、外部ネットワークからアクセス可能なIPアドレスを持つ必要があります。

しかし port-forward はどのように kubectl 外部からアクセス可能なIPアドレスを持たないアプリケーションへの接続を作成しますか?

解決方法は?

kubectl port-forward は、特定の Kubernetes API のリクエスト . つまり、それを実行しているシステムは、APIサーバーにアクセスする必要があり、あらゆるトラフィックは単一のHTTP接続を介してトンネル化されることになります。

この機能はデバッグにとても便利です(ある特定のポッドが動作している場合、それに直接接続できます。マイクロサービス環境では、他の方法では公開しないバックエンドサービスに話しかけることができます)。 私が kubectl port-forward サービス経由でPodに接続するよりも明らかに遅く、数分後にコマンドが停止するのを見たことがあります。 これらはデバッグのための大きな問題ではありませんが、実稼働システムには必要ないものです。