如何在Kubernetes中通过入口公开Web应用程序?

时间:2018-11-06 03:29:17

标签: kubernetes kubernetes-ingress

我想公开一些可从Kubernetes的外部客户端访问的Web服务,许多人建议使用Ingress。我已按照指南https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md部署了入口控制器。

我不知道下一步该怎么做,有人可以举个例子来说明这一步骤吗?

1 个答案:

答案 0 :(得分:1)

您需要创建一个与该Ingress关联的Ingress资源和服务。例如,nginx入口控制器:

cat <<EOF
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
  name: foo-boo
  namespace: default
spec:
  rules:
  - host: foo.domain
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /mypath
EOF | kubectl apply -f -

然后您将能够看到入口:

$ kubectl get ingress foo-boo
NAME      HOSTS         ADDRESS                PORTS   AGE
foo-boo   foo.domain    someloadbalancer.com   80      6d11h

然后您可以使用curl之类的东西对其进行测试:

$ curl -H 'Host: foo.domain' http://someloadbalancer.com/mypath

有关Kubernetes入口here的更多信息。