gpt4 book ai didi

docker - 在云中为 Redis 创建连接字符串

转载 作者:行者123 更新时间:2023-12-02 20:52:34 24 4
gpt4 key购买 nike

我有一个 Redis pod,我希望来自不同集群和未在云中运行的应用程序的连接请求。
由于 Redis 不适用于 http 协议(protocol),因此我在下面完成的路由访问不适用于此连接字符串“route-redis.local:6379”。

  • route.yml
  • apiVersion: v1
    kind: Route
    metadata:
    name: redis
    spec:
    host: route-redis.local
    to:
    kind: Service
    name: redis
  • 服务.yml
     apiVersion: v1
    kind: Service
    metadata:
    name: redis
    spec:
    ports:
    - port: 6379
    targetPort: 6379
    selector:
    name: redis

  • 你可能遇到过这种情况。简而言之,有没有办法通过路由访问redis pod?如果没有,你如何解决这个问题?

    最佳答案

    您已经发现 Redis 不能通过 HTTP 协议(protocol)工作,据我所知这是正确的。路由通过检查每个请求的 HTTP Host header 来工作,这对 Redis 不起作用。这意味着您将无法将路由用于非 HTTP 工作负载 .
    通常,此类非 HTTP 服务通过 Service 公开。和 NodePorts .这意味着作为集群一部分的每个工作节点都将打开此端口并将流量转发到您的应用程序。
    您可以在 Kubernetes documentation 中找到更多信息:

    NodePort: Exposes the Service on each Node's IP at a static port (the NodePort). A ClusterIP Service, to which the NodePort Service routes, is automatically created. You'll be able to contact the NodePort Service, from outside the cluster, by requesting :.


    您可以像这样定义 NodePort(此示例适用于 MySQL,它也是非 HTTP 工作负载):
    apiVersion: v1
    kind: Service
    metadata:
    name: mysql
    labels:
    name: mysql
    spec:
    type: NodePort
    ports:
    - port: 3306
    nodePort: 30036
    name: http
    selector:
    name: mysql
    当然,您的管理员可能会限制对这些端口的访问,因此您可能会也可能不会在 OpenShift 集群上使用这些类型的服务。

    关于docker - 在云中为 Redis 创建连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64710242/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com