使用容器用户ID运行Kubernetes / Openshift cronjob

问题描述

我正在使用Openshift部署django应用程序,该应用程序使用pyodbc连接到外部数据库。 目前,我想使用yaml文件在openshift中安排cronjob。创建cronjob没问题,但是在运行时抛出此错误: (“ IM004”,“ [IM004] [unixODBC] [驱动程序管理器] SQL_HANDLE_HENV上驱动程序的SQLAllocHandle失败(0)(SQLDriverConnect)”)

在运行容器时,由于Openshift覆盖uid,因此发生了此错误。我通过以下解决方法解决了该错误:https://github.com/VeerMuchandi/mssql-openshift-tools/blob/master/mssql-client/uid_entrypoint.sh

运行cronjob时,此错误再次弹出,这可能是由于相同的uid问题引起的。以下是我用于安排cronjob的yaml文件:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: samplecron
spec:
  securityContext:
    runAsUser: 1001
    runAsGroup: 0
  schedule: "*/5 * * * *"  
  concurrencyPolicy: "Forbid" 
  startingDeadlineSeconds: 60 
  suspend:            
  successfulJobsHistoryLimit: 3 
  failedJobsHistoryLimit: 3     
  jobTemplate:             
    spec:
      template:
        metadata:
          labels:          
            parent: "cronjobpi"
        spec:
          containers:
          - name: samplecron
            image: docker-registry.default.svc:5000/image-name
            volumeMounts:
            - mountPath: /path-to-mount
              name: "volume-name"
            command: [ "python3","/script.py" ]
            

          volumes:
          - name: "vol-name"
          restartPolicy: Never 

有人可以建议我如何在cronjob的yaml文件中提供相同用户名的信息,或者以其他任何方式解决此问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)