当前位置: 首页 > 知识库问答 >
问题:

从Docker Swarm迁移:向世界公开我的Kubernetes服务(在一个著名的端口上)

羿经武
2023-03-14

我运行了一个想要迁移到Kubernetes的微小(读作:单节点)Docker Swarm集群,我想不出如何在特定端口上公开一个服务,以便从外部世界访问它。

在Docker Swarm中,我可以通过指定

ports:
  - '3306:3306'
ports:
  - port: 3306
    targetPort: 3306
    nodePort: 3306

在服务规范中。但这是不允许的:Kubernetes告诉我提供的端口不在有效范围内。有效端口的范围为30000-32767

然后是Ingress,它似乎与我想要做的事情非常一致,但它处于测试版,显然是针对HTTP服务的(这并不覆盖我的所有用例)。还有LoadBalancer类型,但我没有使用支持它的云提供商,所以这不是我的选择。

这让我有点困惑。如果我想在我的Kubernetes集群中公开一个服务,这样我就可以从外部访问它(例如从some-public-ip:3306上的internet上),那么有什么推荐的(或者是初学者友好的)设置它的方法呢?我错过了什么?

共有1个答案

司空昊阳
2023-03-14

nodeport可能是最简单的方法,但您需要选择30000-32767范围内的端口。这样,您就可以访问some-public-ip:30306,它将在内部映射到服务的端口3306。

 类似资料:
  • 在本节中,我们来了解一些着名的黑客以及它们如何成名。 乔纳森詹姆斯 乔纳森詹姆斯(Jonathan James)是美国黑客。他是第一个因在美国网络犯罪而入狱的少年。他于2008年5月18日自杀(枪伤)。 1999年,在16岁时,他通过破解NASA服务器的密码并窃取了国际空间站的源代码,包括控制生活空间内的温度和湿度,获得了几台计算机的访问权限。 凯文米特尼克 凯文米特尼克(Kevin Mitnic

  • 我有一个节点应用程序,使用express在docker容器中运行webserver。我的节点应用程序看起来有点像这样: 它返回Hello World 因此,它使我相信我的docker配置有问题,因为当我从主机运行:curl localhost:8080/status时,我收到:curl:(7)未能连接到localhost:8080端口:连接拒绝 所以...我的Dockerfile如下所示: 那么,

  • 我在一个基于OpenStack的私有云上有一个Kubernetes集群。需要在特定端口上公开我的服务。我可以使用Nodeport来完成此操作。但是,如果我尝试创建与第一个类似的另一个服务,我将无法公开它,因为我必须使用相同的端口,并且它已经被第一个服务占用了。 我注意到我可以在公共云中使用LoadBalancer,但我假设这在OpenStack中是不可能的?我也尝试使用Kubernetes的Ing

  • 用库伯涅茨-Kafka作为迷你库伯的起点。 这使用StatefulSet和headless服务在集群内进行服务发现。 我们的目标是对外展示各个Kafka经纪人,其内部地址为: 限制是这个外部服务能够专门针对经纪人。 做这件事的正确(或一种可能)方法是什么?是否可以通过< code > Kafka-x . broker . Kafka . SVC . cluster . local:9092 公开外

  • 我正在Azure上设置Kubernetes集群(使用AKS)来托管Elasticsearch、Kibana、自定义api、UI、nginx等。 由于我不希望每个服务都有单独的公共IP,因此我需要一种方法来设置一个公共负载平衡器/入口,然后只需在其中添加端口号并设置路由。 我尝试使用stackoverflow问题中提到的方法-如何在kubernetes中使用负载平衡器服务公开多个端口,但没有成功。

  • 名称:示例-服务 命名空间:默认 标签:run=load-balancer-example 注释: 选择器:run=load-balancer-example 类型:nodeport IP:10.108.214.162 端口:9090/tcp 目标端口:9090/tcp 节点端口:31105/tcp endpoint:192.168.1.23:9090,192.168.1.24:9090 会话关联