Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 向aws公共ip公开openshift服务_Amazon Web Services_Kubernetes_Openshift_Kubernetes Ingress - Fatal编程技术网

Amazon web services 向aws公共ip公开openshift服务

Amazon web services 向aws公共ip公开openshift服务,amazon-web-services,kubernetes,openshift,kubernetes-ingress,Amazon Web Services,Kubernetes,Openshift,Kubernetes Ingress,我在aws运行openshift [centos@ip-10-0-0-14 ~]$ oc version oc v3.6.1+008f2d5 kubernetes v1.6.1+5115d708d7 features: Basic-Auth GSSAPI Kerberos SPNEGO Server https://ip-10-0-0-14.ec2.internal:8443 openshift v3.6.1+008f2d5 kubernetes v1.6.1+5115d708d7 我有一个

我在aws运行openshift

[centos@ip-10-0-0-14 ~]$ oc version
oc v3.6.1+008f2d5
kubernetes v1.6.1+5115d708d7
features: Basic-Auth GSSAPI Kerberos SPNEGO

Server https://ip-10-0-0-14.ec2.internal:8443
openshift v3.6.1+008f2d5
kubernetes v1.6.1+5115d708d7
我有一个主节点和两个节点。 如何向aws公共ip公开服务?我可以在内部访问服务:

links http://blogroute-project-a.router.default.svc.cluster.local
如何将其公开给公共ip?可以在openshfit web控制台中完成吗? 我试着跟随,但失败了

指挥:

oc补丁svc blog-p'{“spec”:{“externalIPs”:[“什么ip?”]}'

文档说明了在ifconfig中可见的ip(但它不是aws公共ip)。 我应该使用哪个ip,aws公共ip,还是aws本地网络的专用ip(如10-0-0-14)

我应该使用主节点的ip吗?还是工人?如果我有两个工作节点,我应该写这两个节点的IP吗

目前有以下路线:

[centos@ip-10-0-0-14 ~]$ oc get routes
NAME             HOST/PORT                                                   PATH      SERVICES         PORT       TERMINATION   WILDCARD
blog             blog-project-a.router.default.svc.cluster.local                       blog             8080-tcp                 None
blog-django-py   blog-django-py-project-a.router.default.svc.cluster.local             blog-django-py   8080-tcp                 None
blog2            ec2-3-90-171-97.compute-1.amazonaws.com                     /blog2    blog             8080-tcp                 None
blogroute        blogroute-project-a.router.default.svc.cluster.local                  blog             8080-tcp                 None
以下服务:

[centos@ip-10-0-0-14 ~]$ oc get svc
NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
blog             172.30.111.64   3.90.171.97   8080/TCP   5d
blog-django-py   172.30.184.15   <none>        8080/TCP   5d
[centos@ip-10-0-0-14~]$oc获取svc
名称CLUSTER-IP EXTERNAL-IP端口年龄
博客172.30.111.64 3.90.171.97 8080/TCP 5d
博客django py 172.30.184.15 8080/TCP 5d

您可以通过创建一个带有公共IP的负载平衡器,并将其指向端口80上的所有节点(haproxy正在侦听端口80)来实现这一点。然后您必须创建一个通配符DNS,类似于
*.apps.yourdomain.com
,并将其指向您创建的负载平衡器

之后,您必须在OpenShift集群中配置域,请参阅


然后,您可以公开您的服务并创建路由,例如
blog.apps.yourdomain.com

您可以通过创建带有公共IP的负载平衡器并将其指向端口80上的所有节点(haproxy正在端口80上侦听)来实现这一点。然后您必须创建一个通配符DNS,类似于
*.apps.yourdomain.com
,并将其指向您创建的负载平衡器

之后,您必须在OpenShift集群中配置域,请参阅


然后您可以公开您的服务并创建路由,例如
blog.apps.yourdomain.com

它是HTTP服务吗?您是否使用
oc expose svc
创建了一条路由,以查看该路由是否有效?您是否有一个公共DNS通配符主机记录,它指向您的OpenShift群集路由器端口,以便您可以访问路由中生成的主机名?Graham,thx请评论,是的,这是http服务。我甚至可以通过链接文本浏览器从3台aws centos虚拟机中的任何一台访问它。关于你评论中的第三句话:OMG…:)1)如果我有一个公共DNS,我如何检查它?我使用AWSEC2。我没有自己设置任何额外的DNS。Openshift自己安装了某个东西。问题可能就在这里。你能指出一些关于它的文档或教程吗?2) 默认情况下,生成的主机名是blogroute-project-a.router.default.svc.cluster.local-它不是公共名称。我应该将主机名设置为什么主机名/ip?要公开主节点的ip/aws主机名?
blogrout-project-a.router.default.svc.cluster.local
是服务主机名,而不是生成的路由名。首先,您使用了什么说明来设置此群集。如果您运行
ocget routes
它会显示什么吗?@Graham,我在描述中添加了当前路线和服务。这个集群是在openshift webconsole中创建的,一个应用程序作为源到映像部署,另一个作为dockerhub中的docker映像部署。我从您的群集中了解到设置不正确。公开的路由不应使用
router.default.svc.cluster.local
。它是HTTP服务吗?您是否使用
oc expose svc
创建了一条路由,以查看该路由是否有效?您是否有一个公共DNS通配符主机记录,它指向您的OpenShift群集路由器端口,以便您可以访问路由中生成的主机名?Graham,thx请评论,是的,这是http服务。我甚至可以通过链接文本浏览器从3台aws centos虚拟机中的任何一台访问它。关于你评论中的第三句话:OMG…:)1)如果我有一个公共DNS,我如何检查它?我使用AWSEC2。我没有自己设置任何额外的DNS。Openshift自己安装了某个东西。问题可能就在这里。你能指出一些关于它的文档或教程吗?2) 默认情况下,生成的主机名是blogroute-project-a.router.default.svc.cluster.local-它不是公共名称。我应该将主机名设置为什么主机名/ip?要公开主节点的ip/aws主机名?
blogrout-project-a.router.default.svc.cluster.local
是服务主机名,而不是生成的路由名。首先,您使用了什么说明来设置此群集。如果您运行
ocget routes
它会显示什么吗?@Graham,我在描述中添加了当前路线和服务。这个集群是在openshift webconsole中创建的,一个应用程序作为源到映像部署,另一个作为dockerhub中的docker映像部署。我从您的群集中了解到设置不正确。公开的路由不应使用
router.default.svc.cluster.local