我一直在尝试建立一个terraform模块来创建私有集群,而我正在努力应对一种奇怪的情况。
使用主授权网络创建群集时,如果通过GCP控制台进行操作,则可以很好地创建专用群集。但是当我使用Terraform进行操作时,出现一个奇怪的错误:
Invalid master authorized networks: network "<cidr>" is not a reserved network, which is required for private endpoints.
代码有趣的部分如下:
....
master_authorized_networks_config {
cidr_blocks {
cidr_block = "<my-network-cidr>"
}
}
private_cluster_config {
enable_private_endpoint = true
enable_private_nodes = true
master_ipv4_cidr_block = "<cidr>"
}
....
我在这里忘记了什么吗?
答案 0 :(得分:0)
我自己就能弄清楚,我想我应该已经详细阅读了gcp方面的所有文档。
这里的问题是我添加了一个主授权网络cidr范围以启用本地网络访问,这是一个外部地址,并且来自GCP文档
您不能将外部IP地址包括在主授权网络列表中,因为已禁止访问公共端点。
如果您好奇,想了解更多信息,请单击here
答案 1 :(得分:0)
我最近也遇到过同样的问题。
我发现的解决方案是设置enable_private_endpoint = false
。
在这种情况下,专用端点还是会创建,但是您可以将带有外部地址的CIDR添加到主授权网络。
答案 2 :(得分:0)
根据google docs(https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters),应该可以同时具有私有和公共端点,并且master_authorized_networks_config应该具有可以到达这些端点之一的网络。
如果将enable_private_endpoint设置为false意味着创建了专用终结点,但是它也创建了公共终结点,那么这是一个名字错误的变量,因为它实际上是在打开和关闭公共终结点,而不是在打开私有终结点。 。显然,如果要相信报告的行为,则指定private_cluster_config足以启用私有端点,并且该标志切换公共端点。
这当然是我的经验-在enable_private_endpoint为true时,在master_authorized_networks_config中指定我的本地ip地址导致集群创建失败。当我将其设置为false时,会得到两个端点,并且配置不会被拒绝。
答案 3 :(得分:0)
master_authorized_networks_config {
}
private_cluster_config {
enable_private_endpoint = true
enable_private_nodes = true
master_ipv4_cidr_block = "<cidr>"
}
应该创建private_end_point,并且不会抱怨Invalid master authorized networks
。您尝试过的方法是,将外部CIDR传递给白名单以访问公共端点,同时又希望它严格私有。