【问题标题】:Kubernetes Ingress Controller Error when exposing application公开应用程序时出现 Kubernetes 入口控制器错误
【发布时间】:2020-03-23 23:38:21
【问题描述】:

我正在尝试使用 nginx Ingress 控制器公开我的后端 API 服务。这是我定义的 Ingress 服务:

apiVersion: extensions/v1beta1
kind: Ingress
metadata: 
  name: plant-simulator-ingress
  namespace: plant-simulator-ns
  annotations:
    ingress.kubernetes.io/enable-cors: "true"
    kubernetes.io/ingress.class: nginx
    # nginx.ingress.kubernetes.io/rewrite-target: /
    prometheus.io/scrape: 'true'
    prometheus.io/path:   /metrics
    prometheus.io/port:   '80'
spec:
  rules:
    - host: grafana.local
      http:
        paths: 
          - backend: 
              serviceName: grafana-ip-service
              servicePort: 8080

    - host: prometheus.local
      http:
        paths: 
          - backend: 
              serviceName: prometheus-ip-service
              servicePort: 8080 

    - host: plant-simulator.local
      http:
        paths: 
          - backend: 
              serviceName: plant-simulator-service
              servicePort: 9000 

plant-simulator-service 被定义为一个服务:

apiVersion: v1
kind: Service
metadata:
  name: plant-simulator-service
  namespace: plant-simulator-ns
  labels:
    name: plant-simulator-service
spec:
  ports:
    - port: 9000 
      targetPort: 9000 
      protocol: TCP
      name: plant-simulator-service-port
  selector:
    app: plant-simulator
  type: LoadBalancer

我在我的 Minikube 上成功部署了它,下面是一组正在运行的 pod:

Joes-MacBook-Pro:~ joesan$ kubectl get pods --all-namespaces
NAMESPACE            NAME                               READY   STATUS    RESTARTS   AGE
kube-system          coredns-6955765f44-cvblh           1/1     Running   0          39m
kube-system          coredns-6955765f44-xh2wg           1/1     Running   0          39m
kube-system          etcd-minikube                      1/1     Running   0          39m
kube-system          kube-apiserver-minikube            1/1     Running   0          39m
kube-system          kube-controller-manager-minikube   1/1     Running   0          39m
kube-system          kube-proxy-n6scg                   1/1     Running   0          39m
kube-system          kube-scheduler-minikube            1/1     Running   0          39m
kube-system          storage-provisioner                1/1     Running   0          39m
plant-simulator-ns   flux-5476b788b9-g7xtn              1/1     Running   0          20m
plant-simulator-ns   memcached-86bdf9f56b-zgshx         1/1     Running   0          20m
plant-simulator-ns   plant-simulator-6d46dc89cb-xsjgv   1/1     Running   0          65s

这里是服务列表:

Joes-MacBook-Pro:~ joesan$ minikube service list
|--------------------|-------------------------|-----------------------------|-----|
|     NAMESPACE      |          NAME           |         TARGET PORT         | URL |
|--------------------|-------------------------|-----------------------------|-----|
| default            | kubernetes              | No node port                |
| kube-system        | kube-dns                | No node port                |
| plant-simulator-ns | memcached               | No node port                |
| plant-simulator-ns | plant-simulator-service | http://192.168.99.103:32638 |
|--------------------|-------------------------|-----------------------------|-----|

我想要实现的是我的应用程序后端可以通过我在 Ingress 中配置的 dns 条目访问 -

植物模拟器.local

关于我缺少什么的任何想法?

【问题讨论】:

  • 在 minikube 中处理 Ingress 对您使用的 hypervisor 非常敏感,介意告诉您您使用的是哪个 Hypervisor 吗?您还可以测试192.168.99.103:32638 上是否可以访问该服务?只要你回答我就可以继续进行故障排除
  • 我通过将映射添加到 /etc/hosts 文件中的主机名和 IP 地址来解决此问题,并且成功了!
  • 我本来打算这么建议的,但是变量太多了,我更愿意先问你。你可以写一个答案来帮助其他有类似问题的人。

标签: kubernetes


【解决方案1】:

OP 报告通过在/etc/hosts 中添加 IP 和主机名解决了此问题

$ cat /etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
192.168.99.103  plant-simulator.local

【讨论】:

    猜你喜欢
    • 2018-09-29
    • 2021-09-20
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多