问题标签 [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 - 从 GCP 中的不同环境访问数据库
我还是 GCP/GKE 网络的新手。
我有一个 mysql 数据库,位于环境 A、区域east4、子网 subent-1 中。我需要通过私有 IP 地址从区域east4 的环境B 中的子网subnet-2 访问该数据库。
我的应用程序在环境 B 的集群中的一个 Pod 中运行。该集群被分配到子网 2。
我为每个环境设置了 VPC native,两个网络通过“vpc peering”连接。
任何解决此问题的建议将不胜感激。
韩元
django - GKE 上的 Kubernetes Django Restframework
我试图通过负载均衡器的外部 ip 访问。但是我无法通过该 ip 连接到我的浏览器。
我在端口 80 上的连接被拒绝。我不知道我的 yaml 文件是不正确还是负载均衡器上的配置
我使用 requirements.txt 成功构建了我的 docker 映像,并将其从 GKE 加载到存储桶中,以将 docker 映像拉入 Kubernetes。
我使用以下命令部署了我的图像:
kubectl create -f <filename>.yaml
使用以下 yaml 文件:
它工作正常我有下面的输出kubectl get pods
与kubectl get services
kubectl describe services example
给我以下输出
但是我无法通过 curl 或浏览器连接到我的 rest api 我尝试连接<external_ip>:80
并获得一个connection refused on this port
我用Nmap扫描了外部 ip,它显示端口 80 已关闭。但我不确定这是否是原因。我的 nmap 输出:
谢谢你们的帮助
google-kubernetes-engine - GKE Ingress 打开端口
我用一些 api 容器创建了一个谷歌云 kubernetes 集群。它们现在使用负载平衡器公开。但现在我需要迁移到入口负载均衡器。所以我通过 nodeport 暴露了它们并设置了入口负载均衡器。
但是现在我遇到了问题,我需要添加防火墙规则来打开 NodePorts。否则我的 Ingress 健康检查会失败。我做错什么了吗?还是添加防火墙规则的唯一可能性?如果是,是否有可能只允许来自入口/健康检查的流量?否则我可以通过节点的 IP 联系我的服务。
谢谢
google-kubernetes-engine - GKE NEG 中的重复请求(容器原生负载平衡)
我正在使用容器原生负载平衡(GKE 上的 NEG),我想问一下,是否有任何选项可以处理两次(或更多次)对负载平衡器的同一个请求 - 通过给予更多的 pod。
我有这种怀疑,这只是因为 NEG(无法从我的应用程序发送更多请求)并且根据记录的时间,我发现此 LB 请求的 3 倍相同时间戳(秒)(此日志是从所有 pod 收集的)当然)。
k8s 最终配置:https ://gist.github.com/Barbarossa-42/86aac72da68c9e95a726e0845334d68a
更新:当达到 LB 超时或 pod 崩溃时会发生这种情况。对我来说,有一种奇怪的行为。为什么它再次将此请求发送到另一个(工作)pod?
谢谢你的帮助
nginx - 如何配置 nginx 部署以将流量传递到 Google Kubernetes Engine 中的前端部署?
GKE 和 kubernetes 的新手,只是试图启动和运行一个简单的项目。以下是我在 GKE 中尝试在单个集群、单个节点池和单个命名空间中完成的任务:
LoadBalancer 服务后面的 nginx 部署在端口 80 上接受 Http 流量,将其通过端口 8000 传递到
ClusterIP 服务后面的前端部署(python Django)接受端口 8000 上的流量。
前端已经与运行 Postgres 数据库的 StatefulSet 成功通信。在我将其服务从 LoadBalancer 切换到 ClusterIP 之前,可以看到前端成功地为 Http (gunicorn) 提供服务。
我不知道如何正确设置 Nginx 配置以将流量传递到 ClusterIP 服务以进行前端部署。我所拥有的不起作用。
任何意见/建议将不胜感激。以下是设置文件:
nginx - etc/nginx/conf.d/nginx.conf
nginx 部署/服务
前端部署/服务
kubernetes - 仅使用内部 ip 在 (GKE) Kubernetes 中公开服务
TL;DR 在 GKE 私有集群中,我无法使用内部/私有 IP 公开服务。
我们的部署由大约 20 个微服务和 4 个单体组成,目前完全在 GoogleCloud 上的虚拟机上运行。我正在尝试将此基础架构移至 GKE。该项目的第一步是构建一个私有 GKE 集群(即没有任何公共 IP)作为我们的暂存的替代。由于这是暂存的,我需要在内部公开所有微服务端点以及单体端点以用于调试目的(意味着,仅对那些连接到 VPC 的端点),这就是我卡住的地方。我尝试了两种方法:
- 在每个服务和单体之前放置一个内部负载均衡器 (ILB)。例子:
这可行,但有严重的限制。ILB 创建转发规则,GCP限制每个网络 75 条转发规则。这意味着我们不能在一个网络中构建超过 3 个集群。我们不能接受。
- 一个。我尝试在所有服务前面放置一个入口控制器,它总是使用公共 IP 公开整个集群 - 绝对禁止。
湾。我尝试使用 nginx 入口控制器,但最终根本没有 ip。
第三个选项是配置防火墙规则,这将切断对公共 IP 的任何访问。考虑到安全问题,这在内部被拒绝了。
我被困在这个阶段,需要一些指示才能继续前进。请帮忙
google-kubernetes-engine - GKE 上的 ClusterIP 服务是否需要 mTLS?
如果我的 GKE 集群有几个 GRPC 微服务,这些微服务只通过 ClusterIP 服务公开,是否有必要使用 mTLS/Istio?如果服务只在同一个 VPC 上相互通信,这似乎有点过头了,但我讨厌在代码库中看到“withInsecure”。我们正在为前端使用 GKE Ingress 来终止 TLS,但似乎不安全的 VPC 内部流量应该没问题。
kubernetes - GKE NEG Ingress 总是返回 502 Bad Gateway
我在 Google Cloud Kubernetes Engine 集群上设置了 StatefulSet、带有 NEG 的服务和 Ingress。
每个工作负载和网络对象都准备就绪且运行良好。创建入口并更新所有服务的 NEG 状态。为集群启用了 VPC-native (Alias-IP) 和 HTTP 负载均衡器选项。
但是,当我尝试使用 Ingress 中指定的路径访问我的应用程序时,我总是会收到 502 (Bad Gateway) 错误。
这是我的配置(名称已编辑,包括图像名称):
它有什么问题,我该如何解决?
kubernetes - 在 NAT 后面公开 Kubernetes 集群内的服务
我有一个使用Cloud NAT设置的 GKE 集群,因此来自任何节点/容器向外的流量都将具有相同的外部 IP。(在使用第 3 方服务时,我需要将其用于白名单)。
现在,如果我想在这个集群上部署一个代理服务器来进行基本的流量转发,我该如何公开代理服务器“端点”?或者更一般地说,如果我将服务部署到这个 GKE 集群,我该如何公开它?
google-kubernetes-engine - 如何增加 GKE 集群的 Service 地址范围
我的一个 GKE 集群的服务 IP 不足。它最初是使用默认服务地址范围(10.0.0.0/20)创建的,我们即将达到 4k 服务标记。
有没有办法扩展现有 GKE 集群的服务地址范围?集群的子网有足够的空间来分配更多的 IP,但是我还没有找到 API 或命令来更改它。
https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips#cluster_sizing_secondary_range_svcs提到在使用时无法编辑次要范围。有没有办法替换它,让 GKE 滚动服务的 IP?