问题标签 [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.
google-kubernetes-engine - 在 GKE 上创建的入口的运行状况检查失败
我正在使用带有以下配置的入口为 GKE 上的 consul ui 创建一个负载均衡器
该服务hashicorp-consul-ui
是 clusterIP 类型的服务。
另外,我正在创建以下 backendConfig
我将以下注释添加到 clusterIP 服务hashicorp-consul-ui
'cloud.google.com/backend-config': '{"ports": {"80":"consul-ui-backendconfig"}}'
这个 backendConfig 为 ingress 创建的后端服务创建健康检查,这个端点返回 200。但是健康检查失败并且 ingress 处于 Unhealthy 状态
我已经启用了健康检查日志,并且我在 NEG 上获得了以下日志
另外,不知道为什么我只得到这个日志一次,我不应该定期得到这些日志吗?
另外,谁能指导我如何解决这个 healthCheck 问题?
google-kubernetes-engine - GKE Helm http2 连接丢失
我尝试使用 n1-highmem-4 池创建 GKE 集群(版本:1.18.15-gke.1500)。在我尝试安装掌舵图之前,一切正常。helm 二进制文件(版本:3.5.2)最终出现错误“http2 连接丢失”。GKE 触发自动修复模式。我不明白为什么,因为我使用 kubectl 创建一些 configmap 没有问题。您是否知道我可以在哪里找到有关台球机或 GKE 总体规划的日志?
gke-networking - GKE Windows 节点,健康检查
我不习惯发东西,但我有问题。在 GKE 上,我为 windows 节点上的 windows pod 设置了负载均衡器类型的服务,但负载均衡器的运行状况检查对于 windows 节点是 KO。我可以使用 externalTrafficPolicy: cluster 但我的应用程序需要 Local。
如何解决?
谢谢你的帮助。
Alexandre Gué,Infra PI ELECTRONIQUE 团队负责人
kubernetes - 创建指向两个服务的 Kubernetes 入口
要求:想要使用带有 HTTPS 的入口部署 Minio 和另一个后端服务(不用于生产目的)
我一直在尝试创建一个入口,以从 GKE 中的 Kubernetes 集群外部访问两个服务。这些是我尝试过的尝试。
尝试一
尝试二
尝试三
尝试四
但是,上述尝试都不适合我的要求。要么给出 404 0r 503。但我可以确认为每个服务创建单独的入口可以正常工作,如下所示。
更改域服务器也需要花费大量时间来测试,因此创建主机非常烦人,因为我必须等待大量时间来测试我的代码。还有什么我可以尝试的吗?
像下面这样的东西是理想的:
https://34.452.234.45:9000 > 将访问 minio
https://34.452.234.45:8080 > 将访问奥斯卡
你的建议和意见对我真的很有帮助。
Minio helm 图表:https ://github.com/minio/charts
Minio 部署
奥斯卡舵图:https ://github.com/grycap/helm-charts/tree/master/oscar
奥斯卡部署
kubernetes - GKE 上带有 Macvlan 的第二个 NIC
我需要为 GKE 上的一些特定 K8s pod 添加第二个接口,这些 pod 需要从 Internet 上的公共用户直接访问。所以我使用了 Multus 并像这样定义了一个 Macvlan cni:
10.162.0.1 是我的 K8s 节点在 GCP 中的默认网关。所以,我想在这种情况下,豆荚应该可以访问外部。但是在 pod 中,只有一个默认网关来路由内部 pod 流量。另外,由于权限问题,我无法添加任何路线。
问题:
我的预期错了吗?我应该如何使用 Macvlan 为这些 pod 创建一个公共接口?
google-kubernetes-engine - 从私有 GKE 集群连接到公有 Cloud SQL
我正在尝试使用 cloud-sql-proxy 从 GKE 集群连接到具有公共 IP 的 Cloud SQL 实例。我使用以下命令创建了集群:
我使用以下命令创建了 Cloud SQL:
我还使用以下命令设置了一个服务帐户:
pod 中 cloud-sql-proxy 的 sidecar 容器设置如下:
尽管如此,当我的应用程序尝试连接到 Cloud SQL 实例时,我可以在 cloud-sql-proxy 日志中看到以下错误:
我检查了一下,pod 可以访问 Internet(我可以访问www.google.com),因此它应该能够连接到 Cloud SQL 的公共 IP。我可以在笔记本电脑上毫无问题地使用 cloud-sql-proxy 并连接到那里的实例。我错过了什么?我还能检查什么?
我找到了GKE 私有集群和云 sql 代理连接,但我启用了 SQL Admin API。Private GKE 和 Cloud SQL 之间的连接仅涉及无法访问 Internet 的 GKE 集群。
docker - GKE Autopilot Ingress 部署后 5-15 分钟返回 502 错误
我使用 GKE 在运行最新版本 Kubernetes 1.18.15-gke.1501
(ClusterIP
每当我使用新映像更新部署时,我都会遇到大约 5-15 分钟的停机时间,负载均衡器会返回 502 错误。似乎控制平面创建了新的、更新的 pod,允许通过服务级别的健康检查(不是负载均衡器,它还没有创建 NEG),然后同时杀死旧的 pod是时候设置新的 NEG 了。然后它直到一段时间后才会删除旧的 NEG。
pod 上的日志显示运行状况检查正在进行,但 GKE 仪表板显示 Ingress 状态的结果不一致。入口将显示正常,但服务将显示 502。
我尝试过的事情
- 将 pod 的数量从 1 个增加到 3 个。这对某些部署有所帮助,但在其他所有部署中,它都会增加负载均衡器正确解析所需的时间。
- 尝试设置
maxSurge
为 1 和maxUnavailable
0。这根本没有改善停机时间。 - 添加
lifecycle.preStop.exec.command: ["sleep", "60"]
到部署上的容器。这是 GKE 文档中建议的。 - 多次重新创建入口、服务、部署和集群。
- 向服务中添加一个
BackendConfig
会增加其消耗速度的服务。 - 在文档中添加一个准备门应该可以解决这个问题,但由于某种原因没有?
上述任何一项都没有帮助或对事情下降的时间产生任何明显的影响。
我真的,真的很困惑为什么这不起作用。感觉就像我遗漏了一些非常明显的东西,但这也是一个如此简单的配置,你会认为它......只是工作?有人知道发生了什么吗?
配置文件
部署配置:
服务配置:
后端配置:
入口配置:
kubernetes - 无法访问 GKE 上的 Kubernetes Ingress (Istio)
我在 GKE 上设置了 Istio(Kubernetes Ingress 模式,不是 Istio 网关)。但是,我无法使用 curl 从外部访问
istio-ingressgateway LoadBalancer 10.48.11.240 35.222.111.100 15020:30115/TCP,80:31420/TCP,443:32019/TCP,31400:31267/TCP,15029:30180/TCP,15030:3105226/TCP,150313: TCP,15032:30437/TCP,15443:31792/TCP 41h
curl: (7) 无法连接到 35.222.111.100 端口 80: Connection refused
这是 Ingress 的配置:
这是服务的配置:
如果我在本地机器(MacOS)上为 Docker Desktop 使用相同的配置,它工作正常。
google-cloud-platform - 如何在 GKE 中调试 backend_connection_closed_before_data_sent_to_client?
backend_connection_closed_before_data_sent_to_client
GKE负载平衡出现以下错误
据此_
在将响应代理到客户端之前,后端意外关闭了与负载均衡器的连接。如果负载均衡器将流量发送到另一个实体,则可能会发生这种情况。另一个实体可能是第三方负载平衡器,其 TCP 超时时间短于外部 HTTP(S) 负载平衡器的 10 分钟(600 秒)超时。第三方负载均衡器可能在 VM 实例上运行。手动将目标服务上的 TCP 超时(keepalive)设置为大于 600 秒可能会解决此问题。
我们所做的
-
- 将超时更改为 620 秒以在后端保持活动状态
-
- 将 LB 后端服务超时设置的超时更改为 620 秒
receiveTimestamp
但是,和的时间跨度timestamp
是2秒,这让我们很困惑,为什么超时这么短?
还有一个问题,502 仅来自特定代理“Dalvik/2.1.0”,这是一件奇怪的事情。所有其他客户端都可以正确地将数据发布到后端服务器。
我们如何在 GKE 中调试这个问题?
google-cloud-platform - 无法通过 terraform 添加“google_compute_network_peering_routes_config”以将私有 SQL 实例连接到我的非私有 VPC 集群
我有一个 GKE 集群并在 GCP 上添加了一个私有 SQL-postgres 实例,为了建立正确的连接,我必须在 VPC 对等连接上导出自定义路由以使其工作。但是,我无法通过 terraform 更新 VPC 对等连接。SQL 实例和 GKE 集群都在同一个 VPC 网络上
这是地形代码
这是我得到的错误代码,除了它是 400 错误之外,我无法完全理解
我不得不使用 gcloud 导出自定义路由,所以我想知道 terraform 无法找到 Peering_project 的问题,这是我不拥有或创建的一些谷歌网络项目
该命令运行良好
我如何使用 terraform 做到这一点?Terraform 版本:0.12.30 Google Provider 版本:3.60