Kubernetes YAML マニフェストを使用して Docker コンテナをデプロイし、ポート マッピング/転送を行う方法

Kubernetes YAML マニフェストを使用して Docker コンテナをデプロイし、ポート マッピング/転送を行う方法

以下の docker コマンドを Kubernetes YAML ファイルに変換し、docker コンテナへのポート マッピング/転送を行うのを手伝ってください。

 # docker run -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p 16686:16686 -p 14268:14268 jaegertracing/all-in-one:latest

以下の構成を試しました:

ここに画像の説明を入力してください

しかし、何の結果も得られません。

上記のデプロイメント ファイルが間違っているかどうか、また間違っている場合は、結果を得るためにここでどのような変更を加えることができるかを教えてくれる専門家が必要です。他の組み合わせをいくつか試しましたが、結果が得られません。

注: コンテナはデプロイされますが、ポート マッピング/転送が機能しません。これが私が行き詰まっているところであり、助けを求めています。

答え1

NodePort サービスを指定すると、Kubernetes はすべてのノードにポートを割り当てます。選択された NodePort は、作成後にサービス仕様に表示されます。または、サービスの作成時に仕様で NodePort として使用する特定のポートを指定することもできます。特定の NodePort が指定されていない場合は、Kubernetes クラスターで構成された範囲 (デフォルト: 30000-32767) からポートがランダムに選択されます。

Kubernetes では、# ポート ラベルを使用してポートを定義できます。このラベルは、デプロイメントのポート構成の下にあります。構成に応じて、必要な数のポートを簡単に定義できます。次の例は、2 つのポートを定義する方法を示しています。

apiVersion: v1 
kind: Service
 Metadata:
      name: my-service 
Spec:
  selector: 
     app: MyApp 
  Ports:
    - name: http
      protocol: TCP
      port: 80 
      targetPort: 9376 
    - name: https
      protocol: TCP
      port: 443 
      targetPort: 9377

ローカル ホストにポート転送を行うには、次のコマンドを実行します。

 kubectl port-forward <pod-name> <locahost-port>:<pod-port>

詳細については、以下のリンクを参照してください。Dockerコンテナのポート転送そしてノードポート

関連情報