gpt4 book ai didi

kubernetes - 如何在 Kubernetes 中使两个集群通信

转载 作者:行者123 更新时间:2023-12-02 11:49:06 25 4
gpt4 key购买 nike

我有这样的情况:

  • 一组网络机器
  • 数据库机器和其他服务的集群

  • 问题是如何让 2 个集群进行通信,以便在 Web 机器的/etc/hosts 中使用一些主机名。

    为了保护您的数据,创建入口服务以使数据库从外部可见是否安全?
    我尝试使用 nodePort 服务(因此使用内部 IP 地址),但我无法在不同集群之间建立联系 db-web

    目前我的临时解决方案是:

    a) 使用以下命令定义公共(public)静态 IP: gcloud compute addresses create my-public-static-ip --global
    b) 为我的数据库服务使用入口配置,其中我使用以下选项设置静态 IP:
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
    name: my-ingress
    annotations:
    kubernetes.io/ingress.global-static-ip-name: my-public-static-ip

    c) 在我的 daemonset.yaml 中,我定义了一个 hostAliases:
    apiVersion: extensions/v1beta1
    kind: DaemonSet
    metadata:
    name: my-daemonset

    spec:
    updateStrategy:
    type: RollingUpdate

    template:
    spec:
    nodeSelector:
    app: frontend-node

    terminationGracePeriodSeconds: 30

    hostAliases:
    - ip: <public_ip_addr>
    hostnames:
    - "my-db-service"

    它正在工作。但我不太相信这个解决方案在现场环境中是最好的或正确的

    最佳答案

    您可以在第一个集群中使用 NodePort 或 LoadBalancer 公开您的数据库服务,然后在第二个集群中创建指向 ip-endpoint 的服务。

    第二个集群上的服务可能如下所示:

    apiVersion: v1
    metadata:
    name: pg-database
    spec:
    ports:
    - protocol: TCP
    port: 5432
    targetPort: 5432

    ---

    kind: Endpoints
    apiVersion: v1
    metadata:
    name: pg-database
    subsets:
    - addresses:
    - ip: <IP address of load balancer or node>
    ports:
    - port: 5432

    关于kubernetes - 如何在 Kubernetes 中使两个集群通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47757913/

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