我正在用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 Public IP公开服务?我可以在内部访问服务:
links http://blogroute-project-a.router.default.svc.cluster.local
如何将其公开给公共IP?是否可以在openshfit Web控制台中完成? 我尝试遵循https://docs.openshift.com/container-platform/3.4/dev_guide/expose_service/expose_internal_ip_service.html,但失败了。
在命令中:
oc补丁svc博客-p'{“ spec”:{“ externalIPs”:[“ ip是什么?”]}}'
doc声明了在ifconfig中可见的ip(但不是aws公共ip)。 我应该使用aws本地网络中的哪个ip,aws公共ip或私有ip(例如10-0-0-14)?
我应该使用主节点的ip吗?还是工人?如果我有两个工作节点,则我要写两个节点的ips?
当前有以下路线:
[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
答案 0 :(得分:2)
您可以通过使用公共IP创建负载均衡器并将其指向端口80上的所有节点(haproxy正在监听端口80)来实现此目的。然后,您必须创建一个通配符DNS(类似于*.apps.yourdomain.com
),并将其指向您创建的负载均衡器。
然后,您必须在OpenShift群集中配置域,请参见https://docs.openshift.com/container-platform/3.6/install_config/install/advanced_install.html#configuring-cluster-variables。
然后,您可以公开服务并创建路由,例如blog.apps.yourdomain.com
。