Amazon web services 向aws公共ip公开openshift服务
我在aws运行openshiftAmazon 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 我有一个
[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
。