我已经创建了一个 vpc-native 集群,并尝试从集群内部的 pod 连接到具有私有 IP 的 postgres SQL 实例。
我正在使用基本的 telnet 5432 命令进行测试。
当我从位于同一 VPC 中的 GCE 实例尝试连接时,连接工作正常。GCP 中的所有连接测试都为我打开了绿灯,因此这似乎是 k8s 问题。
这是我的集群:
gcloud container clusters create alex-test \
--network=factory-vpc \
--region=europe-west1 \
--enable-ip-alias \
--subnetwork=europe-west1-factory-subnet \
--cluster-ipv4-cidr="/16" \
--services-ipv4-cidr="/20"
以下是我测试连通性的方法:
kubectl run -it --rm --restart=Never busybox --image=gcr.io/google-containers/busybox sh
telnet <private ip> 5432
这是我在 terraform 中的网络配置:
resource "google_compute_network" "factory" {
name = "factory-vpc"
auto_create_subnetworks = false
depends_on = [google_project_service.compute]
}
resource "google_compute_subnetwork" "factory_subnet" {
name = "${var.region}-factory-subnet"
ip_cidr_range = "10.0.0.0/16"
region = var.region
network = google_compute_network.factory.self_link
private_ip_google_access = true
secondary_ip_range {
ip_cidr_range = "10.2.0.0/16"
range_name = "pods"
}
secondary_ip_range {
ip_cidr_range = "10.3.0.0/16"
range_name = "services"
}
}
resource "google_compute_global_address" "gitlab_google_private_peering" {
provider = google-beta
name = "gitlab-gcp-private"
address_type = "INTERNAL"
purpose = "VPC_PEERING"
network = google_compute_network.factory.self_link
prefix_length = 16
}
resource "google_service_networking_connection" "gitlab_google_private_peering" {
provider = google-beta
network = google_compute_network.factory.self_link
service = "servicenetworking.googleapis.com"
reserved_peering_ranges = [google_compute_global_address.gitlab_google_private_peering.name]
}
我已经检查了以下文档和文章,但没有任何帮助:
任何帮助是极大的赞赏 !