将 docker-compose 转换为舵图?

Pra*_*tia 10 docker docker-compose kubernetes-helm kubernetes-pod helmfile

我有一个 docker-compose 文件,其中包含我正在使用的安全工具的 2 个图像。我的挑战是将其转换为由 deployment.yaml 和 service.yaml 组成的 helm chart。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
Run Code Online (Sandbox Code Playgroud)

也有一个 postgres 服务器在运行,我可以将其转换为舵图并将其公开给我的 ip (192.168.1.228) 端口 5432。但是对于相互链接的 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
Run Code Online (Sandbox Code Playgroud)

部署-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"
Run Code Online (Sandbox Code Playgroud)

我应该如何解决这个问题?我已经看过彼此“链接”豆荚,但我尝试过的解决方案都没有奏效。我对此有点陌生,因此我仍然对如何公开 pod 并相互连接感到困惑。

Jef*_*eff 20

kompose工具现在包括转换到从搬运工,compose.yml文件头盔图表的能力:

kompose convert -c

查看 kompose替代转换文档。


Shu*_*rma 3

据我目前所知,还没有开发或发布这样的工具来将 helm-chart 转换为 docker-compose 文件。但从 Kubernetes 资源清单的转换可以通过使用kompose ( https://kompose.iodocker-compose )等工具来完成。