将 docker-compose 转换为 Helm Chart?

2024-01-11

我有一个 docker-compose 文件,其中包含我正在使用的安全工具的 2 个图像。我的挑战是将其转换为由deployment.yaml和service.yaml组成的helm图表。 docker-compose 看起来像这样 -

  version: '3'

  services:

  nginx:
    ports:
      - "80:80"
      - "443:443"
    environment:
      - NG_SERVER_NAME=192.168.1.228
    links:
      - tomcat8
    image: continuumsecurity/iriusrisk-prod:nginx-prod-ssl
    container_name: iriusrisk-nginx
    volumes:
      - "./cert.pem:/etc/nginx/ssl/star_iriusrisk_com.crt"
      - "./key.pem:/etc/nginx/ssl/star_iriusrisk_com.key"

  tomcat8:
    environment:
      - IRIUS_DB_URL=jdbc\:postgresql\://192.168.1.228\:5432/iriusprod?user\=iriusprod&password\=alongandcomplexpassword2523
      - IRIUS_EDITION=saas
      - IRIUS_EXT_URL=http\://192.168.1.228
      - grails_env=production
    image: continuumsecurity/iriusrisk-prod:tomcat8-2
    container_name: iriusrisk-tomcat8

还有一个正在运行的 postgres 服务器,我可以将其转换为 helm 图表并将其暴露给端口 5432 上的我的 IP (192.168.1.228)。但是对于相互链接的 iriusrisk 和 tomcat 映像,我无法让它弄清楚。这是我对两者的部署文件的解决方案。

部署-tomcat.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat
  labels:
    app: {{ .Values.tomcat.app.name }}
spec:
  replicas: {{ .Values.tomcat.replicas }}
  selector:
    matchLabels:
      app: {{ .Values.tomcat.app.name }}
  template:
    metadata:
      labels:
        app: {{ .Values.tomcat.app.name }}
    spec:
      {{- if .Values.tomcat.imagePullSecretsName }}
      imagePullSecrets:
      - name: {{ .Values.tomcat.imagePullSecretsName }}
      {{- end}}
      restartPolicy: Always
      serviceAccountName: {{ .Values.tomcat.serviceAccountName }}

      containers:
      - name: {{ .Values.tomcat.app.name }}
        image: "{{ .Values.tomcat.ImageName }}:{{ .Values.tomcat.ImageTag }}"
        container_name: iriusrisk-tomcat8
        imagePullPolicy: {{ .Values.tomcat.ImagePullPolicy }}
        ports:
        - containerPort: {{ .Values.tomcat.port }}
        env:
          - name: IRIUS_DB_URL
            value: jdbc\:postgresql\://192.168.1.228\:5432/iriusprod?user\=iriusprod&password\=alongandcomplexpassword2523
          - name: IRIUS_EDITION
            value: saas
          - name: IRIUS_EXT_URL
            value: http\://192.168.1.228
          - name: grails_env
            value: production

部署-iriusrisk.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: iriusrisk
  labels:
    app: {{ .Values.iriusrisk.app.name }}
spec:
  replicas: {{ .Values.iriusrisk.replicas }}
  selector:
    matchLabels:
      app: {{ .Values.iriusrisk.app.name }}
  template:
    metadata:
      labels:
        app: {{ .Values.iriusrisk.app.name }}
    spec:
      {{- if .Values.iriusrisk.imagePullSecretsName }}
      imagePullSecrets:
      - name: {{ .Values.iriusrisk.imagePullSecretsName }}
      {{- end}}
      restartPolicy: Always
      serviceAccountName: {{ .Values.iriusrisk.serviceAccountName }}

      containers:
      - name: {{ .Values.iriusrisk.app.name }}
        image: "{{ .Values.iriusrisk.ImageName }}:{{ .Values.iriusrisk.ImageTag }}"
        container_name: iriusrisk-nginx
        imagePullPolicy: {{ .Values.iriusrisk.ImagePullPolicy }}
        ports:
        - containerPort: {{ .Values.iriusrisk.port }}
        env:
          - name: NG_SERVER_NAME
            value: "192.168.1.228"
        volumes: 
          - "./cert.pem:/etc/nginx/ssl/star_iriusrisk_com.crt"
          - "./key.pem:/etc/nginx/ssl/star_iriusrisk_com.key"

我应该如何解决这个问题?我已经研究过将 Pod 彼此“链接”,但我尝试过的解决方案都不起作用。我对此有点陌生,因此我对如何公开 Pod 并相互连接仍然有点困惑。


The kompose https://kompose.io/该工具现在包含从 docker-compose.yml 文件转换为 Helm 图表的功能:

kompose convert -c

查看组合替代转换 https://kompose.io/user-guide/#alternative-conversions文档(也here https://github.com/kubernetes/kompose/blob/master/docs/user-guide.md#alternative-conversions).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 docker-compose 转换为 Helm Chart? 的相关文章

