当我尝试访问部署在 Google Cloud 上的网站时,我收到以下错误页面:
我们很抱歉...
...但是您的计算机或网络可能正在发送自动查询。为了保护我们的用户,我们现在无法处理您的请求。
以下是我的设置的详细信息:
故障排除:
基于此,负载均衡器附近似乎存在一些网络配置/安全性。
有什么解决方案或建议可以继续调试吗?
google-cloud-platform google-cloud-networking google-cloud-run gcp-load-balancer
我们有一个由kubernetes ingress创建的HTTP(s)Load Balancer,它指向由运行nginx和Ruby on Rails的pod组成的后端.
看一下负载均衡器日志,我们检测到越来越多的请求,响应代码为0和statusDetails= client_disconnected_before_any_response.
我们试图理解为什么会发生这种情况,但我们没有找到任何相关的东西.nginx访问或错误日志中没有任何内容.
这种情况发生在从GET到POST的多种请求中.
我们还怀疑有时尽管请求记录了该错误,但请求实际上是传递给后端的.例如,我们看到了PG :: UniqueViolation错误,因为在我们的注册终端中,两次发送了令人满意的注册请求到后端.
任何形式的帮助将不胜感激.谢谢!
我已经创建了一个基于日志的Stackdriver度量标准,用于计算出现此行为的请求数.这是图表:
大峰大致匹配这些kubernetes事件的时间戳:
完整错误: Readiness probe failed: Get http://10.48.1.28:80/health_check: net/http: request canceled (Client.Timeout exceeded while awaiting headers)"
因此有时候后端后面的pod的准备探测失败了,但并非总是如此.
这是readinessProbe的定义
readinessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: X-Forwarded-Proto
value: https
- name: Host
value: [redacted]
path: /health_check
port: 80
scheme: HTTP
initialDelaySeconds: 1
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
Run Code Online (Sandbox Code Playgroud) kubernetes google-kubernetes-engine google-cloud-networking kubernetes-ingress
一直试图弄清楚这一点,但到目前为止没有运气。与 AWS 相比,实现起来非常困难。
我有一个运行多个计算实例和其他服务的 Google Cloud Platform (GCP) 项目。
我需要向外部开发团队授予对单个计算实例的 root 访问权限,而不是任何其他服务。
在“Compute Engine”视图中,当我选择实例并将用户添加为 Compute Admin(完全控制所有 Compute Engine 资源)但他仍然无法ssh进入实例。
尝试 #1:
出现错误:“需要compute.instance.get许可。”
所以我去给那个用户一个包含该权限的角色。
尝试#2:
出现错误“用户无权访问服务帐户...”
问题 #1 究竟需要做什么才能让角色访问 GCP 中的单个计算实例?
在 AWS 上,有一个特定的角色可以被授予单一资源访问权限,但这里似乎确实如此。
问题 #2 另外,如果“计算引擎”视图中的“权限”右侧栏实际上没有提供任何权限,那么它的用途是什么。
谢谢!
google-compute-engine google-cloud-platform google-cloud-networking
我在启用了 Cloud CDN 的 Google Cloud HTTP(S) 负载均衡器后面有一个后端 GCS 存储桶。
我试图根据响应标题回答这些问题:
这是响应标头。根据cache-control,理论上,这个应该被缓存。但是,我没有看到可以验证 CDN 正常工作的迹象。同样,所有其他标头x-goog-*和Server: UploadServer似乎都来自 GCS 服务器,而不是 CDN。
accept-ranges: bytes
age: 551
alt-svc: clear
cache-control: public, max-age=3600
content-length: 298303
content-type: image/jpeg
date: Wed, 05 Aug 2020 23:07:33 GMT
etag: "f0b6c60f635c784dd7f34ab9c1527867"
expires: Thu, 06 Aug 2020 00:07:33 GMT
last-modified: Wed, 05 Aug 2020 23:07:16 GMT
server: UploadServer
status: 200
X-DNS-Prefetch-Control: off
x-goog-generation: 1596668836233926
x-goog-hash: crc32c=rD4sZw==
x-goog-hash: md5=8LbGD2NceE3X80q5wVJ4Zw==
x-goog-metageneration: …Run Code Online (Sandbox Code Playgroud) google-cloud-cdn google-cloud-networking google-cloud-load-balancer
我想从不同的 GCP 项目连接到 Cloud SQL。
Cloud SQL 位于 ProjectSQL 中,VPC 网络位于 ProjectSQL 项目中,名称为 sql_vpc
还有另一个项目 ProjectDataflow,它有一个 vpc dataflow_vpc。我想使用在 ProjectDataflow 项目中启动的 VM 从 ProjectSQL 连接到 cloudSQL
我尝试过的成功和失败的事情。
私人访问:
VPC 对等互连:
Enable Private IP access in Cloud with the vpc sql_vpc
Creating VPC peering between dataflow_vpc and sql_vpc
This solution does not work because you can not access the Peered Network.
https://cloud.google.com/sql/docs/mysql/private-ip
Status: FAILED
Run Code Online (Sandbox Code Playgroud)
共享网络
As per doc I can create the CloudSQL in shared VPC network, that says I
have to …Run Code Online (Sandbox Code Playgroud) google-cloud-sql google-cloud-platform google-cloud-networking
长话短说 - 我需要在项目之间使用网络来为它们分别计费.
我想从一个点来到达不同项目中的所有虚拟机,我将用它来配置系统(让我们称之为协调节点).
看起来VPC网络对等是一个完美的解决方案.但不幸的是,现有网络之一是"遗产".这是google docs关于遗留网络的陈述.
关于旧网络注意:不建议使用旧网络.传统网络不支持许多较新的GCP功能.
好的,自然会出现这样的问题:您如何迁移出传统网络?文档未涉及此主题.这不可能吗?
我有一堆虚拟机,我可以逐个关闭它们:
遗憾的是,即使VM关闭,它似乎也无法改变网络?
编辑:有人建议重新创建保持相同磁盘的VM.我仍然需要一种方法来将传统网络与新的VPC网络连接起来,以使迁移流畅.有关如何使用GCE工具集的任何想法?
networking google-compute-engine google-cloud-platform google-cloud-networking
我有一个 Google Cloud Build 触发器可以在 Google Cloud 上构建我的图像。我还有 VPC 网络,它托管一些在构建图像时应该可以访问的资源。
在构建映像时,我的 docker 脚本需要访问 Web 服务器。GCP Cloud 构建网络似乎不是我的私有 VPC 网络。因此,构建时所需的资源无法访问该脚本。
这是否可以在 VPC 网络中运行构建?如果是,如何?
google-cloud-platform google-cloud-networking google-cloud-build
据我了解,全局外部地址用于外部负载均衡器,而区域外部地址用于虚拟机和区域负载均衡器。为什么全球知识产权和区域知识产权之间存在如此大的分离?
他们都可以通过互联网联系到。有实施细节吗?有人可以解释一下吗?
我已经根据文档设置了所有内容:
要继续进行证书供应过程,必须满足以下所有条件:
- 您域的 DNS 记录必须引用负载均衡器目标代理的 IP 地址,
- 您的目标代理必须引用 Google 管理的证书资源。
- 您的负载均衡器配置必须完整,包括创建转发规则。
如果配置正确,则提供证书的总时间可能需要 30 到 60 分钟。
已经2个小时了。
load-balancing certificate google-compute-engine google-cloud-platform google-cloud-networking
我们正在尝试阻止除基于此 Cloud Armor演练的一些外部 IP 地址之外的所有非集群流量。
GKE 集群识别了规则,但仍然阻止允许的 IP。以下是遵循的步骤:
1)创建策略+规则
gcloud beta compute security-policies create allow-team-only \
--description "Cloud Armor deny non-team IPs"
gcloud beta compute security-policies rules create 1000 \
--security-policy allow-team-only \
--description "Deny traffic from 0.0.0.0/0." \
--src-ip-ranges "0.0.0.0/0" \
--action "deny-404"
gcloud beta compute security-policies rules create 999 \
--security-policy allow-team-only \
--description "Allow traffic from <IP ADDRESS>." \
--src-ip-ranges "<IP ADDRESS>/32" \
--action "allow"
Run Code Online (Sandbox Code Playgroud)
2) 将规则应用到我们位于 8080 端口的服务
metadata:
annotations:
beta.cloud.google.com/backend-config: '{"ports": {"8080":"allow-team-only"}}'
Run Code Online (Sandbox Code Playgroud)
我在忽略什么?
谢谢!
google-cloud-platform google-kubernetes-engine google-cloud-networking google-cloud-armor