你好,我是新来的。尝试配置在GCP中的Kubernetes上运行的Wordpress服务。
我有一个variable.tf文件和一个main.tf文件
当我应用tf文件时,我会得到这个错误:
│ Error: Error, failed to create instance mysql: googleapi: Error 409: The Cloud SQL instance already exists., instanceAlreadyExists
│
│ with google_sql_database_instance.sqldb_1Instance,
│ on main.tf line 29, in resource "google_sql_database_instance" "sqldb_1Instance":
│ 29: resource "google_sql_database_instance" "sqldb_1Instance" {我试过“地形状态rm”。没起作用。我在tf文件上只有一个db实例,为什么会发生这种情况?我怎么才能修好它?
main.tf:
terraform {
required_providers {
kubernetes = {
source = "hashicorp/kubernetes"
version = ">= 2.0"
}
}
}
// Configure the Google Cloud provider
provider "google" {
credentials = file("gproject-360616-1decd194ddc5.json")
project = var.project_id
}
provider "helm" {
kubernetes {
}
}
//Creating First VPC Network
resource "google_compute_network" "vpc_network" {
name = "enuygun-vpc"
description = "VPC Network for WordPress"
project = var.project_id
}
//Configuring SQL Database instance
resource "google_sql_database_instance" "sqldb_1Instance" {
name = "mysql"
database_version = "MYSQL_5_6"
region = var.region
settings {
ip_configuration {
ipv4_enabled = true
authorized_networks {
name = "sqlnet"
value = "0.0.0.0/0"
}
}
}
}
//Creating SQL Database
resource "google_sql_database" "sql_db" {
name = var.database
instance = google_sql_database_instance.sqldb_1Instance.name
depends_on = [
google_sql_database_instance.sqldb_1Instance
]
}
//Creating SQL Database User
resource "google_sql_user" "dbUser" {
name = var.db_user
instance = google_sql_database_instance.sqldb_1Instance.name
password = var.db_user_pass
depends_on = [
google_sql_database_instance.sqldb_1Instance
]
}
//Creating Container Cluster
resource "google_container_cluster" "gke_cluster" {
name = "my-cluster"
description = "My GKE Cluster"
project = var.project_id
location = var.region
network = google_compute_network.vpc_network.name
remove_default_node_pool = true
initial_node_count = 1
}
//Creating Node Pool For Container Cluster
resource "google_container_node_pool" "nodepool" {
name = "my-node-pool"
project = var.project_id
location = var.region
cluster = google_container_cluster.gke_cluster.name
node_count = 1
node_config {
preemptible = true
machine_type = "e2-micro"
}
autoscaling {
min_node_count = 1
max_node_count = 3
}
depends_on = [
google_container_cluster.gke_cluster
]
}
//Configure Kubectl with Our GCP K8s Cluster
resource "null_resource" "configure_kubectl" {
provisioner "local-exec" {
command = "gcloud container clusters get-credentials ${google_container_cluster.gke_cluster.name} --region ${google_container_cluster.gke_cluster.location} --project ${google_container_cluster.gke_cluster.project}"
}
depends_on = [
google_container_cluster.gke_cluster
]
}
//WordPress Deployment
resource "kubernetes_deployment" "wp-dep" {
metadata {
name = "wp-dep"
labels = {
env = "Production"
}
}
spec {
replicas = 1
selector {
match_labels = {
pod = "wp"
env = "Production"
}
}
template {
metadata {
labels = {
pod = "wp"
env = "Production"
}
}
spec {
container {
image = "wordpress"
name = "wp-container"
env {
name = "WORDPRESS_DB_HOST"
value = "${google_sql_database_instance.sqldb_1Instance.ip_address.0.ip_address}"
}
env {
name = "WORDPRESS_DB_USER"
value = var.db_user
}
env {
name = "WORDPRESS_DB_PASSWORD"
value = var.db_user_pass
}
env{
name = "WORDPRESS_DB_NAME"
value = var.database
}
env{
name = "WORDPRESS_TABLE_PREFIX"
value = "wp_"
}
port {
container_port = 80
}
}
}
}
}
depends_on = [
google_container_cluster.gke_cluster,
google_container_node_pool.nodepool,
null_resource.configure_kubectl
]
}
//Creating LoadBalancer Service
resource "kubernetes_service" "wpService" {
metadata {
name = "wp-svc"
labels = {
env = "Production"
}
}
spec {
type = "LoadBalancer"
selector = {
pod = "${kubernetes_deployment.wp-dep.spec.0.selector.0.match_labels.pod}"
}
port {
name = "wp-port"
port = 80
}
}
depends_on = [
kubernetes_deployment.wp-dep,
]
}发布于 2022-09-03 15:50:54
好像是个窃听器,现在起作用了。
https://stackoverflow.com/questions/73592648
复制相似问题