kubernetes初始化之后如何运行指定的命令?

识趣 发表于: 2021-12-16   最后更新时间: 2021-12-16 00:13:48   625 游览

我想在deployment初始化成功后运行特定命令:

这是我的 yaml 文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: auth
spec:
  replicas: 1
  template:
    metadata:
        labels:
          app: auth
    spec:
      containers:
        - name: auth
          image: {{my-service-image}}
          env:
          - name: NODE_ENV
            value: "docker-dev"
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
          ports:
            - containerPort: 3000

然而,我想在deployment成功初始化和pod运行之后(而不是之前)运行数据库迁移的命令。

我可以为每个pod手动操作(使用kubectl exec),但这太傻了。

发表于 2021-12-16

lifecycles(生命周期)可以实现:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: auth
spec:
  replicas: 1
  template:
    metadata:
        labels:
          app: auth
    spec:
      containers:
        - name: auth
          image: {{my-service-image}}
          env:
          - name: NODE_ENV
            value: "docker-dev"
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
          ports:
            - containerPort: 3000
          lifecycle:
            postStart:
              exec:
                command: ["/bin/sh", "-c", {{cmd}}]
你的答案

查看kubernetes相关的其他问题或提一个您自己的问题