首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Minikube Ingress显示404

Minikube Ingress显示404
EN

Stack Overflow用户
提问于 2017-09-27 04:10:25
回答 2查看 4.4K关注 0票数 4

我遵循本教程:https://cloud.google.com/container-engine/docs/tutorials/http-balancer,但在Minikube中运行它时,每个步骤都带有yml文件:

步骤1:部署nginx服务器

production.yml:

代码语言:javascript
复制
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: pwa-app-production
  labels:
    app: MyApp
spec:
  replicas: 1
  template:
    metadata:
      name: app
      labels:
        app: MyApp
        env: production      
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - name: nginx
          containerPort: 80

然后:

代码语言:javascript
复制
$ kubectl apply -f production.yml

步骤2:将nginx部署公开为内部服务

service.yml:

代码语言:javascript
复制
kind: Service
apiVersion: v1
metadata:
  name: pwa-frontend
spec:
  type: NodePort
  selector:
    app: MyApp
  ports:
  - name: nginx
    port: 80
    protocol: TCP

然后:

代码语言:javascript
复制
$ kubectl apply -f service.yml

验证创建了服务并分配了一个节点端口:

代码语言:javascript
复制
$ kubectl get service pwa-frontend

NAME           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
pwa-frontend   10.0.0.28    <nodes>       80:30781/TCP   26m

步骤3:创建一个入侵资源

ingress.yml:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: pwa-ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  backend:
    serviceName: pwa-frontend
    servicePort: 80

然后:

代码语言:javascript
复制
$ kubectl create -f ingress.yml

步骤4:访问应用程序

通过运行以下命令,查找为应用程序服务的负载均衡器的外部IP地址:

代码语言:javascript
复制
$ kubectl describe ing pwa-ingress

Name:           pwa-ingress
Namespace:      default
Address:        192.168.99.100
Default backend:    pwa-frontend:80 (172.17.0.2:80)
Rules:
  Host  Path    Backends
  ----  ----    --------
  * *   pwa-frontend:80 (172.17.0.2:80)
Annotations:
  rewrite-target:   /

每件事情似乎都运行良好,所有信息输出似乎都与本教程相对应。但现在:

代码语言:javascript
复制
$ curl 192.168.99.100

default backend - 404
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-27 06:32:39

我假设您通过minikube addons enable ingress部署了默认的nginx入口控制器。您所学习的教程专门针对,在这些集群中部署了一个不同的入口控制器,它将创建Google负载平衡器,并且还能够公开普通的TCP服务。您的minikube中的nginx入口控制器只能处理以下HTTP入口控制器:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: pwa-ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: pwa-frontend
          servicePort: 80

修改文件后使用kubectl replace ingress.yml,然后再试一次请求。

票数 6
EN

Stack Overflow用户

发布于 2021-02-05 03:03:06

这个被接受的答案在测试版时已经过时了。这是最新版本

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: pwa-ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix      
        backend:
          service:
            name: pwa-frontend
            port:
              number: 80
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46439348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档