繁体   English   中英

使用Nginx RBAC入口控制器公开服务的正确方法是哪种?

[英]Which is the proper way to expose a service using the nginx RBAC ingress controller?

我正在使用kubeadm工具来创建kubernetes v1.7集群。

使用external-ip在我的主机kubenode1.kube.com上公开服务“ echoheaders”非常简单

创建一个正在运行的部署:

kubectl run echoheaders --image=gcr.io/google_containers/echoserver:1.5

公开部署中的服务:

kubectl expose deployment echoheaders --port=80 --target-port=8080 --external-ip='192.168.10.96'

从您的网络浏览器访问它:

http://kubenode1.kube.com

现在,我想使用本指南中基于角色的入口控制器公开相同的服务echoheadershttps : //github.com/kubernetes/ingress/tree/master/examples/rbac/nginx

通过以上指南,我可以毫无问题地运行命令。

之后,使用类型:NodePort创建部署和服务“ echoheader”,但不使用external-ip选项

kubectl run echoheaders --image=gcr.io/google_containers/echoserver:1.5

kubectl expose deployment echoheaders --port=80 --target-port=8080 --type=NodePort

我们可以使用curl 192.168.10.96:31782访问该服务

还为此服务创建echoheaders入口资源:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: echoheaders-ingress
spec:
  rules:
    - host: kubenode1.kube.com
      http:
        paths:
          - path: /
            backend:
              serviceName: echoheaders
              servicePort: 80

但是我无法访问该服务:

curl http(s)://kubenode1.kube.com -H "Host: kubenode1.kube.com"

退货

curl: (7) Failed connect to kubenode1.kube.com:80; Connection Refused

当我检查命令时,一切似乎都正常:kubectl描述ing echoheaders

最后,我从这里尝试了kubernetes-dashboard服务: https : //github.com/kubernetes/dashboard/blob/master/src/deploy/kubernetes-dashboard.yaml

这与启用的Kubernetes 1.6 RBAC兼容..但是我也无法从外部访问它。 仍然出现相同的错误:

curl:(7)无法连接到kubenode1.kube.com:80; 拒绝连接

我是否需要提供更多详细信息? 我是否缺少某些东西,以便能够使用基于角色的nginx-ingress控制器公开服务?

我需要从http(s)://kubenode1.kube.com访问我的服务,并且不能在Nodeport端口上公开访问(http(s)://kubenode1.kube.com:31782)

如果要在该端口上访问Nginx控制器,则需要在该端口上公开它。 看起来像您链接的示例将其暴露在端口30080上: https : //github.com/kubernetes/ingress/blob/master/examples/rbac/nginx/nginx-ingress-controller-service.yml

要使用端口80,首先必须为节点端口服务允许如此小的端口号。 您可以使用--service-node-port-range参数来执行此操作,请参阅https://kubernetes.io/docs/admin/kube-apiserver/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM