【问题标题】:What is the usage of port option in kubectl exposekubectl expose中端口选项的用途是什么
【发布时间】:2019-08-16 22:09:41
【问题描述】:

我不清楚命令kubectl expose deployment demo ---port=8080 --target-port=8080 --type=NodePort中端口选项的用法

我知道此命令用于向外部公开部署,target port 是容器上的端口。运行此命令后,Minikube 会在节点上随机分配一个端口。然后我可以通过这个端口访问我的服务。 --port 选项的用法如何?它是集群中用户/客户端的端口吗?

【问题讨论】:

  • 我发现目前在kubectl,你无法选择暴露的端口。你可以:a) 使用kubectl expose deployment demo ---port=8080 --target-port=8080 --type=NodePort,然后使用kubectl edit 更改配置。 b) 使用 yaml 文件创建部署服务。

标签: kubernetes kubectl minikube


【解决方案1】:

根据docskubectl expose 将资源公开为新的 Kubernetes 服务,其中:

  • --port 是“...服务应在其上提供服务的端口。如果未指定,则从公开的资源复制”。

  • --target-port 是“...服务应将流量定向到的容器端口的名称或编号。可选”。

因此,--port 标志指定了可以访问服务的端口。需要注意的是,对于NodePort 类型,“...Kubernetes 控制平面从 --service-node-port-range 标志指定的范围内分配一个端口(默认值:30000-32767)”。

如果要附加 NodePort 端口,并假设默认设置,请尝试使用上述范围内的端口号。例如:

kubectl expose deployment demo --port=31080 --target-port=8080 --type=NodePort

另一种选择是使用 kubectl create service nodeport 和正确的 node-port 标志。它记录在here

这可能是个人喜好,但尽管 kubectl run、expose 和类似命令很方便,但我宁愿使用 (declarative) 配置文件,这些文件在代码仓库中签入并进行版本控制,而不是使用 @ 987654325@ :-)

【讨论】:

  • 非常感谢,所以如果我使用一个端口,比如 8080,而不是在 30000-32767 范围内,它会被随机分配,对吧?
猜你喜欢
  • 2017-10-25
  • 2022-09-30
  • 2018-11-05
  • 2013-08-12
  • 2020-03-18
  • 2020-04-18
  • 2011-05-21
  • 1970-01-01
  • 2020-04-30
相关资源
最近更新 更多