首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google容器引擎中的集群通信和防火墙

Google容器引擎中的集群通信和防火墙
EN

Stack Overflow用户
提问于 2015-06-11 08:22:37
回答 1查看 543关注 0票数 2

我试图在Google上设置以下环境,并有三个主要问题:

数据库集群

  • 3个节点
  • 一个端口向世界开放,几个端口向计算机集群开放。

计算集群-5个节点-与数据库集群通信-两个向世界开放的端口-运行Docker容器。

a)数据库集群运行良好,我的配置端口向世界开放,但我不知道如何将其他端口仅限于计算集群?

我设法在计算集群上运行了第一个Pod和,并创建了一个服务来打开容器以供世界使用:

主计长:

代码语言:javascript
复制
{
  "id": "api-controller",
  "kind": "ReplicationController",
  "apiVersion": "v1beta1",
  "desiredState": {
    "replicas": 2,
    "replicaSelector": {
      "name": "api"
    },
    "podTemplate": {
      "desiredState": {
        "manifest": {
          "version": "v1beta1",
          "id": "apiController",
          "containers": [{
            "name": "api",
            "image": "gcr.io/my/api",
            "ports": [{
              "name": "api",
              "containerPort": 3000
            }]
          }]
        }
      },
      "labels": {
        "name": "api"
      }
    }
  }
}

服务:

代码语言:javascript
复制
{
  "id": "api-service",
  "kind": "Service",
  "apiVersion": "v1beta1",
  "selector": {
    "name": "api"
  },
  "containerPort": "api",
  "protocol": "TCP",
  "port": 80,
  "selector": { "name": "api" },
  "createExternalLoadBalancer": true
}

b)容器公开端口3000,服务端口80。两者之间的联系在哪里?

防火墙与标签一起工作。我希望在我的计算集群中运行4-5个不同的吊舱,其中2个具有开放的端口。在同一个实例上可以运行两个或多个容器。然而,标签是特定于节点,而不是容器。

c)我是否公开了所有具有相同防火墙配置的节点?我不能将标签分配给容器,所以不确定如何公开api服务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-03 06:34:29

我会尽我所能回答你所有的问题。

首先,您将希望升级到使用Kubernetes API的v1,因为v1beta1和v1beta3将在8月5日之后不再可用:https://cloud.google.com/container-engine/docs/v1-upgrade

还有,使用YAML。它不那么冗长;)

--

现在谈谈你提出的问题:

( a)我不确定我是否完全理解您在这里要求的内容,但是在同一个集群中运行服务(使用资源限制)比尝试处理跨集群网络要容易得多。

b)您需要指定一个targetPort,以便服务知道在容器上使用哪个端口。这应该与您的资源控制器中的端口3000相匹配。有关更多信息,请参见文档

代码语言:javascript
复制
{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata: {
    "labels": [{
      "name": "api-service"
    }],
  },
  "spec": {
    "selector": {
      "name": "api"
    },
    "ports": [{
      "port": 80,
      "targetPort": 3000
    }]
    "type": "LoadBalancer" 
  }
}

( c)是。在Kubernetes中,kube代理接受任何节点上的通信,并将其路由到适当的节点或本地吊舱。您不需要担心将负载均衡器映射到这些特定节点,或者为这些特定节点编写防火墙规则(如果您执行滚动更新,它实际上可能会改变!)。kube将将流量路由到正确的位置,即使您的服务不在该节点上运行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30775379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档