使用默认配置的Kubernetes入口不起作用

时间:2019-02-10 19:56:06

标签: kubernetes kubernetes-ingress

我对入口有问题。就是行不通。如何理解和发现 怎么了?

我有kubernetes裸机。

已安装舵图

helm install stable/nginx-ingress --name ingress --namespace nginx-ingress

在相同名称空间中部署的入口

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /test
        backend:
          serviceName: efk-kibana
          servicePort: 5601

将服务的入口类型从LoadBalancer更改为NodePort,因为不是通过其他方式创建的。

安装后

curl http://example.com – get an answer example page

现在,所有服务都可以通过NodePort为我工作,例如-myweb.com:31555。

在任何教程中都没有写到我需要向/ etc / hosts或类似的东西添加东西。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果您使用的是裸机集群,那么您会迷失一部分。

入口位于入口控制器的后面-您仍然需要使用带有Type=LoadBalancer的服务来公开该服务,这在云提供商的默认情况下是不可能的。

但是,有一个解决方案。 MetalLB是提供程序,可让您为LoadBalancer类型的服务指定IP。

如果您使用layer 2 configuration进行部署并更新了入口控制器的部署,它将不需要NodePort即可工作。