问题标签 [kubernetes-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 投票
0 回答
342 浏览

kubernetes - GKE BackendConfig 不适用于 customRequestHeaders

我有一个在 Google Kubernetes Engine (v1.20.8-gke.900) 上运行的 nodejs 应用程序

我想添加自定义标头来获取客户端的区域和纬度,所以我参考了这篇文章这篇文章,并在 kubernetes 配置文件下创建,但是当我打印标头时,我没有得到任何自定义标头。

0 投票
3 回答
239 浏览

kubernetes - 谁将 ClusterIP 分配给 kubernetes 中的服务,可以禁用它吗?

我不确定 kubernetes 中的哪个组件可以完成这样的工作。也许kube-api-serverkube-controller-manager,因为它们都有一个名为:“service-cluster-ip-range”的参数。

我想知道是否可以禁用分配?

谢谢

0 投票
0 回答
89 浏览

kubernetes - 从 pod 内部访问主机本地端口

我有一个本地 kubernetes 集群,其中包含一个在主机节点上运行的应用程序(即不在 pod 中,在主机节点本身上)。该应用程序当前绑定到 localhost 端口。我希望从集群中的 Pod 和外部通过入口访问该应用程序。但我试图避免在主机防火墙上打开端口。

我已经尝试将 nginx pod 作为守护进程运行,无论是否使用 hostNetwork 来代理到主机的 localhost。但是如果不打开防火墙,我的其他 pod 也无法访问它。还有其他人遇到这个问题吗?

基本上,我试图让集群到达主机节点上的 localhost 端口。

或者

0 投票
2 回答
123 浏览

kubernetes - 版本“compute.cnrm.cloud.google.com/v1beta1”中类型“ComputeAddress”没有匹配项

我正在尝试为 Google Kubernetes Engine ( v1.20.8-gke.900 ) 创建一个 Google 管理的 SSL 证书,因为我在这里提到了这个文档,据说是创建一个ComputeAddress资源。所以我创建了一个下面的配置文件

现在当我通过运行应用它时

我收到一个错误

错误:无法识别“compute-address.yaml”:版本“compute.cnrm.cloud.google.com/v1beta1”中类型“ComputeAddress”没有匹配项

所以任何人都可以告诉什么应该是正确的apiVersionkind

0 投票
0 回答
70 浏览

kubernetes - 如何在 HAProxy Ingress Controller 中覆盖默认模式

我在我的 EKS Kubernetes 设置中使用 HAProxy 入口控制器。

最近我尝试在我的 k8s 上设置一个 Redis 实例。

当我尝试从集群外部连接并运行任何命令时,出现以下错误:

在进一步调试中,我发现了问题,HAProxy 需要在 中运行TCP mode,并且由于默认模式设置为HTTP.

为了解决这个问题,我在我的 Redis 服务中添加了以下注释,这应该可以解决问题,但它没有。我仍然不断收到同样的错误。

我登录到其中一个 HAProxy 容器以检查正在使用的配置,并找到以下块:

正如我所看到的,注释中的配置正在应用,但它没有覆盖mode.

我有几个问题

  • 如何覆盖HTTP为特定后端/服务设置的全局模式或任何全局模式?
  • 如果两者mode都在backend(如上述情况)中指定,那么哪一个优先?
0 投票
0 回答
68 浏览

istio - 发送 Envoy 运行时标志

我想设置一个新的 Envoy Runtime 标志。Envoy 速率限制扩展支持一个名为ratelimit.tcp_filter_enforcing的运行时标志,我想将其设置ratelimit.tcp_filter_enforcing0,这样我就可以只记录阈值而不是强制执行它们。

我已经配置了一个全局速率限制 EnvoyFilter。我提出这个问题的 API 文档可以在这里找到

0 投票
2 回答
65 浏览

kubernetes - kube-proxy 是否过滤 JSON 内容类型的 HTTP POST 有效负载?

我的 kubernetes 集群(1.18.20,calico 3.14.2)遇到了相当奇怪的行为:当我尝试通过 curlNodePort服务将 2 兆字节的 JSON 文件上传到 pod 时,传输被Recv failure: Connection reset by peer. 流量捕获显示客户端和服务器都收到来自网络的 RST 数据包,但没有发送它们。相同大小的二进制文件上传成功,但无论Content-Type指定如何,JSON 都会被拒绝。pod 之间的文件传输(使用类似的命令和相同的文件)顺利进行。通过入口上传(也使用 配置NodePort)也失败了。接收到的片段大小始终相同,约为 850K。

我已经使用nc -l 80*而不是具有相同结果的实际服务。

显然,kube-proxy不喜欢大的 JSON 文件。

是否可以从外部客户端向 pod 发送大的 JSON 文件,或者这样的限制是硬编码的?

UPD1

新集群(1.22.0,calico 3.20.0)的行为相同。

UPD2

系统不会拒绝所有大的 JSON 有效负载,但只会拒绝百分之几的用户上传。Payload 由客户端应用程序特制:多卷 Zip 存档的第一部分采用 base64 编码并封装为 JSON 文件 ('{ "data": "..." }')。导致连接中断的片段大小约为 640K。

中的过滤过程看起来像错误kube-proxy

0 投票
0 回答
111 浏览

amazon-ec2 - 当 eth0 上的实例分配了两个私有 IPS 时,master 上的 k3s 集群 pod 无法访问互联网

我正在尝试使用内置法兰绒网络运行单个主节点 k3s 集群。集群启动得很好,我可以使用busybox ping集群中的其他pod。

但我无法从 k3s pod ping 任何公共 IP。

我对该实例所做的唯一更改是将辅助私有 IP 附加到主网络接口eth0。我附上IP如下

在此之后,我的ip a命令在主机 ec2 上显示如下

ip r这是主机 ec2 上的命令输出

ip r这是busybox pod中的命令输出

我正在使用 ubuntu 20.04 服务器 AMI

如果我恢复 netplan 所做的更改,那么一切都开始正常工作。

从过去的几天开始,我一直在努力寻找解决方案,请对此提供任何指示或帮助。

0 投票
1 回答
36 浏览

nginx - Kubernetes 中的 SPRING_CLOUD_CONFIG_URI 设置

我有 2 个容器的简单设置,一个用于配置,一个用于网关。

下面是服务和部署的定义。它们创建得很好,但网关容器无法连接到http://configuration:8888并引发未知主机错误。

配置服务器在端口上运行 Nginx 8888

我可以从带有 URL 的浏览器访问配置http://configuration/actuator/

我认为 Kubernetes 中的 pod 应该能够很好地通信,只要它们在同一个网络中(这里是主机)。不确定这里缺少什么。

0 投票
1 回答
67 浏览

kubernetes - 在 k8s 集群中,我应该始终调用 Ingress Rule 还是 Node Port Service Name?

我在我们的系统中有许多宁静的服务

  • 有些是我们Kubernetes集群中的
  • 其他人在遗留基础设施上并托管在虚拟机上

我们的许多RESTful 服务相互之间进行同步调用(因此不能异步使用消息队列)

我们还有许多使用这些服务的 UI(胖客户端或 Web 应用程序)

我们可以像这样定义一个简单的 k8s 清单文件

  1. 服务
  2. 入口

我真的不确定集群上的宁静服务相互交谈的最佳方式是什么。

  • 集群外的调用者似乎只有一条好路由,它使用由入口规则构建的 url
  • 集群内的两个选项

这可以用一个例子来进一步说明

呼叫者 接收者 示例网址
用户界面 在集群上 http://clusterip/orders UI 将使用集群 ip 和入口规则到达订单管理器
集群外服务 在集群上 http://clusterip/orders 就像用户界面一样
在集群上 在集群上 http://clusterip/orders 可以使用类似上述方法的入口规则
在集群上 在集群上 http://orderManager-service:50588/ 可以直接使用服务名和端口

我在上面写了几次集群 ip ,但在现实生活中,我们把一些东西放在了顶部,所以有一个友好的名字,比如 http://mycluster/orders

所以当调用者接收者在集群上时

  • 使用集群外的服务和应用程序也使用的入口规则
  • 使用入口规则中使用的节点端口服务名称
  • 或者也许是别的东西!

使用nodeport 服务名称的一个好处是您不必更改基本 URL。

  • 入口规则将额外元素附加到路由(在上述情况下为orders
  • 当我将 RESTful 服务从旧版迁移到 k8s 集群时,它会增加复杂性