
以下の 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コンテナのポート転送そしてノードポート。