【发布时间】:2021-01-08 13:53:30
【问题描述】:
我有一个来自 microk8s 的单节点 Kubernetes 实例。它安装在运行在 Raspberry Pi 4 上的 Ubuntu Server 20.20 上。
我正在尝试设置一个无法正常工作的入口资源。
当我运行 kubectl describe ingress my-ingress 时,我得到了这个输出
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
根据我在互联网上的发现,default-http-backend 是默认情况下应该存在的,但是当我运行kubectl get pods -n kube-system 时,我没有看到它。
问题: 如何在 mikrok8s 中启用default-http-backend?或者更一般地说,我如何使 ingress 工作?
注意:Ingress 和 DNS 插件已启用。
【问题讨论】:
-
您是如何创建
deployment和service的?使用选择器或headless?你能分享你的 YAML(部署、svc、入口)吗? -
@PjoterS 我的配置看起来和这个完全一样(只是占位符被填充):raw.githubusercontent.com/Shpota/cde/master/k8s/resources.yml
-
您似乎在使用
selectors,但是您也在使用nginx.ingress.kubernetes.io/rewrite-target: /,仅当您使用Nginx Ingress时才支持。另外我不确定 MicroK8s 是否支持rewrite。您是否尝试删除此注释并使用 docs 中的示例? -
@PjoterS 谢谢。配置 100% 正常工作(至少是 6 个月前)。那时,我在安装在 Ubuntu 笔记本电脑上的 mikrok8s 上对其进行了测试。这次我尝试在 Raspberry Pi 上运行它。当然,现在 mikrok8s 的版本可能有所不同,但理论上它应该以相同的方式工作。奇怪的是文档中的配置显示了相同的错误但运行良好。我不明白为什么。同时,如果我尝试将路径设置为除根路径之外的其他路径,它会给我 404(我正在检查
curl 127.0.0.1:80/new-path)。有什么想法吗? -
@PjoterS 我猜问题出在使用
v1beta1API 版本上。在我将 Ingress 配置更改为 this one 后,它起作用了。虽然我不明白为什么半年前有效的东西现在不起作用。
标签: networking kubernetes kubernetes-ingress microk8s