首页 > 解决方案 > 如何在本地开发环境中使用 Ingress 公开 k8s 集群?

问题描述

我已经使用 minikube 创建了一个集群。向其添加了部署和集群 IP 服务。现在我想从集群外部访问这个资源,使用 curl 或浏览器和使用 nginx 入口控制器的 nginx 路由。我启用了入口并应用了以下 ingrwess-srv.yaml:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - host: my-domain.dev
      http:
        paths:
          - path: /auth
            pathType: Prefix
            backend:
              service:
                name: auth-srv
                port:
                  number: 3003

这是我的 auth-depl.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: auth-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: auth
  template:
    metadata:
      labels:
        app: auth
    spec:
      containers:
        - name: auth
          image: my-image-from-docker-hub
          env:
            - name: MONGO_URI
              value: 'mongodb://auth-mongo-srv:27017/auth'
---
apiVersion: v1
kind: Service
metadata:
  name: auth-srv
spec:
  selector:
    app: auth
  ports:
    - name: auth
      protocol: TCP
      port: 3003
      targetPort: 3003

然后我运行:kubectl get ingress这就是结果:

NAME              CLASS   HOSTS          ADDRESS        PORTS   AGE
example-ingress   nginx   my-domain.dev  182.138.19.21   80      48m

然后我使用 sudo 添加 /etc/hosts:

182.138.19.21 my-domain.dev

然后运行:curl my-domain.dev没有响应。

如何访问本地环境中的开发集群,以便在其上进行开发?

还尝试使用 skaffold,它实际上反映了 src 目录中的更改,但我找不到通过浏览器访问它们的方法。

标签: kubernetesminikubenginx-ingressskaffoldingress-controller

解决方案


推荐阅读