docker-compose转为k8s配置文件

本文介绍了如何将Docker Compose配置转换为Kubernetes配置,涉及挂载Volume、设置环境变量、指定命令及处理服务依赖。在K8s中,Volume通过volumeMounts和hostPath实现,环境变量通过env字段定义,命令使用command参数设置,而服务依赖则需要通过服务自身设计来解决,保持K8s中的Pod独立无状态。
摘要由CSDN通过智能技术生成

最近搞k8s,需要把docker-compose配置转为k8s的配置文件,涉及到的地方主要在下面。

挂载volume

docker-compose里的写法:

service:
  relay:
    image: getsentry/relay:22.6.0
    volumes:
      - "./geoip:/sentry"
      - type: bind
        read_only: true
        source: ./relay
        target: /work/.relay
      - type: bind
        read_only: true
        source: ./geoip
        target: /geoip

k8s通过volume名称对应

spec:
  containers:
    - name: sentry-relay
      image: getsentry/relay:22.6.0
      volumeMounts:
        - mountPath: /work/.relay
          name: v-relay-config
        - mountPath: /geoip
          name: v-relay-geoip
  volumes:
    - name: v-relay-config
      hostPath:
        path: ./relay
        type: Directory
    - name: v-relay-geoip
      hostPath:
        path: ./geoip
        type: Directory

声明环境变量

docker-compose的写法

snuba:
  image: "$SNUBA_IMAGE"
  environment:
    SNUBA_SETTINGS: distributed
    CLICKHOUSE_HOST: 172.17.183.16

Pod

spec:
  containers:
    - name: sentry-snuba-api
      image: getsentry/snuba:22.6.0
      env:
        - name: SNUBA_SETTINGS
          value: "distributed"
        - name: CLICKHOUSE_HOST
          value: "172.17.183.16"

执行入口命令

更多请参考文档:https://kubernetes.io/zh-cn/docs/tasks/inject-data-application/define-command-argument-container/

docker-compose的写法

  snuba-consumer:
    <<: *snuba_defaults
    command: consumer --storage errors --auto-offset-reset=latest --max-batch-time-ms 750

k8s

spec:
  containers:
    - name: sentry-snuba-consumer
      image: getsentry/snuba:22.6.0
      command: ["consumer", "--storage", "errors", "--auto-offset-reset=latest", "--max-batch-time-ms", "750"]

depend on

docker-compose里经常会有一个服务依赖于另一个服务的情况:

  nginx:
    image: "nginx:1.21.6-alpine"
    depends_on:
      - web
      - relay

然而在k8s里这种情况并不好处理,原则上这不关k8s的事,每个pod应该是互不干扰的无状态服务,所以应该交给服务自身去考虑。

更多补充…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值