我有以下设置:
当我读到像Web UI(kube-ui)这样的扩展可以作为附加组件添加 - 我已添加(仅限kube-ui)。
现在,如果我运行像simple-nginx这样的测试,我会得到以下输出:
创建pod:
$ kubectl run my-nginx --image=nginx --replicas=2 --port=80
创建服务:
$ kubectl expose rc my-nginx --port=80 --type=LoadBalancer
NAME LABELS SELECTOR IP(S) PORT(S)
my-nginx run=my-nginx run=my-nginx 80/TCP
获取服务信息:
$ kubectl describe service my-nginx
Name: my-nginx
Namespace: default
Labels: run=my-nginx
Selector: run=my-nginx
Type: LoadBalancer
IP: 10.100.161.90
Port: <unnamed> 80/TCP
NodePort: <unnamed> 31170/TCP
Endpoints: 10.244.19.2:80,10.244.44.3:80
Session Affinity: None
No events.
我可以从节点的每个(!)外部IP访问我的服务。
我现在的问题如下:
如何使用子域访问任何已启动的服务以太,因此如何设置此配置(例如我以domain.com为例)或者可以打印出我必须访问的哪个节点-IP我的服务(虽然我只有两个副本(?!))?
描述我的想法更容易理解,我的意思是:
答案 0 :(得分:0)
您的OpenStack云提供程序实现是否支持LoadBalancer类型的服务?
如果是这样,服务控制器应该为服务分配入口IP或主机名,最终应该显示在kubectl describe svc输出中。然后,您可以为它设置外部DNS。
如果没有,只需使用type = NodePort,你仍然会在每个节点上获得一个NodePort。然后,您可以按照注释中的建议创建Ingress资源,该资源可以执行端口和主机重新映射。