如何在Kubernetes Pod中执行SQL脚本文件?

达雅

我想使用SQL脚本文件在Kubernetes容器中创建一个SQL Server数据库。我有创建数据库并插入主数据的SQL脚本。由于我是Kubernetes的新手,所以我很难在pod中运行SQL脚本。我知道可以在单独的kubectl exec命令中手动执行SQL脚本,但是我希望可以在pod deploy yml文件本身中自动执行该脚本。

有没有办法将脚本文件安装到pod的卷中并在启动容器后运行它?

托马斯

您可以hooks在这种情况下使用kubernetes 其中有两个:PostStartPreStop

PostStart创建容器后立即执行。PreStop另一方面,在终止容器之前立即调用该方法。

您可以执行两种类型的挂钩处理程序:ExecHTTP

Exec-在容器的cgroup和名称空间内执行特定命令,例如pre-stop.sh。命令消耗的资源计入容器。HTTP-针对容器上的特定端点执行HTTP请求。

PostStart是这里要使用的一个,但是请注意,挂钩与主进程并行运行。它不等待主要进程完全启动。在挂钩完成之前,容器将保持等待状态。

您可以为此使用一些解决方法,并sleep在脚本中添加命令,以使它稍等一些时间来创建主容器。您的脚本文件可以存储在容器映像中,也可以使用挂载到与pod共享的卷中ConfigMap这是一些示例,说明了如何做到这一点:

kind: ConfigMap
apiVersion: v1
metadata:
  namespace: <your-namespace> 
  name: poststarthook
data:
  poststart.sh: |
     #!/bin/bash
     echo "It`s done"

确保您的脚本不超过的1mb限制ConfigMap

定义后,configMap您将使用挂载它volumes

spec:
      containers:
      - image: <your-image>
        name: example-container
        volumeMounts:
          - mountPath: /opt/poststart.sh
            subPath: poststart.sh
            name: hookvolume
      volumes:
      - name: hookvolume
        configMap:
          name: poststarthook
          defaultMode: 0755 #please remember to add proper (executable) permissions

然后您可以postStart在规范中定义

spec:
  containers:
  - name: example-container
    image: <your-image> 
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", /opt/poststart.sh ]

您可以在kubernetes文档本文中阅读有关钩子的更多信息让我知道是否有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Kubernetes中的Pod中登录

来自分类Dev

如何在Kubernetes中模拟Pod故障

来自分类Dev

如何在 kubernetes 中执行参数?

来自分类Dev

当通过`r BATCH脚本文件`调用时,如何在R中获得当前执行的脚本的名称

来自分类Dev

如何在Kubernetes Pod之间共享存储?

来自分类Dev

如何在Kubernetes中的Alertmanager Pod中安装curl

来自分类Dev

Kubernetes从脚本阻止Pod在吊舱中执行

来自分类Dev

如何在Kubernetes中更改运行Pod的限制?

来自分类Dev

如何在Pod定义中获取Kubernetes服务IP

来自分类Dev

如何获得一个Perl脚本来执行文本文件中的命令?

来自分类Dev

如何获得一个Perl脚本来执行文本文件中的命令?

来自分类Dev

如何通过Windows中的构建脚本文件执行Maven生命周期阶段

来自分类Dev

如何在Hive中编写脚本文件?

来自分类Dev

如何在bash脚本文件中否定模式匹配?

来自分类Dev

如何在Vue中包含本地脚本文件

来自分类Dev

如何在文本文件中执行命令?

来自分类Dev

如何在Kubernetes中启用扩展API?

来自分类Dev

如何在kubernetes中重启主节点

来自分类Dev

如何在Kubernetes中禁用runasNonRoot

来自分类Dev

如何在 kubernetes 中卸载分区

来自分类Dev

如何在 Kubernetes 中定义网络

来自分类Dev

如何在pymssql中执行.sql文件

来自分类Dev

如何制作不带.bashrc的可执行脚本文件

来自分类Dev

如何从.sql脚本文件中获取postgres中自动增量列的值?

来自分类Dev

在Pod中执行bash命令,该Pod在Kubernetes中的另一个脚本中运行python脚本

来自分类Dev

如何从Perl脚本执行PL SQL文件

来自分类Dev

如何用实际的随机Guid替换sql脚本文件中的NEWID()?

来自分类Dev

如何将 SQL 脚本文件导出到 Excel 列中

来自分类Dev

如何在SQL脚本中执行减法功能

Related 相关文章

  1. 1

    如何在Kubernetes中的Pod中登录

  2. 2

    如何在Kubernetes中模拟Pod故障

  3. 3

    如何在 kubernetes 中执行参数?

  4. 4

    当通过`r BATCH脚本文件`调用时,如何在R中获得当前执行的脚本的名称

  5. 5

    如何在Kubernetes Pod之间共享存储?

  6. 6

    如何在Kubernetes中的Alertmanager Pod中安装curl

  7. 7

    Kubernetes从脚本阻止Pod在吊舱中执行

  8. 8

    如何在Kubernetes中更改运行Pod的限制?

  9. 9

    如何在Pod定义中获取Kubernetes服务IP

  10. 10

    如何获得一个Perl脚本来执行文本文件中的命令?

  11. 11

    如何获得一个Perl脚本来执行文本文件中的命令?

  12. 12

    如何通过Windows中的构建脚本文件执行Maven生命周期阶段

  13. 13

    如何在Hive中编写脚本文件?

  14. 14

    如何在bash脚本文件中否定模式匹配?

  15. 15

    如何在Vue中包含本地脚本文件

  16. 16

    如何在文本文件中执行命令?

  17. 17

    如何在Kubernetes中启用扩展API?

  18. 18

    如何在kubernetes中重启主节点

  19. 19

    如何在Kubernetes中禁用runasNonRoot

  20. 20

    如何在 kubernetes 中卸载分区

  21. 21

    如何在 Kubernetes 中定义网络

  22. 22

    如何在pymssql中执行.sql文件

  23. 23

    如何制作不带.bashrc的可执行脚本文件

  24. 24

    如何从.sql脚本文件中获取postgres中自动增量列的值?

  25. 25

    在Pod中执行bash命令,该Pod在Kubernetes中的另一个脚本中运行python脚本

  26. 26

    如何从Perl脚本执行PL SQL文件

  27. 27

    如何用实际的随机Guid替换sql脚本文件中的NEWID()?

  28. 28

    如何将 SQL 脚本文件导出到 Excel 列中

  29. 29

    如何在SQL脚本中执行减法功能

热门标签

归档