问题标签 [google-cloud-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 投票
1 回答
167 浏览

kubernetes - 使用 NEG 时删除 Pod 会导致错误

对于这个示例,我在具有 2 个副本的部署中运行“echoheaders”Nginx。当我删除 1 个 pod 时,有时会出现大约 40 秒的缓慢响应和错误。

我们在 Kubernetes 中运行我们的 API 网关,并且需要能够允许 Kubernetes 调度程序按照它认为合适的方式处理 Pod。

我们最近想引入会话亲和性,为此,我们想迁移到新的闪亮的 NEG:网络端点组: https ://cloud.google.com/load-balancing/docs/negs/

使用 NEG 时,我们会在故障转移期间遇到问题。没有NEG,我们很好。

部署.yaml

服务.yaml

入口.yaml

删除 pod 时出现错误,如下图所示

$ httping -G -K 35.190.69.21

https://i.imgur.com/u14MvHN.png

这是使用 NEG 时的新行为。禁用 NEG 会使旧的行为具有正常的故障转移。

有什么方法可以在 pod 删除期间使用 Google LB、ingress、NEG 和 Kubernetes 而不会出错?

0 投票
1 回答
90 浏览

networking - 如何将来自 GCE 外部 IP 的流量指向辅助内部 IP?

我目前有一个运行 Jenkins 的 GCE 实例,我希望能够从浏览器访问它。它运行在一个 IP 地址上,而不是谷歌给我的主要内部地址。例如,主内部 IP 是 10.128.0.8,但 Jenkins 运行在 10.0.1.15:8081。

如何将流量从 <EXTERNAL_IP>:8081 引导到 10.0.1.15:8081 ?

请注意,我的 Linux 技能不稳定,我的网络技能不存在,所以如果你能告诉我如何做我需要做的任何事情,奖金。:) 谢谢!

0 投票
2 回答
1682 浏览

google-cloud-platform - 在另一个项目中访问 gcp 实例

如何在不使用外部 IP 的情况下访问不同项目中的实例

我有两个项目,比如 A 和 B,我想从 project-A 中的一个实例 ssh 到 project-B 中的一个实例。

我发现我能够使用 A 中实例的永恒 IP 来 ping B 中的实例,而不是其内部 IP。在我将我的公钥添加到 B 中的实例后,我能够使用 A 中实例的永久 IP 对其进行 ssh(我在这里有我的私钥)。

我想知道我是否可以在不通过外部 IP 的情况下从项目 A 实例访问项目 B 实例,因为它将离开 GCP 并返回。有没有办法可以在内部做到这一点?

项目 A 和 B 都在同一个 gcp 帐户下。

0 投票
1 回答
525 浏览

google-cloud-platform - 是否可以将 Google Cloud NAT 用于 TCP/代理 LB 后面的虚拟机,以便所有服务器都可以利用来自单个 IP 的出口?

我正在尝试在 Compute Engine 上运行的一组虚拟机上使用 Google Cloud NAT,这些虚拟机位于自己的特定子网中,以便所有服务器都从单个静态 IP 地址向客户网站发出请求。不幸的是,当我将这些虚拟机添加到 TCP/SSL 代理 LB 时,它们似乎没有使用我认为配置正确的 NAT。

我尝试配置 TCP 代理 LB 以及 HTTP(S) LB 和云 NAT,当我尝试发出出口 http 请求时,它会导致超时。通过 LB 的入口工作正常。VM 实例没有外部 IP,这是 Cloud NAT 的要求。

我希望 http 请求能够到达服务器,并且 Web 服务器通过 Cloud NAT 发出出站 http 请求,这样其他服务器只需将单个 IP 地址列入白名单(分配给 Cloud NAT 的静态 IP)

0 投票
1 回答
644 浏览

google-cloud-platform - GCP IPSEC 问题

由于引入了 HA VPN,因此建立隧道并再次工作是一场噩梦,这些错误没有意义。

将隧道添加到我得到的网关:

