docker - Kubernetes 子域上的访问服务

标签 docker openstack kubernetes coreos skydns

我有以下设置:

  • 私有(private) OpenStack 云 - o̲n̲l̲y̲ Web UI (Horizo​​n) 可访问
    (API 受到限制,但也许我可以访问)
  • 我用过核心操作系统 一个主节点和三个节点的设置
  • 资源是标准化的(OpenStack 的默认设置)
  • 我遵循了 GitHub 上的 CoreOS 入门指南(即,我使用默认的 YAML 来提供云配置)

  • 当我阅读诸如 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 上(尽管我有只有两个副本(?!))?

    为了更容易理解地描述我的想法,我的意思是:
  • 给定域: domain.com (指着主人)
  • 开始服务简单的nginx
  • 可以通过 访问服务simple-nginx.domain.com
  • 最佳答案

    您的 OpenStack 云提供商实现是否支持 LoadBalancer 类型的服务?

    如果是这样,服务 Controller 应该为服务分配一个入口 IP 或主机名,最终应该会显示在 kubectl describe svc 输出中。然后,您可以为其设置外部 DNS。

    如果没有,只需使用 type=NodePort,您仍然会在每个节点上获得一个 NodePort。然后,您可以按照评论中的建议创建一个 Ingress 资源,该资源可以进行端口和主机重新映射。

    关于docker - Kubernetes 子域上的访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34683386/

    相关文章:

    docker - 无法连接到 docker 容器内的服务

    kubernetes - K8s,尝试连接外部数据库的 pod 的表观 IP

    kubernetes - 为什么我无法使用 minikube IP 访问我的 Kubernetes 集群?

    ansible - 如何在 openstack 实例上使用没有 ssh key 的 ansible?

    kubernetes - Persistent Volumes 和 Persistent Volume Claims 之间有什么关系 (1 :1 or 1:n)

    docker - Wso2 EI作为docker容器运行时日志的位置是什么

    r - 在Docker Plumber中使用R预测包

    macos - 无法在 OSX 上使用 docker 公开 Web 服务器

    java - openstack4j 中的 RestEasyProviderFactory ClassCastException

    java - jclouds 与 OpenStack => java.util.NoSuchElementException : apiType compute not found in catalog []