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

如果k8服务没有定义nodeport no(节点端口),那么会发生什么?

徐柏
2023-03-14

假设我有4个部署文件,为此我有一个组合的服务文件,它将为所有4个服务创建服务对象(deployment.yaml)。现在我只想公开1个service pod作为NodePort服务,为此我定义了NodePort以及端口和目标端口。对于其余的3个服务,我只定义了端口和目标端口,而没有定义节点端口。问题是,在这种情况下,K8主机是否为未定义节点的3个服务的其馀部分分配了一些随机节点?service.yaml:

我总是可以为4个服务声明4个节点。但K8s Master将如何处理以下清单是我更感兴趣的探索我的应用程序部署

apiVersion: v1
kind: Service
metadata:
  name: myapp-uwsgi-service
  namespace: myspace
  labels:
    central-app: myapp-uwsgi
spec:
  clusterIP: 10.3.0.106
  type: NodePort
  selector:
    central-app: configuration-uwsgi
  ports:
    -
      name: service-app-1
      port: 10010
      targetPort: 10010
      nodePort: 32123
    -
      name: service-app-2
      port: 10011
      targetPort: 10011
    -
      name: service-app-3
      port: 10012
      targetPort: 10012
    -
      name: service-app-4
      port: 10013
      targetPort: 10013

我的期望和理解是,其馀的3个服务应用程序将分配一些随机节点从K8s主。

共有1个答案

周伟泽
2023-03-14

服务类型nodeport会将随机端口分配给服务YAML中定义的其他端口。在您的情况下,您将得到四个节点

 类似资料:
  • 我是ES的新手。我们最近为我们的Prod应用程序设置了一个3节点elasticsearch集群。只是想了解如果ElasticSearch节点或索引或分片损坏会发生什么。 谢谢

  • 我有一个LoadBalancer服务,它在群集外公开3300端口。我想打开一个新的端口用于内部通信,以便其他吊舱可以与此服务对话,但此端口不应暴露在集群外部。 基本上,通信如下所示:

  • 我在库伯内特斯集群中运行3个节点。每个节点都有相同的Pod myApp。我使用NodePort类型创建一个服务,以便所有3个节点都可以从外部访问。服务yaml如下所示 假设3个节点的节点IP端口为: 1.192.168.18.1:30010 2.192.68.18.2:30010 3.192.18.18.3:30010 我的问题是:<br>1.如果所有请求都来自IP为(192.168.18.1:3

  • 问题内容: 我们都知道 单身 人士有多 糟糕 ,因为他们隐藏了依赖关系以及其他原因。 但是在一个框架中,可能有许多对象只需要实例化一次,并可以 从任何地方 调用(记录器,数据库等)。 为了解决这个问题,有人告诉我使用所谓的“对象管理器”(或诸如symfony之类的服务容器),在内部存储对服务(记录器等)的所有引用。 但是,为什么服务提供者不像单纯的Singleton那样糟糕? 服务提供者也隐藏了依

  • 所以我做了这个IP脚本,当你上了我的网站,它显示你的IP。 我想做的是做一个简单的IP阻止器,我想让它找到包含IP地址的标题的值作为文本,并使它使...我知道这是糟糕的JavaScript,但它只是一个示例。 这是我的当前代码。 谢谢!

  • 问题内容: 假设我创建了一个对象,该对象具有ID,firstName,lastName和email,用于实例变量和相应的setter / getter方法。如何,如果我不重写计算中时,它存储在集合对象的对象? 问题答案: 如果不重写hashcode(),则集合将使用Object类中的默认实现。即使根据equals()方法它们相等,此实现也会为不同的对象提供不同的值。 一些集合(例如HashSet,