请帮助我将以下 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 标签定义端口。此标签位于部署中的端口配置下。根据配置,您可以轻松定义任意数量的端口。以下示例显示如何定义两个端口。
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 容器端口转发和节点端口。