如何为kubernetes设置入口控制器



对不起,我对Kubernetes和所有东西都是新手。。。我在clusterIP服务中有一个java后端,在NodePort服务中有个前端。我试图从前端(从导航器(向后端发出请求,但没有成功。

我看到我需要设置一个ingress crontroller来使其工作,但每次我都会做一个";minikube隧道";然后转到我的本地主机,我得到一个NGINX 404错误。地址http://toto.virtualisation也不起作用(就像它不存在一样(。

以下是我的yaml文件中的前端和入口控制器的设置:

# Front Deployment 
apiVersion: apps/v1
kind: Deployment
metadata:
name: front-end-deployment
spec:
selector:
matchLabels:
app: front-end
template:
metadata:
labels:
app: front-end
spec:
containers:
- name: front-end-container
image: oxasa/front-end-image:latest
---
# Front Service
apiVersion: v1
kind: Service
metadata:
name: front-end-service
spec:
ports:
- name: http
targetPort: 80
port: 80
type: NodePort
selector:
app: front-end
--- 
# Front Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: front-end-ingress
spec:
rules:
- host: toto.virtualisation
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: front-end-service
port:
number: 80

如果你看到任何需要做的事情来让它发挥作用。。。

尝试添加

spec:
ingressClassName: nginx

到Ingress资源,以确保nginx拾取创建的入口。

此外,服务对服务通信不需要入口。您可以从前端服务使用Kubernetes内部DNS。您可以使用类似{服务名称}的东西使前端访问后端。{namespace}.svc.cluster.local