随机推荐

  • assembleDebug.dependsOn 不起作用

    首先 这不是这个的重复 错误 在项目 app 上找不到属性 assembleDebug https stackoverflow com q 38547400 770467 问题 自从更新到Android Studio 2 2 gradle插
  • 在 SQL Server 中编写架构脚本

    我想在 SQL Server 数据库中创建一个架构 数据库中还有一堆其他脚本 我可以编写现有架构的脚本吗 我的意思是 假设我们有一张桌子 我们可以 编写一个脚本CREATE TABLE脚本 我们可以编写一个创建架构的脚本吗 谢谢你们的期待
  • 良好的Java进程控制库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 进程控制是出了名的糟糕 主要是由于 Java VM JDK 类 例如 java lang P
  • 在 bash 脚本中使用 find 命令

    我刚刚开始使用 bash 脚本 并且需要对多种文件类型使用 find 命令 list find home user Desktop name pdf 此代码适用于 pdf 类型 但我想同时搜索多种文件类型 例如 txt 或 bmp 您有什么
  • 在无效 Syskeypress 上禁用 MessageBeep

    简单的问题 如果用户按 Alt Whatever 并且没有与之关联的热键 通常程序会产生 MessageBeep 我可以调用哪些 API 函数来避免这种情况 处理 WM KEYDOWN WM KEYUP WM SYSKEYDOWN 和 WM
  • Symfony2 和 Angular。用户认证

    我正在开发一个涉及 Symfony2 和 AngularJs 的 Web 应用程序 我对网站中用户身份验证的正确方法有疑问 我在 API REST 在 Symfony 中内置 中构建了一个函数 该函数通过请求中传递的参数对用户进行身份验证
  • 如何使用jQuery调用c# webservice获取返回值

    我想使用 jQuery 调用名为 c ashx 的 C Web 服务 该服务检查该用户名是否有效并以字符串形式返回错误消息 如果 c webservice 的返回值是字符串值 我应该为 data 和 content type 添加什么 jQ
  • OSX NSUserDefaults 不工作

    这段代码在我的应用程序中总是给我 否 它确实可以在我复制它的任何其他项目中工作 所以我的 standardUserDefaults 一定搞砸了 但我绝对不知道这是如何发生的以及如何解决它 NSUserDefaults defaults NS
  • org.openqa.selenium.WebDriverException:尚未定义命令或响应编解码器。无法继续

    我正在使用 appium 来自动化移动应用程序 但是当我尝试在应用程序上执行某些操作 即单击登录按钮 时 在模拟器或移动设备上启动应用程序后 会发生上述异常 有人知道它出了什么问题吗 gt 错误截图 https i stack imgur
  • 当一个方法被多次调用时,@RequestParam变量返回一组逗号分隔的值

    我刚刚注意到 当连续多次调用控制器方法时 用于检查 POST 参数 例如用户名或 id 的 RequestParam 变量的行为相当奇怪 它不返回当前参数值 例如 Jason Michael John 而是返回之前调用该方法所用的所有参数值
  • 禁用时省略 editText 的内容

    我有一个布局 其中 EditText 由用户填充 然后它被禁用以充当标准 TextView 问题是 椭圆形永远不适用于此 EditText 我希望它在文本太大而无法完全显示时在文本末尾显示 但我找不到任何方法让它起作用 而且我不知道为什么它
  • Cassandra 和非结构化数据

    我对 NoSQL 还比较陌生 但我已经对关系数据库进行了相当多的尝试 我们正在评估 Cassandra 在数据模型可能需要相当积极地发展的环境中的使用情况 我看到它在多个地方写到 Cassandra 可以存储 结构化 半结构化和非结构化 数
  • 两个黑莓模拟器之间的短信

    如何编写程序以使用 BlackBerry JDE 在两个 BlackBerry 模拟器之间发送和接收 SMS 您需要使用以下参数从命令行启动模拟器 sms source port uint sms destination port uint
  • iOS:UIBezierPath 和 CAShapeLayer fillRule

    我都用过UIBezierPath and CAShapeLayer前 但几乎每次都会结合用内部颜色填充路径中包含的对象 但我想这次填充包含的对象外部的颜色UIBezierPath 我刚刚编写并运行了以下简单的代码 试图让自己熟悉fillRu
  • 哈希值和加盐值

    我正在开发一个小型网络应用程序 可以在内部对用户进行身份验证 一旦用户通过身份验证 我的 Web 应用程序就会将一些信息 例如用户 ID 和人员姓名 传递给第三方 Web 应用程序 第三方开发人员建议我们对这些值进行哈希和加盐 原谅我的无知
  • 仅当窗口尚不存在时 JavaScript window.open

    我有一个应用程序 单击链接后会打开一个新窗口 这会生成一个包含 Java 小程序的页面 我遇到的问题是 单击同一链接会重新加载页面 从而重置 Java 应用程序 有什么办法可以捕获这个吗 可以接受的两种解决方案是 允许从单击处理程序打开多个
  • 为什么运行时会出现错误(使用“clojure.contrib.repl-utils”)?

    我发现我可以通过阅读 Programming Clojure 一书第 20 页 使用 Chris Houser 的 repl utils 库 clojure contrib repl utils source 或 show 来深入了解 Ja
  • gem yank 失败“版本不存在”

    我试图在 ruby gems com 上替换我的 gem 的错误版本 但猛拉失败 你可以看到https rubygems org gems v2gpti https rubygems org gems v2gpti该 gem 在 v0 2
  • 从共享库使用时,imbue/facet 会被忽略,具体取决于 Android 下的动态加载顺序

    我正在 Android 上部署一个 C 应用程序 它使用boost date time 它有很多库 一些在编译时链接 共享库 其他一些是插件 在运行时动态加载dlopen 在某些库中 设置boost posix time time face
  • 将 docker-compose 转换为 Helm Chart?

    我有一个 docker compose 文件 其中包含我正在使用的安全工具的 2 个图像 我的挑战是将其转换为由deployment yaml和service yaml组成的helm图表 docker compose 看起来像这样 vers