问题标签 [gke-networking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1435 浏览

google-kubernetes-engine - 与 Google Container Engine 共享 VPC 网络

这几天我一直在寻找这个问题的任何答案。该图像显示了我正在尝试做的事情。基本上我想在服务项目中构建一个容器引擎集群,但在主机项目中使用来自共享 vpc 的网络。这适用于计算引擎,因为容器引擎利用了计算引擎,所以我看不出它不起作用,但没有配置它的选项。

最终目标是在混合云场景中使用它,对于每个容器项目,我们宁愿利用单个 vpn 隧道,而不是为每个项目构建新隧道。那根本无法扩展。

谷歌云容器引擎网络

0 投票
1 回答
2973 浏览

nginx - 在 GKE 上使用 nginx 入口控制器时负载均衡器的节点不健康

我已经按照本指南设置了 nginx 入口控制器。

入口运行良好,我也可以访问该defaultbackend服务和我自己的服务。

但是在查看 Google Cloud Console 中创建的对象时,特别是自动创建的负载均衡器对象时,我注意到其他节点的运行状况检查失败: 在此处输入图像描述

这是因为入口控制器进程只在一个节点上运行,所以它是唯一通过健康检查的节点?如何让其他节点通过?

0 投票
4 回答
1491 浏览

kubernetes - 如何在 Google Kubernetes Engine 上将集群节点设为私有?

我注意到集群中的每个节点都有一个分配给它的外部 IP。这似乎是 Google Kubernetes Engine 的默认行为。

我认为集群中的节点应该只能从本地网络访问(通过其虚拟 IP),但我什至可以通过连接到其托管节点(不使用负载均衡器)。

我试图通过更改集群实例模板设置(将属性“External IP”从“Ephemeral”更改为“None”)使容器引擎不为新创建的节点分配外部 IP。但是在我这样做之后,GCE 无法启动任何 pod(出现“没有最低可用性”错误)。新实例甚至没有显示在我的集群中的节点列表中。

切换回具有外部 IP 的默认实例模板后,一切又恢复正常。因此,出于某种原因,Google Kubernetes Engine 似乎要求集群节点是公开的。

您能解释一下为什么会这样吗?是否有办法防止 GKE 将集群节点暴露在互联网上?我应该设置防火墙吗?我应该使用什么规则(因为节点是动态创建的)?

我认为谷歌不允许私有节点是一个安全问题......假设有人在数据库管理系统上发现了一个安全漏洞。如果我们的数据库节点没有暴露在 Internet 上,我们会更愿意修复它(应用补丁、升级版本)。

0 投票
1 回答
727 浏览

kubernetes - 1.9.6-gke.1 中的 GKE 出口网络到 GCE 实例

我在谷歌 kubernetes 引擎上,我需要运行找到的 filebeat 守护程序集(https://www.elastic.co/guide/en/beats/filebeat/master/running-on-kubernetes.html)。我创建集群:

当我拥有--cluster-version--node-version设置1.8.8-gke.0它时,它可以工作,但是当我将它更改为1.9.6-gke.1filebeat pod 时,无法访问我正在运行 logstash 的 GCE 实例。

集群和 GCE 实例都在同一个网络上运行,我确信这不是谷歌云的防火墙问题,因为如果我gcloud compute ssh进入 GKE 实例并且nc -vz -w 5 10.0.0.18 5044连接正常。

当我让集群运行1.8.8-gke.0时,filebeat pod 连接到 logstash 并且运行traceroute 10.0.0.18显示它连接良好。当我创建集群时,1.9.6-gke.1然后traceroute 10.0.0.18显示以下内容:

编辑:请注意,这不是特定于 filebeat 容器,我用另一个容器尝试过,它也无法访问 GCE 实例。

0 投票
1 回答
6141 浏览

kubernetes - 在配置私有 GKE 集群时了解 --master-ipv4-cidr

我试图进一步了解在 Google 的 Kubernetes Engine 中配置私有集群时到底发生了什么。

Google 在此处提供了一个配置私有集群的示例,其中控制平面服务(例如 Kubernetes API)位于172.16.0.16/28子网上。

https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters

当我运行这个命令时,我看到:

  • 现在我的 VPC 中有一些 gke 子网属于节点和服务的集群子网。这些都在10.x.x.x/8范围内。
  • 172.16/16我在地址空间中没有任何子网。
  • 我确实有一些似乎相关的新配对规则和路线。例如,有一条新路由peering-route-a08d11779e9a3276,其目的地址范围为172.16.0.16/28,下一跳为gke-62d565a060f347e0fba7-3094-3230-peer。这个对等角色然后指向gke-62d565a060f347e0fba7-3094-bb01-net

Google 为 GKE 服务管理gke-62d565a060f347e0fba7-3094-bb01-net的 Kubernetes 管理端点(范围内的控制平面)是否存在于其中的对等 VPC ?172.16/16

进一步——我的请求是如何发送到 Kubernetes API 服务器的?

0 投票
1 回答
2217 浏览

google-cloud-platform - 使用 GCP 网络端点组进行容器原生负载平衡的不健康后端

我们正在测试谷歌新的容器原生负载平衡功能。我们成功地遵循了本教程,并且正在尝试将其推广到 GKE 上的三个服务中。

据我所知,NEG 功能和旧版 GCLB 入口对象之间的唯一区别是每个服务中的注释,因此 URL 映射应该工作相同。

我们已更新所有服务以使用此注释,但三分之二的服务Unhealthy被认为是健康的。服务 yaml 的唯一区别是名称和选择器。

所有部署都有健康检查,当我们手动检查时都是健康的,但 LB 说后端不健康。

我们缺少什么?

Ingress.yaml

--

frontend-svc.yaml- 除了名称和选择器之外,后端/通知是相同的

--

backend-deployment.yaml

0 投票
1 回答
56 浏览

google-kubernetes-engine - Google Cloud Engine 使用 Https 负载均衡器

我正在尝试在谷歌云上设置使用 k8s 托管的 node.js Web 服务以使用 https。

当您在 k8s 引擎中创建新服务时,它会创建一个默认的 http 负载均衡器。我试图让它创建一个 https 负载均衡器。

有什么方法可以将这种行为更改为 https 吗?

0 投票
10 回答
16496 浏览

ssl - Google 管理的 SSL 证书卡在 FAILED_NOT_VISIBLE

我正在尝试在 GKE 上配置 https 负载平衡器。我正在关注:https ://cloud.google.com/load-balancing/docs/ssl-certificates和https://cloud.google.com/kubernetes-engine/docs/concepts/ingress

我的配置使用 Let's Encrypt 的证书已经工作了一段时间。但是一直更新证书太麻烦了,所以我想测试一下谷歌的托管服务。

到目前为止,这就是我设置它的方式,但卡在FAILED_NOT_VISIBLE. 关于如何进一步修复或调试此问题的任何想法?

k8s/staging/staging-ssl.yml

保留IP

$ gcloud beta 计算 ssl-certificates 描述 staging-google-managed-ssl

我在将SSL 证书资源与目标代理相关联的帖子开头链接到的文档中找到了一个部分 :

使用以下 gcloud 命令将 SSL 证书资源与目标代理相关联,无论 SSL 证书是自我管理的还是 Google 管理的。


当我的 Ingress 配置中有这条线时,是否有必要这样做?

13 ingress.gcp.kubernetes.io/pre-shared-cert: "staging-google-managed-ssl"

0 投票
0 回答
87 浏览

kubernetes - Google Kubernetes Engine 网络无法正常工作

我正在使用 GKE,我有两个部署,一个服务和一个 postgres 实例。我正在调试——因为我对它真的很陌生——突然我无法从外部从它的 IP 访问我的服务。从我的部署到我的 sql 实例的连接现在都不起作用。我尝试了很多东西(创建新集群、创建新数据库、更改静态 ips 等等)。

我找到了这个帮助页面:https ://kubernetes.io/docs/tasks/debug-application-cluster/debug-service ,但是当我尝试运行时,nslookup hostnames我发现了这个:

我试图安装它但是

我不确定问题是否与防火墙或 DNS 有关。奇怪的是,我无法按照文档建议的方式进行调试。

编辑:我正在使用 1.10.11-gke.1

0 投票
3 回答
14002 浏览

kubernetes - 如何检查网络策略是否已应用于 Pod?

我试图限制我的 openvpn 以允许访问内部基础设施并仅通过“开发”命名空间来限制它,所以我从拒绝所有出口流量的简单策略开始,并且看不到应用它的集群的任何效果或任何反馈,我已经阅读了所有官方文档和非官方文档,但没有找到解决方案,这是我的政策:

我已经使用kubectl apply -f policy.yaml命令应用了上面的网络策略,但我没有看到这个策略的任何效果,我仍然能够从我的 openvpn pod 连接到任何东西,如何调试它并查看我的策略有什么问题?

对我来说这似乎是一个黑匣子,只能做的是尝试错误方法,这似乎不是它应该如何工作的。

如何验证它是否找到了 pod 并将策略应用于它们?

我正在使用 GKE 提供的最新 kubernetes 集群

我注意到我没有在谷歌云设置中检查“使用网络策略”,在我检查了我的 vpn 之后就停止了工作,但我不知道如何检查它,或者为什么 vpn 只允许我连接并阻止所有网络请求,很奇怪,有没有办法调试而不是随机改变东西?