Kubernetes: ingress default-back-end not found错误

解决Kubernetes Minikube Ingress default-backend 问题
在创建K8s ingress时遇到default-back-end not found错误,原因是缺少默认后端服务。解决方案是手动添加default-http-backend服务,通过yaml文件定义并在kube-system命名空间中应用,从而成功解决该问题。

我建了一个 K8s ingress 但是使用下面的命令,确看到 default-back-end not found 错误:

kubectl describe ingress [my-ingress-name]

ingress default-back-end not found
我们的 ingress.yaml 如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: mongo-express-ingress
  # annotations:
  
### 配置文件整体结构解读 Kubernetes Ingress 是一种 API 对象,用于管理对集群中服务的外部访问,通常是 HTTP。Ingress 可以提供负载均衡、SSL 终止和基于名称的虚拟主机等功能。一个典型的 Ingress 配置文件包含 `apiVersion`、`kind`、`metadata` 和 `spec` 等部分。 ### 各部分详细解读 #### `apiVersion` 指定使用的 Kubernetes API 版本。对于 Ingress,`networking.k8s.io/v1` 是较新且稳定的版本,它定义了 Ingress 资源的结构和规范。 #### `kind` 明确资源的类型,这里是 `Ingress`,表示这是一个 Ingress 资源配置。 #### `metadata` 包含资源的元数据,如名称、命名空间和注解等。其中,`annotations` 用于提供额外的配置信息,是实现特定功能的关键部分。 #### `spec` 定义了 Ingress 的具体规则,包括主机名、路径和后端服务等。 ### `nginx.ingress.kubernetes.io/limit-rps` 注解解读 `nginx.ingress.kubernetes.io/limit-rps` 注解用于限制每秒的请求数(RPS,Requests Per Second)。这是一个非常有用的限流机制,可以防止后端服务被过多的请求压垮,保护服务的稳定性和可用性。 ### 示例配置文件解读 ```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: demo-ingress namespace: default annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/limit-rps: '100' nginx.ingress.kubernetes.io/limit-whitelist: 10.0.0.0/24,172.10.0.1 spec: rules: - host: www.example.com http: paths: - path: /login pathType: Prefix backend: service: name: demo-svc port: number: 8080 ``` #### 配置说明 - `apiVersion: networking.k8s.io/v1`:使用 Kubernetes Ingress API 的 v1 版本。 - `kind: Ingress`:定义资源类型为 Ingress- `metadata`: - `name: demo-ingress`:Ingress 资源的名称。 - `namespace: default`:Ingress 资源所在的命名空间。 - `annotations`: - `kubernetes.io/ingress.class: "nginx"`:指定使用 Nginx Ingress Controller 来处理该 Ingress- `nginx.ingress.kubernetes.io/limit-rps: '100'`:限制每秒的请求数为 100。 - `nginx.ingress.kubernetes.io/limit-whitelist: 10.0.0.0/24,172.10.0.1`:指定白名单 IP 地址或 IP 段,这些 IP 地址不受限流规则的影响。 - `spec`: - `rules`:定义 Ingress 规则。 - `host: www.example.com`:指定域名。 - `http`:定义 HTTP 规则。 - `paths`:定义路径规则。 - `path: /login`:匹配 `/login` 路径。 - `pathType: Prefix`:路径类型为前缀匹配。 - `backend`:指定后端服务。 - `service.name: demo-svc`:后端服务的名称。 - `service.port.number: 8080`:后端服务的端口号。 ### 作用总结 通过配置 `nginx.ingress.kubernetes.io/limit-rps` 注解,可以有效地控制进入后端服务的请求速率,避免服务因过载而崩溃。同时,结合白名单注解 `nginx.ingress.kubernetes.io/limit-whitelist`,可以让特定的 IP 地址或 IP 段不受限流影响,满足特殊需求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值