簡體   English   中英

使用DNS的多雲swarm集群服務發現

[英]Multi-cloud swarm cluster service discovery using DNS

我設法創建了一個多雲群集群,在 GCP 上有一個領導節點,在 AWS 上有一個工作節點。 部署運行良好,但我偶然發現的唯一問題是使用 DNS 名稱的服務發現。

例如,我在領導節點 (GCP) 上部署了一個名為db的服務,在工作節點 (AWS) 上部署了一個應用程序服務。 他們使用如下定義的覆蓋網絡:

networks:
  internal:
    attachable: true
    driver: overlay
    ipam:
      config:
        - subnet: 10.0.69.0/24

在 GCP 網絡上,我打開了以下端口:

  • 2377用於集群管理通信的 TCP 端口;
  • 7946個用於節點間通信的TCP&UDP端口;
  • 4789用於覆蓋網絡流量。

在 AWS 網絡上,我打開了以下端口:

  • 7946個用於節點間通信的TCP&UDP端口;
  • 4789用於覆蓋網絡流量。

(來源: https : //docs.docker.com/engine/swarm/swarm-tutorial/

db容器獲得 IP 10.0.69.8應用程序容器獲得 IP 10.0.69.21 容器無法相互 ping,也無法解析dbapp DNS 名稱。 當我嘗試 ping 另一個時,我得到的只是Destination Host Unreachable

我的方法是否粗略,我錯過了什么? 還是我破壞了一些基本的東西? 多雲群集群是否需要已經連接的網絡? 如果是這樣,GCP 和 AWS 網絡之間的 VPN 是唯一的方法嗎?

如果您想在兩個不同的雲中創建一個群(集群), 您必須使用 VPN - 據我所知,沒有辦法繞過它。

如您所見,節點可以使用公共 IP 進行通信,但容器不能(它們只能使用內部 IP)並且您的 GCP 和 AWS 網絡未連接。

“服務或容器只能通過它們各自連接的網絡進行通信。”

在這種情況下,DNS 解析不是這里的問題。 效果而已。

當您連接網絡時,請確保 GCP 和 AWS 子網的 IP 不重疊 - 否則您可能會面臨另一個問題,不得不求助於雙 NAT 或其他一些非常復雜的解決方案。

最好保持簡單(閱讀 - 最好只使用一個雲)並將您的集群保持在那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM