terraform - 使用 Terraform 设置 Istio,而不是使用 Helm
问题描述
因此,作为背景,我正在尝试在 kubernetes 集群中部署一个容器化的 webapp,该集群由 istio ft kiali 保护和监控。由于我不想手动配置所有内容,因此我使用 Terraform 来部署和更新集群内的任何配置(例如部署服务和 Pod)。
他们的好处是 Terraform 自动配置公开应用程序所需的服务,这避免了很多麻烦,特别是因为这是一个大型部署的试点项目。
现在的问题是 Terraform 不包含 Istio 作为提供者。有一种方法可以通过在 Terraform 中编写配置来安装和配置它,它使用配置 Istio 的 Helm,但 Helm 使用的是 Helm Tiller,这是一个执行给定任务的权限提升的 Pod。由于大规模的安全问题,我不希望在我的集群中使用权限提升的 pod。
现在的问题是:是否有人尝试或设法成功地配置 Istio 服务(如 VirtualService)以通过带有 Terraform 配置文件的 istio-ingressgateway 公开 web 应用程序?我用谷歌搜索了它,但对于这两者的结合几乎看不到。
解决方案
Terraform 现在有一个官方的 Helm 提供者https://registry.terraform.io/providers/hashicorp/helm/latest/docs
您可以使用该提供程序并使用 helm https://istio.io/latest/docs/setup/install/helm/安装 Istio
您可以使用 Kubernetes 提供程序来配置 Istio 对象。
参考https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs和https://www.hashicorp.com/blog/deploy-any-resource-with-the-new-kubernetes-provider-for -hashicorp-terraform
PS:通过 Pulumi 进行操作可能更容易结帐https://www.pulumi.com/docs/get-started/kubernetes/
推荐阅读
- javascript - 以html形式输入日期后如何修复400错误请求错误?
- python - Python:跨模块使用字典
- c# - 如何获取当前的 PowerPoint 幻灯片编号
- .htaccess - 如何在.htaccess 中阻止对网站主页的访问?
- python - Jupyter Notebooks:如何将笔记本导出为 HTML,包括 splitcell 扩展?
- python - 检查用户输入的单词是否可以从给定的字母列表中生成?
- networking - 可从其他 PC 访问的 Docker 桌面 Linux 容器
- python - 将包含 nan 的字符串转换为 numpy 浮点数组
- c++ - 如何使用运行时大小参数构造 boost spsc_queue 以使用共享内存在两个进程之间交换 cv::Mat 对象?
- javascript - 如何使用 jQuery 切换加号和减号图标?