我正在使用kubeadm工具创建kubernetes v1.7集群。
在我的主机上公开服务“echoheaders”非常简单。库贝。com使用外部ip
创建正在运行的部署:
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'
从web浏览器访问:
http://kubenode1.kube.com
现在,我想使用本指南中基于角色的入口控制器公开相同的服务echoheaders:https://github.com/kubernetes/ingress/tree/master/examples/rbac/nginx
根据以上指南,我运行命令时没有问题。。
之后,创建部署和服务“echoheader”,类型为:NodePort,但不使用外部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仪表板服务:https://github.com/kubernetes/dashboard/blob/master/src/deploy/kubernetes-dashboard.yaml
这与启用的库伯内特斯1.6 RBAC兼容...但我也无法从外部访问它。仍然得到相同的错误:
Curl:(7)连接kubenode1.kube.com:80失败;拒绝连接
我必须提供更多详细信息吗?我是否错过了一些东西,以便能够使用基于角色的nginx-ingress控制器公开服务?
我需要从超文本传输协议访问我的服务://kubenode1.kube.com,而不是在节点端口上公开访问(超文本传输协议://kubenode1.kube.com:31782)
如果您想在nodeport 80上访问它,您需要在该端口上公开nginx控制器。看起来您链接到的示例在端口30080上公开了它:https://github.com/kubernetes/ingress/blob/master/examples/rbac/nginx/nginx-ingress-controller-service.yml
要使用端口80,您首先必须为nodeport服务允许如此低的端口号。您可以使用apiserver的--service-node-port-range
参数来做到这一点,请参阅https://kubernetes.io/docs/admin/kube-apiserver/
我基本上希望通过URL从外部访问Nginx hello页面。我已经为运行kubernetes和Nginx ingress:vps的v服务器的子域创建了一个(工作)a记录。我的域名。通用域名格式 我使用以下教程在CoreOS上通过kubeadm将Kubernetes安装为单节点集群:https://kubernetes.io/docs/setup/independent/install-kubead
我有多个运行RDP应用程序的部署,它们都是通过ClusterIP服务公开的。我的k8s群集中有nginx ingress controller,为了允许tcp,我在nginx ingress controller部署中添加了tcp services configmap标志,并为其创建了configmap,如下所示 这将公开“rdp-service1”服务。我还有10个这样的服务需要在相同的端口号上
我创建了一个docker镜像(java Web应用程序),创建了一个包含1个主节点和1个工作节点的kubernetes集群,创建了一个部署和一个服务。所有的资源似乎都运行良好,因为我已经通过“kubectl描述资源资源名”进行了检查。最后,我使用了入口来公开集群之外的服务。入口资源似乎工作正常,因为在描述入口对象时没有错误。但是,在从另一台机器访问浏览器上的主机时,我得到了“您的连接不是私有的”错
如何使用入口控制器本身公开UI而不创建外部LoadBalancer?
我有一个ACI,它运行的REST API需要公开,但需要访问vnet内的资源。 出于某种原因,与普通VM不同,如果ACI位于vnet中,则它不能具有公共IP地址。如果您尝试为其提供DNS名称,则会失败。 唯一的选择似乎是使用应用程序网关,如下所述:https://docs.microsoft.com/en-us/azure/container-instances/container-instanc
null 现在的问题是: > 作为控制器方法执行的结果,我将返回对象的映射,该映射将解析为JSON。可能的实体是: {“结果”:“12”} 我应该如何提供基于结果的附加消息?我能想到两个解决办法: > 返回映射,该映射在肯定验证结果的情况下具有result=true,在否定验证结果的情况下具有result=false,以及带有相应消息的errorCode 返回指示验证结果的布尔值,并另外对否定结果