Ank*_*ati 11 kubernetes kubernetes-ingress
当我尝试为我的 Kubernetes 集群创建入口资源时(入口控制器已经创建),入口资源/规则正在创建,我能够在 kubectl get 中看到。但是当我执行 kubectl describe 时,我看到了一个错误:
默认后端:default-http-backend:80(<错误:未找到端点“default-http-backend”>)
这是预期的吗??我什至无法使用hotel.example.com
我在 Ingress 资源中定义的 DNS 名称 ( )连接到我的应用程序。是因为这个 http-backend 错误吗?如果没有,任何使应用程序连接的建议!!
[dockuser@kubemaster ingress-controller-domain-name-or-path-based-routing]$ kubectl describe ing hotel-ingress --namespace hotel
Name: hotel-ingress
Namespace: hotel
Address:
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
hotel.example.com
/ hotel-svc:80 (10.36.0.2:80,10.44.0.2:80)
Annotations: Events:
apiVersion: v1
kind: Namespace
metadata:
name: hotel
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: hotel-ingress
namespace: hotel
spec:
rules:
host: hotel.example.com
http:
paths:
path: /
backend:
serviceName: hotel-svc
servicePort: 80
apiVersion: apps/v1
kind: Deployment
metadata:
name: hotel
namespace: hotel
spec:
replicas: 2
selector:
matchLabels:
app: hotel
template:
metadata:
labels:
app: hotel
spec:
containers:
- name: hotel
image: nginxdemos/hello:plain-text
ports:
- containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: hotel-svc
namespace: hotel
spec:
ports:
port: 80
targetPort: 80
selector:
app: hotel
Run Code Online (Sandbox Code Playgroud)
nak*_*iin 24
您可能希望添加defaultBackend
为 Ingress 定义的一部分,如下所示
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: default-backend-ingress-example
spec:
defaultBackend:
service:
name: hotel-svc
port:
number: 80
Run Code Online (Sandbox Code Playgroud)
环境
minikube version: v1.21.0
kubectl version: v1.20.7
Run Code Online (Sandbox Code Playgroud)
如果您使用Minikube,可能是因为您尚未启用 ingress。
请尝试以下命令:
minikube addons enable ingress
Run Code Online (Sandbox Code Playgroud)
或者
minikube addons enable ingress --alsologtostderr
Run Code Online (Sandbox Code Playgroud)
我意识到这得到了回答(为后代添加)但是在我的情况下我已经跑了
minikube addons enable ingress
Run Code Online (Sandbox Code Playgroud)
但系统仍然缺失default-http-backend
。
我怀疑当时有一个端口或某些类似的冲突使用,并且默认的 http-backend 无法创建。
在多次尝试纠正问题后,我终于发现执行以下命令为我解决了问题:
kubectl apply -f https://raw.githubusercontent.com/roelal/minikube/5093d8b21c0931a6c63fa448538761b4bf100ee0/deploy/addons/ingress/ingress-rc.yaml
kubectl apply -f https://raw.githubusercontent.com/roelal/minikube/5093d8b21c0931a6c63fa448538761b4bf100ee0/deploy/addons/ingress/ingress-svc.yaml
Run Code Online (Sandbox Code Playgroud)
PS: 请注意,已经存在配置映射,nginx-load-balancer-conf
所以我没有添加它们。
PPS: 其次,这只是为了在本地笔记本电脑上进行教育,因此请对其可信度持保留态度。
Mal*_*ata -14
在命名空间中创建 default-http-backend
服务kube-system
,错误就会消失。
查看更多:ngress-nginx-故障排除。
归档时间: |
|
查看次数: |
27519 次 |
最近记录: |