参考一份指南尝试了一下minikube的ingress配置,最后出现404问题:
确认svc可以访问,比如:
D:\minikube>kubectl get svc meow-svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
meow-svc ClusterIP 10.101.250.199 <none> 80/TCP 24h
D:\minikube>curl 10.101.250.199
Hostname: meow-5b956f979-rlzqw
Pod Information:
-no pod information available-
Server values:
server_version=nginx: 1.12.2 - lua: 10010
Request Information:
client_address=172.17.0.1
method=GET
real path=/
query=
request_version=1.1
request_scheme=http
request_uri=http://10.101.250.199:8080/
Request Headers:
accept=*/*
host=10.101.250.199
user-agent=curl/7.55.1
Request Body:
-no body in request-
D:\minikube>
但是访问ingress就是404:
BAT:
for /F %i in ('minikube ip') do ( set minikubeip=%i)
curl %minikubeip%/meow
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
后来发现是ingress的annotation的问题,纠正后如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: meow-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
defaultBackend:
service:
name: meow-svc
port:
number: 80
rules:
- http:
paths:
- path: /meow
pathType: Prefix
backend:
service:
name: meow-svc
port:
number: 80
正确的结果:
D:\minikube>kubectl describe ingress meow-ingress
Name: meow-ingress
Namespace: default
Address:
Default backend: meow-svc:80 (172.17.0.8:8080,172.17.0.9:8080)
Rules:
Host Path Backends
---- ---- --------
*
/meow meow-svc:80 (172.17.0.8:8080,172.17.0.9:8080)
Annotations: kubernetes.io/ingress.class: nginx
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Sync 22m nginx-ingress-controller Scheduled for sync
D:\minikube>curl %minikubeip%/meow
Hostname: meow-5b956f979-j2fp9
Pod Information:
-no pod information available-
Server values:
server_version=nginx: 1.12.2 - lua: 10010
Request Information:
client_address=172.17.0.3
method=GET
real path=/meow
query=
request_version=1.1
request_scheme=http
request_uri=http://172.28.14.27:8080/meow
Request Headers:
accept=*/*
host=172.28.14.27
user-agent=curl/7.55.1
x-forwarded-for=172.28.0.1
x-forwarded-host=172.28.14.27
x-forwarded-port=80
x-forwarded-proto=http
x-forwarded-scheme=http
x-real-ip=172.28.0.1
x-request-id=c0d392e13ff48fe08045c1b2c8c09fba
x-scheme=http
Request Body:
-no body in request-
D:\minikube>
如果配置不正确,Events 都是空白的。
以上 minikube version: v1.23.0 通过。