我有以下设置:
(API 受到限制,但也许我可以访问)
当我阅读诸如 Web UI (kube-ui) 之类的扩展时,可以将其添加为 Add-On - 我已添加(仅 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 上(尽管我有只有两个副本(?!))?
为了更容易理解地描述我的想法,我的意思是:
最佳答案
您的 OpenStack 云提供商实现是否支持 LoadBalancer 类型的服务?
如果是这样,服务 Controller 应该为服务分配一个入口 IP 或主机名,最终应该会显示在 kubectl describe svc 输出中。然后,您可以为其设置外部 DNS。
如果没有,只需使用 type=NodePort,您仍然会在每个节点上获得一个 NodePort。然后,您可以按照评论中的建议创建一个 Ingress 资源,该资源可以进行端口和主机重新映射。
关于docker - Kubernetes 子域上的访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34683386/