【发布时间】:2021-10-06 13:47:05
【问题描述】:
我有类似的问题,例如Kubernetes Ingress Nginx Controller is Not Found。
我正在尝试为本地部署项目。我有 404 用于后端 http://posts.com/posts 和前端 http://posts.com。 仅当我将 url http://posts.com:32685/posts 用于后端,http://posts.com:32685 时才有效 - 不适用于前端。 我用谷歌搜索了很多,我被卡住了:(
ingress-srv.yaml:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-srv
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
rules:
- host: posts.com
http:
paths:
- path: /posts/create
pathType: Prefix
backend:
service:
name: blog-posts-clusterip-srv
port:
number: 4000
- path: /posts
pathType: Prefix
backend:
service:
name: blog-query-srv
port:
number: 4002
- path: /posts/?(.*)/comments
pathType: Prefix
backend:
service:
name: blog-comments-srv
port:
number: 4001
- path: /?(.*)
pathType: Prefix
backend:
service:
name: blog-client-srv
port:
number: 3000
posts-depl.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: blog-posts-depl
spec:
replicas: 1
selector:
matchLabels:
app: blog-posts
template:
metadata:
labels:
app: blog-posts
spec:
containers:
- name: blog-posts
image: meylisday/blog-posts
imagePullPolicy: Never
---
apiVersion: v1
kind: Service
metadata:
name: blog-posts-clusterip-srv
spec:
selector:
app: blog-posts
ports:
- name: blog-posts
protocol: TCP
port: 4000
targetPort: 4000
posts-svr.yaml:
apiVersion: v1
kind: Service
metadata:
name: blog-posts-srv
spec:
type: NodePort
selector:
app: blog-posts
ports:
- name: blog-posts
protocol: TCP
port: 4000
targetPort: 4000
k 得到所有
NAME READY STATUS RESTARTS AGE
pod/blog-client-depl-64ff878fdf-cbd6d 1/1 Running 0 29m
pod/blog-comments-depl-c7c998884-c4r8m 1/1 Running 0 41m
pod/blog-event-bus-depl-7f67777497-4tjbs 1/1 Running 0 40m
pod/blog-moderation-depl-666bdccc66-pzqkc 1/1 Running 0 38m
pod/blog-posts-depl-5f66df48c4-dcqgn 1/1 Running 0 37m
pod/blog-query-depl-658d489d7c-4sds5 1/1 Running 0 36m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/blog-client-srv ClusterIP 10.111.45.128 <none> 3000/TCP 17h
service/blog-comments-srv ClusterIP 10.98.76.124 <none> 4001/TCP 4d16h
service/blog-event-bus-srv ClusterIP 10.101.244.228 <none> 4005/TCP 42d
service/blog-moderation-srv ClusterIP 10.109.100.160 <none> 4003/TCP 4d16h
service/blog-posts-clusterip-srv ClusterIP 10.98.80.155 <none> 4000/TCP 42d
service/blog-posts-srv NodePort 10.104.129.247 <none> 4000:32685/TCP 43d
service/blog-query-srv ClusterIP 10.103.8.73 <none> 4002/TCP 4d16h
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 44d
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/blog-client-depl 1/1 1 1 17h
deployment.apps/blog-comments-depl 1/1 1 1 4d16h
deployment.apps/blog-event-bus-depl 1/1 1 1 4d18h
deployment.apps/blog-moderation-depl 1/1 1 1 4d16h
deployment.apps/blog-posts-depl 1/1 1 1 5d17h
deployment.apps/blog-query-depl 1/1 1 1 4d16h
k get service -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller LoadBalancer 10.99.133.41 localhost 80:30383/TCP,443:31513/TCP 20h
ingress-nginx-controller-admission ClusterIP 10.107.76.88 <none> 443/TCP 20h
kubectl 描述 ingress ingress-srv
Name: ingress-srv
Namespace: default
Address: localhost
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
posts.com
/posts/create blog-posts-clusterip-srv:4000 (10.1.0.183:4000)
/posts blog-query-srv:4002 (10.1.0.184:4002)
/posts/?(.*)/comments blog-comments-srv:4001 (10.1.0.180:4001)
/?(.*) blog-client-srv:3000 (10.1.0.185:3000)
Annotations: kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: true
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Sync 30m (x15 over 5h28m) nginx-ingress-controller Scheduled for sync
Normal Sync 24m (x4 over 25m) nginx-ingress-controller Scheduled for sync
k 获取 ingress ingress-srv
NAME CLASS HOSTS ADDRESS PORTS AGE
ingress-srv <none> posts.com localhost 80 20h
整个项目都在这里https://github.com/meylisday/blog-react-nodejs 我会很高兴任何提示。谢谢。
【问题讨论】:
标签: kubernetes kubernetes-ingress nginx-ingress