向AWS Public IP公开OpenShift服务

时间:2019-01-18 00:36:09

标签: 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 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

1 个答案:

答案 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