因此,作为背景,我尝试在 kubernetes 集群内部署一个容器化的 Web 应用程序,该集群由 istio ft kiali 进行保护和监控。由于我不想手动配置所有内容,因此我使用 Terraform 来部署和更新集群内的任何配置(例如部署服务和 Pod)。
他们的好处是 Terraform 会自动配置公开应用程序所需的服务,这避免了很多麻烦,特别是因为这是一个针对此类更大规模部署的试点项目。
现在的问题是 Terraform 不包含 Istio 作为提供者。有一种方法可以通过在 Terraform 中编写配置来安装和配置它,它使用 Helm,它配置 Istio,但 Helm 使用 Helm Tiller,这是一个执行给定任务的权限提升的 pod。由于大规模的安全问题,我不希望集群内有权限提升的 Pod。
现在的问题是:是否有人尝试或设法成功配置 Istio 服务(例如 VirtualService),以使用 Terraform 配置文件通过 istio-ingressgateway 公开 Web 应用程序?我用谷歌搜索了一下,但几乎没有看到这两者的结合。
我目前正在使用 Docker 和 K8s 部署 Java 应用程序。由于我使用的是 Raspberry Pi Kubernetes 集群,因此我想生成两个映像,一个用于 x86 平台,另一个用于 arm32v7(用于在 Raspberry 集群上进行测试)。目标是使用一个 Dockerfile 生成两个不同标记的 docker 镜像,并将生成的镜像推送到 Docker Hub。我使用以下 Dockerfile:
FROM openjdk:8-alpine as x86
RUN mkdir -p /usr/src/app
COPY project/generated/distributions/executable/launch.jar /usr/src/app
WORKDIR /usr/src/app
CMD java -jar launch.jar
FROM arm32v7/adoptopenjdk:8-jre-hotspot-bionic as arm32
RUN mkdir -p /usr/src/app
COPY project/generated/distributions/executable/launch.jar /usr/src/app
WORKDIR /usr/src/app
CMD java -jar launch.jar
Run Code Online (Sandbox Code Playgroud)
我的docker-compose.yml
看起来像这样:
version: '3.7'
services:
x86:
build:
context: .
dockerfile: Dockerfile
target: project:x86_64
arm32:
build:
context: .
dockerfile: Dockerfile
target: project:arm32
Run Code Online (Sandbox Code Playgroud)
使用 …