【问题标题】:Exposing LoadBalancer service in minikube at arbitrary port?在任意端口的 minikube 中公开 LoadBalancer 服务?
【发布时间】:2020-06-17 05:33:23
【问题描述】:

我有一个 minikube 集群,在一个部署中运行 WordPress,在另一个部署中运行 MySQL。两种部署都有相应的服务。 WordPress 服务的定义如下所示:

apiVersion: v1
kind: Service
metadata:
    name: wordpress
spec: 
    selector:
        app: wordpress
    ports:
        - port: 80 
    type: LoadBalancer

服务运行良好,minikube service 为我提供了一个不错的路径,地址为minikube ip 和一个随机的高端口。问题是 WordPress 需要在网站名称中包含完整的 URL。我宁愿不要每次都更改它并为集群设置本地 DNS 名称。

有没有办法在 minikube 的任意端口上公开 LoadBalancer?任何端口都可以,只要端口由我决定,而不是 minikube 本身?

【问题讨论】:

    标签: kubernetes load-balancing kubernetes-ingress minikube kubernetes-service


    【解决方案1】:

    请记住,Minikube 无法像其他云提供商那样提供真正的 loadbalancer,它只是使用简单的nodePortService 来模拟它。 p>

    您可以完全控制所使用的端口。首先,您可以在nodePort Service 规范中手动指定它(记住它应该在默认范围内:30000-32767):

    如果你想要一个特定的端口号,你可以在 nodePort 字段。控制平面将为您分配该端口 或报告 API 事务失败。这意味着您需要 自己处理可能的端口冲突。您还必须使用 有效的端口号,位于为 NodePort 配置的范围内的端口号 使用。

    您的示例可能如下所示:

    apiVersion: v1
    kind: Service
    metadata:
        name: wordpress
    spec: 
        selector:
            app: wordpress
        ports:
            - port: 80
              targetPort: 80
              nodePort: 30000
        type: NodePort
    

    您还可以通过在启动kube-apiserver 时在--service-node-port-range 标志之后提供自定义值来更改此默认范围。

    当您使用 kukbeadm 工具设置的 kubernetes cluster 时(Minikube 也将其用作默认引导程序),您需要编辑 @ 987654330@ 文件并提供所需的标志以及您的自定义端口范围。

    【讨论】:

    • 完美!我错过了 LoadBalancer 实际上暴露了nodePort
    猜你喜欢
    • 2019-04-15
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2020-07-19
    • 1970-01-01
    相关资源
    最近更新 更多