我在部署kubernetes集群的同一区域中设置了Redis实例(由Google管理的“内存存储”)。我希望我可以仅使用此私有redis ip地址作为host
来从kubernetes集群中部署的应用程序进行连接。不幸的是,我总是得到etimedout
,而且我完全不知道要连接到内存存储区需要做什么。
我是否需要添加特殊的防火墙规则,或者我在此过程中缺少某些内容?我还没有设置任何自定义规则,都是默认设置。
答案 0 :(得分:1)
在我的情况下,通过Terraform创建的网络存在问题。没有IP别名选项。如在文档中所述,Memorystore应该位于您的vpc上(作为对等方),并且您的群集必须使用ip别名创建。 就我而言,我这样写:
resource "google_container_cluster" "my-cluster" {
...
ip_allocation_policy = {
cluster_ipv4_cidr_block = "10.2.0.0/19"
}
...
}
和ip别名默认设置。 我找到了此解决方案here。
答案 1 :(得分:0)
最有可能的是,您必须在网络接口上添加一个redis
标签,以允许使用tcp:6379
。
请参阅https://cloud.google.com/community/tutorials/setting-up-redis
尤其是“打开网络端口(可选)”部分...
使用Cloud Shell SSH进入这样的实例,可能有助于发现问题。