我有这样的情况:
- 一组网络机器
- 数据库机器和其他服务的集群
问题是如何让 2 个集群进行通信,以便在 Web 机器的 /etc/hosts 中使用一些主机名。
为了保护您的数据,创建入口服务以使数据库从外部可见是否安全?我尝试使用 nodePort 服务(因此使用内部 IP 地址),但我无法在不同集群之间建立联系 db-web
目前我的临时解决方案是:
a) 使用以下命令定义公共静态 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"
它正在工作。但我不太相信这个解决方案在现场环境中是最好的或正确的