“字段 'resource.destRange' 的值无效:''。不是有效的 IPv4 地址范围”

什么时候192.168.1.0/24不是CIDR?查看它以以下结尾的日志:

“建立 IKE_SA 失败,对等方没有响应”

但是我正在查看流量,他们做了什么?

创建了 10 个隧道,5 个工作 5 个不工作。

有人可以解释发生了什么吗?

0 投票
1 回答
4782 浏览

google-cloud-platform - 从另一个 GCP 项目访问 Cloud SQL

我想从另一个 GCP 项目连接到 Cloud SQL。

Cloud SQL 是 ProjectSQL 中的位置,并且 ProjectSQL 项目中有一个 VPC 网络,名称为 sql_vpc

还有另一个项目 ProjectDataflow,它有一个 vpc dataflow_vpc。我想使用 ProjectDataflow 项目中启动的 VM 从 ProjectSQL 连接到 cloudSQL

我尝试过的事情有成功也有失败。

私人访问:

VPC 对等互连:

共享网络

公共访问:

请分享您从另一个项目访问 Cloud SQL 的经验。是否有从另一个 gcp 项目连接云 SQL 的最佳实践?

0 投票
0 回答
404 浏览

google-cloud-platform - VPN 隧道在 AWS 和 GCP 之间不起作用

我已经在 AWS 和 GCP 之间建立了 VPN 隧道,并且隧道(2 条隧道)已启动并正在运行。但我无法从 gcp VM ping aws vm。

我可以通过查看路由表中的路由并将下一跃点设置为隧道的对等内部 ip 之一来验证我的 aws 路由是否正确广播到 GCP 端。

我不确定可能出了什么问题。 在此处输入图像描述 我尝试为 aws vm 内部 ip 执行 mtr 和 traceroute,但没有运气在此处输入图像描述 aws 到 gcp ping

更新:我删除了两端的隧道并重新创建了隧道。现在我处于以下阶段 在此处输入图像描述

0 投票
1 回答
883 浏览

google-cloud-platform - 带有 TCP 负载均衡器的 Cloud VPN

我正在尝试在具有 5 个虚拟机的 GCP 网络中设置 Cloud VPN,其中一个虚拟机位于 TCP 负载均衡器后面的实例组中,将实例组端口代理到互联网,并且 VPN 隧道本身运行良好,因为它已经建立,我可以从我的本地网络 ping 这些虚拟机。

但是,在我配置好 VPN 隧道后,我无法再访问外部负载均衡器 IP!

我检查了防火墙规则,一切正常。如果我删除VPN隧道和路由,我可以正常访问IP。这种行为是预期的?如果我在同一网络中有 Cloud VPN,我真的无法访问负载均衡器 IP?

顺便说一句,所有虚拟机都没有外部 IP,只有内部 IP。正如我之前所说,其中之一是在 LB 后面获取 Internet 访问权限。

我希望从我的本地网络连接到 TCP 负载均衡器后面的实例组中的虚拟机,并在该网络中建立了 Cloud VPN。我只能访问内部 IP,但不能访问 LB 外部 IP。

0 投票
1 回答
834 浏览

networking - 如何在 Google Cloud Platform 上重新启动时保留多个网络接口?

我正在尝试在 Google Cloud Platform(启用免费试用和计费)上设置一个 Compute Engine VM 实例,该实例具有多个(超过 2 个)网络接口,即使在重新启动后也可以全部连接到互联网。到目前为止,我尝试过的所有操作都在重新启动后失败了。

首先,我创建多个网络:

gcloud compute networks create vpc-1 --subnet-mode custom && gcloud compute firewall-rules create vpc-1-firewall --network vpc-1 --allow tcp:22,tcp:80,tcp:443,icmp && gcloud compute networks subnets create vpc-1-subnet --network vpc-1 --range 10.0.1.0/24 --region us-east4

