如何在 terraform 中使用 nginx 入口为 kubernetes 创建路由 - scaleway

问题描述

我有一个带有集群和两个池(节点)的 kubernetes 设置,我还为带有 h​​elm 的 kubernetes 设置了(Nginx)入口服务器。所有这些都是用 terraform 写成的。我正在努力解决的是如何配置入口服务器以根据 url 路径路由到我的 kubernetes 池/节点。

例如,我希望 [url]/api 转到我的 scaleway_k8s_pool.api,而 [url]/auth 转到我的 scaleway_k8s_pool.auth

这是我的地形代码

provider "scaleway" {
  zone            = "fr-par-1"
  region          = "fr-par"
}

resource "scaleway_registry_namespace" "main" {
  name        = "main_container_registry"
  description = "Main container registry"
  is_public   = false
}

resource "scaleway_k8s_cluster" "main" {
  name             = "main"
  description      = "The main cluster"
  version          = "1.20.5"
  cni              = "calico"
  tags             = ["i'm an awsome tag"]

  autoscaler_config {
    disable_scale_down              = false
    scale_down_delay_after_add      = "5m"
    estimator                       = "binpacking"
    expander                        = "random"
    ignore_daemonsets_utilization   = true
    balance_similar_node_groups     = true
    expendable_pods_priority_cutoff = -5
  }
}

resource "scaleway_k8s_pool" "api" {
  cluster_id  = scaleway_k8s_cluster.main.id
  name        = "api"
  node_type   = "DEV1-M"
  size        = 1
  autoscaling = true
  autohealing = true
  min_size    = 1
  max_size    = 5
}

resource "scaleway_k8s_pool" "auth" {
  cluster_id  = scaleway_k8s_cluster.main.id
  name        = "auth"
  node_type   = "DEV1-M"
  size        = 1
  autoscaling = true
  autohealing = true
  min_size    = 1
  max_size    = 5
}

resource "null_resource" "kubeconfig" {
  depends_on = [scaleway_k8s_pool.api,scaleway_k8s_pool.auth] # at least one pool here
  triggers = {
    host                   = scaleway_k8s_cluster.main.kubeconfig[0].host
    token                  = scaleway_k8s_cluster.main.kubeconfig[0].token
    cluster_ca_certificate = scaleway_k8s_cluster.main.kubeconfig[0].cluster_ca_certificate
  }
}

output "cluster_url" {
  value = scaleway_k8s_cluster.main.apiserver_url
}

provider "helm" {
  kubernetes {
    host  = null_resource.kubeconfig.triggers.host
    token = null_resource.kubeconfig.triggers.token
    cluster_ca_certificate = base64decode(
    null_resource.kubeconfig.triggers.cluster_ca_certificate
    )
  }
}

resource "helm_release" "ingress" {
  name      = "ingress"
  chart     = "ingress-Nginx"
  repository = "https://kubernetes.github.io/ingress-Nginx"
  namespace = "kube-system"
}

我将如何配置 Nginx 入口服务器以路由到我的 kubernetes 池?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)