我正在GCP中编写一个terraform文件,以便在GKE上运行一个无状态应用程序,下面是我试图进入terraform的步骤。
apiVersion: apps/v1
kind: Deployment
metadata:
name: mllp-adapter-deployment
spec:
replicas: 1
selector:
matchLabels:
app: mllp-adapter
template:
metadata:
labels:
app: mllp-adapter
spec:
containers:
- name: mllp-adapter
imagePullPolicy: Always
image: gcr.io/cloud-healthcare-containers/mllp-adapter
ports:
- containerPort: 2575
protocol: TCP
name: "port"
command:
- "/usr/mllp_adapter/mllp_adapter"
- "--port=2575"
- "--hl7_v2_project_id=PROJECT_ID"
- "--hl7_v2_location_id=LOCATION"
- "--hl7_v2_dataset_id=DATASET_ID"
- "--hl7_v2_store_id=HL7V2_STORE_ID"
- "--api_addr_prefix=https://healthcare.googleapis.com:443/v1"
- "--logtostderr"
- "--receiver_ip=0.0.0.0"apiVersion: v1
kind: Service
metadata:
name: mllp-adapter-service
annotations:
cloud.google.com/load-balancer-type: "Internal"
spec:
type: LoadBalancer
ports:
- name: port
port: 2575
targetPort: 2575
protocol: TCP
selector:
app: mllp-adapter我找到这个示例是为了创建一个自动引导公共集群,但是我不知道在哪里指定我的步骤4的YAML文件。
此外,我还找到了使用kubernetes提供程序将服务部署到创建的集群的另一个蓝图,我希望它解决了我的步骤5。
总的来说,我是terraform和GCP架构的新手,所有这些工作都是在文档之后完成的,不过,我现在正试图找到一种方法,将其部署到开发环境中进行测试,但它不在我的沙箱之外,应该是使用terraform部署的,我想我已经接近它了。
有人能告诉我下一步是什么,或者如何将这些YAML配置添加到我找到的.tf示例中吗?
我这样做对吗?
发布于 2022-07-13 04:18:37
您可以使用此脚本并进一步扩展它以部署YAML文件,其中包括:公共的
上面的TF脚本正在为YAML部署创建GKE自动引导集群,您可以使用K8s提供程序并使用它应用文件。
https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/deployment
完整示例:公共的
main.tf
locals {
cluster_type = "simple-autopilot-public"
network_name = "simple-autopilot-public-network"
subnet_name = "simple-autopilot-public-subnet"
master_auth_subnetwork = "simple-autopilot-public-master-subnet"
pods_range_name = "ip-range-pods-simple-autopilot-public"
svc_range_name = "ip-range-svc-simple-autopilot-public"
subnet_names = [for subnet_self_link in module.gcp-network.subnets_self_links : split("/", subnet_self_link)[length(split("/", subnet_self_link)) - 1]]
}
data "google_client_config" "default" {}
provider "kubernetes" {
host = "https://${module.gke.endpoint}"
token = data.google_client_config.default.access_token
cluster_ca_certificate = base64decode(module.gke.ca_certificate)
}
module "gke" {
source = "../../modules/beta-autopilot-public-cluster/"
project_id = var.project_id
name = "${local.cluster_type}-cluster"
regional = true
region = var.region
network = module.gcp-network.network_name
subnetwork = local.subnet_names[index(module.gcp-network.subnets_names, local.subnet_name)]
ip_range_pods = local.pods_range_name
ip_range_services = local.svc_range_name
release_channel = "REGULAR"
enable_vertical_pod_autoscaling = true
}另一个很好的例子,它使用YAML文件作为模板,并使用terraform应用它。:https://github.com/epiphone/gke-terraform-example/tree/master/terraform/dev
https://stackoverflow.com/questions/72960378
复制相似问题