gcloud compute networks create vpc-2 --subnet-mode custom && gcloud compute firewall-rules create vpc-2-firewall --network vpc-2 --allow tcp:22,tcp:80,tcp:443,icmp && gcloud compute networks subnets create vpc-2-subnet --network vpc-2 --range 10.0.2.0/24 --region us-east4

gcloud compute networks create vpc-3 --subnet-mode custom && gcloud compute firewall-rules create vpc-3-firewall --network vpc-3 --allow tcp:22,tcp:80,tcp:443,icmp && gcloud compute networks subnets create vpc-3-subnet --network vpc-3 --range 10.0.3.0/24 --region us-east4

gcloud compute networks create vpc-4 --subnet-mode custom && gcloud compute firewall-rules create vpc-4-firewall --network vpc-4 --allow tcp:22,tcp:80,tcp:443,icmp && gcloud compute networks subnets create vpc-4-subnet --network vpc-4 --range 10.0.4.0/24 --region us-east4

然后,我使用这些网络创建一个 VM 实例:

gcloud compute instances create test-1 --boot-disk-device-name=test-1 --image=ubuntu-1804-bionic-v20190628 --image-project=ubuntu-os-cloud --boot-disk-size=10GB --boot-disk-type=pd-ssd --zone=us-east4-c --machine-type=n1-standard-16 --network-interface subnet=vpc-1-subnet --network-interface subnet=vpc-2-subnet --network-interface subnet=vpc-3-subnet --network-interface subnet=vpc-4-subnet --network-tier=PREMIUM --min-cpu-platform='Intel Skylake'

到目前为止,这工作得很好。当我通过 SSH 连接到 VM 实例时,我可以在第一个界面(ens4在我的例子中)上向网站发出请求。UP但是,其他接口即使存在并且是via也不起作用ip link show。然后,我按照https://cloud.google.com/vpc/docs/create-use-multiple-interfaces#configuring_policy_routing中的说明进行操作ens5ens6ens7使用以下 bash 脚本作为具有相关 IP 地址的根:

这行得通!我可以使用所有网络接口(ens4ens5ens6ens7)发出请求。但是,在我重新启动后,在运行上述 bash 脚本之前和之后,所有网络接口都无法连接到任何网站(没有每个部分的前两行)。例如,如果我尝试运行curl https://google.com在重新启动之前有效的命令,我会收到以下错误:curl: (6) Could not resolve host: google.com在我尝试使用的任何接口上。即使我在没有修改任何内容或运行任何脚本的情况下重新启动,我也会遇到同样的问题(在 上ens4也是如此)。我怎样才能坚持(如果可能的话,自动化)我在重新启动后完成的事情?

0 投票
2 回答
942 浏览

google-cloud-platform - 在部署管理器中使用“gcloud services vpc-peerings connect”

我在 .jinja 中设置了一个部署管理器包,它执行以下操作: - 为 GCP 服务创建 VPC 网络、子网和私有范围 - 在“servicenetworking.googleapis.com”和我的 VPC 网络之间创建对等互连 - 分配 Cloud SQL数据库到我的 VPC 中分配给谷歌服务的私有范围中

第二步是使用部署管理器证明是不可能的,因为没有可以调用的操作来执行此操作。我已经确认在这个阶段手动修复是调用以下 gcloud 命令,然后在 VPC 中设置 Cloud SQL 数据库:

在我的 .jinja 中使用以下 gcp 类型是不够的,因为它不允许映射到预先存在的 gcp 服务,但需要一个源网络和目标网络。

有没有办法从部署管理器调用 gcloud 命令,或者我可以调用一个操作来实现服务对等互连。我可以确认该项目确实启用了服务 API。

(请注意,目标 VPC 和项目是可变的,由 Google 分配,因此我无法将此值输入到上述模板中)


更新 05/07/19 我相信我已经找到了我需要做的 API 服务调用,但我非常不确定从部署管理器实际调用创建服务链接的语法:

https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/v1beta/services.connections/create

需要一点方向 - 类似于下面?