
請幫助我將以下 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 中,您可以使用 # port label 定義連接埠。此標籤位於部署中的連接埠配置下。根據配置,您可以簡單地定義您想要的任意數量的連接埠。以下範例顯示如何定義兩個連接埠。
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容器連接埠轉發和節點連接埠。