GNU/Linux >> Linux の 問題 >  >> Cent OS

kubectlポートフォワーディングを設定する方法

はじめに

Kubectlポートフォワード ローカルホストから内部Kubernetesクラスタプロセスにアクセスして操作できるようにします。この方法を使用すると、問題を調査し、事前に公開しなくてもローカルでサービスを調整できます。

Kubectlは、Kubernetesクラスターを管理するための主要なコマンドラインツールです。これは、アプリケーションのデプロイ、クラスターリソースの管理、および複雑なフレームワークの構築に不可欠です。

この簡潔なチュートリアルでは、kubectlを使用してKubernetesクラスタのポッドにポート転送する方法を示します。

前提条件

  • Kubernetesクラスター
  • 完全に構成されたkubectl コマンドラインツール

Kubernetesポートフォワーディングはどのように機能しますか?

Kubernetesは高度に自動化されたオーケストレーションシステムですが、ポート転送プロセスには直接かつ繰り返しのユーザー入力が必要です。ポッドインスタンスに障害が発生すると接続が終了します。同じコマンドを手動で入力して、新しい転送を確立する必要があります。

kubectl という事実により、プロセス全体が簡素化されます。 すでにポート転送機能が組み込まれています。

  1. ユーザーはkubectlを使用してKubernetesとやり取りします ローカルマシンのコマンドライン。
  2. port-forward コマンドは、クラスターリソース名を指定し、ポート転送先のポート番号を定義します。
  3. その結果、Kubernetes APIサーバーは、ローカルホストとクラスタで実行されているリソースの間に単一のHTTP接続を確立します。
  4. ユーザーは、問題を診断したり、必要に応じてデバッグしたりするために、その特定のポッドを直接操作できるようになりました。

ポートフォワーディングは、作業量の多い方法です。ただし、場合によっては、これが内部クラスタリソースにアクセスする唯一の方法です。

基本的なkubectlport-forwardコマンド

port-forward コマンドは、ターゲットポッドからローカルホストへのトンネルを確立します。このコマンドでは、リソースのタイプまたは名前、およびローカルポート番号とリモートポート番号を定義する必要があります。

kubectl port-forward TYPE/NAME [options] LOCAL_PORT:REMOTE_PORT

複数のポッドがタイプ/名前の基準に一致する場合、デフォルトでランダムなポッドが選択されます。このような不整合を回避するには、ポッドをできるだけ正確に定義します。 名前空間内のポッドを手動で一覧表示すると、正確なポッド名を見つけることができます。 次のように入力します:

kubectl -n yournamespace get pods

リストには、その名前空間内のポッドの名前が表示されます。

kubectlポート転送-特定のポッドに転送

たとえば、次のコマンドを使用すると、クラスター内のMongoDBデプロイメントにアクセスできます。ポッドの名前はmongo-db-r3pl1ka3です。 、ポート番号は5762です:

kubectl port-forward pod/mongo-db-r3pl1ka3 8080:5762

Kubernetes APIはローカルポート8080でリッスンし、定義されたポッドのポート5762にデータを転送するようになりました。

ランダムローカルポート

ローカルでランダムなポートでリッスンし、指定されたポッド内のポート5762に転送します:

kubectl port-forward pod/mongo-db-r3pl1ka3 :5762

対応するローカルポートとリモートポート

ローカルと特定のポッド内の両方で同一のポート(8080、5762)を使用してデータをリッスンして転送します:

kubectl port-forward pod/mongo-db-r3pl1ka3 8080 5762

ランダムローカルIPアドレス

任意のローカルアドレスのポート8080でリッスンし、指定されたポッドのポート5762に転送します。

kubectl port-forward --address 0.0.0.0 pod/mongo-db-r3pl1ka3 8888:5762

ポート転送用のローカルIPアドレスを指定する

定義されたIPを使用してローカルホストのポート8080でリッスンし、ポッドのポート5762に転送します。

kubectl port-forward --address localhost,10.153.40.102 pod/mongo-db-r3pl1ka3 8080:5762

Deploymentを使用してポートフォワードポッドを選択

ローカルとポッド内の両方で同じポート(8080 5762)を使用してデータをリッスンして転送します。 導入 使用するポッドを定義します:

kubectl port-forward deployment/mydeployment 8080 5762

サービスによるポート転送ポッドの定義を許可する

ローカルとポッド内の両方で同じポート(8080 5762)を使用してデータをリッスンして転送します。 サービス 使用するポッドを選択します:

kubectl port-forward service/myservice 8080 5762

Cent OS
  1. SSHトンネリングを設定する方法

  2. CentOS 8でDHCPサーバーをセットアップする-その方法は?

  3. CentOSでSSHポートを変更する方法

  1. Web転送を設定する方法

  2. CWPでネームサーバーを設定する方法

  3. CentOS7でシステムロケールを設定する方法

  1. CentOS8でWireguardVPNを設定する方法

  2. CentOS / RHEL 7 でポートを開く方法

  3. AllowTcpForwarding を no に設定して ssh 転送する方法は?