Cloud DNS private zones with CNAME

有些 VM 會無法解析 private zone 裡的 CNAME ,而有些則可以解析的情況。

Short description

查看文件 [1] 所述,當 VM 使用 metadata server 169.254.169.254 為 NS 並且沒有其他替代 NS 的時候, DNS 會 follow this table. 您可查看第一項 Cloud DNS private zone 的 behavior Cloud DNS systems perform queries for the CNAME answer in Cloud DNS private zones that are authorized for the VPC network. Cloud DNS systems do not perform queries for the CNAME answer in any public DNS zones, including Cloud DNS public zones. 所以會無法 query 到網址的 A record。

正常可解析的 VM ,可以先查看 /etc/resolv.conf 的 nameserver,將會是 127.0.0.53,也可以運行 sudo ss -tulnp | grep LISTEN ,會看到 127.0.0.53%lo:53 和 users:(("systemd-resolve",pid=18078,fd=12)) ,代表著 systemd-resolved 在本地建立了一個本地 DNS server,而這時如果透過 systemd-resolve test.example.com 去解析 domain,可看到他會回傳正常的 IP 位置。因此在此 VM 才可以正常的解析 [2]。

我們再來查看無法解析的 VM,以 GKE node (VM) 為例子,會無法看到任何由 systemd-resolved 所建立的 port 和 /etc/resolv.conf 的 nameserver is 169.254.169.254,因此會直接前往 169.254.169.254 去做查詢,最終只會回傳 CNAME 得結果。

Resolution

Workaround 做法可設定 Private DNS forwarding zone [3],將特定的 zone 轉給地端的 DNS Server 去做解析,另外要達成 Private DNS forwarding zone 這個功能,必須在地端 DNS Server 允許來自 35.199.192.0/19 的 IP range。

Any solution?

如 GCP 並未跟地端連接或是地端沒有 DNS server,目前尚無別的方法可執行。

  • VM as DNS server.

[1] https://cloud.google.com/dns/docs/cnamechasing

[2] https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html#See Also

[3] https://github.com/spotify/scio/issues/970#issuecomment-519580557

Read more

如何安裝 KubeSphere 以及管理 Workspace 和新增 Label

前言 在 Kubernetes 的世界中,KubeSphere 是一個功能強大的開源容器平台,它不僅讓 Kubernetes 的管理更簡單,還集成了多集群管理、DevOps、微服務治理等功能。本篇文章將教您如何使用 Helm 快速安裝 KubeSphere,並如何通過管理 Workspace 和新增 Label 來實現資源的高效管理。 一、使用 Helm 安裝 KubeSphere 1. 為什麼選擇 Helm 安裝? Helm 是 Kubernetes 中廣泛使用的包管理工具,使用 Helm 安裝 KubeSphere 有以下優點: * 自動化:簡化安裝過程,減少手動配置。 * 靈活性:可以根據需求自定義安裝的模組。 * 版本控制:支持管理和回滾安裝的不同版本。 2. 安裝前準備 在開始安裝之前,請確保以下條件:

By Tim Chiagn

我的經驗

1. 網絡與安全 (Networking & Security) * Fortigate: 防火牆來管理網路環境 * Traefik: 用於 K8s 的 2. 虛擬化與存儲 (Virtualization & Storage) * Esxi: 買了一台server 使用 Esxi 管理 vm * TrueNAS: 還沒有買 NAS 使用這個加減用一下 3. DevOps 與持續交付 (DevOps & CI/CD) * ArgoCD: GitOps 工具,用於 Kubernetes 的應用交付和管理,支持自動化部署和同步。 * KubeSphere:提供完整的 CI/CD 工作流管理、應用部署和 DevOps 整合功能,是 Kubernetes

By Tim Chiagn