Openshift平台上的SQL Server连接

时间:2018-02-02 17:41:45

标签: sql-server kubernetes openshift openshift-enterprise redhat-containers

我在一个RHEL映像上的Openshift Container平台上部署了一个SQL Server。可以使用容器本身的SQLCMD命令访问服务器。但是当我尝试从容器/ pod外部访问同一个服务器时,我得到一个非常奇怪的错误,如下所示:

Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Driver's SQLAllocHandle on SQL_HANDLE_HENV failed.

我正在从仅包含客户端工具的容器中尝试此操作。我也试图创建一个DSN。我仍然得到同样的错误。已部署Kubernetes服务,并指向端口1433.

我错过了什么?请指教。谢谢

1 个答案:

答案 0 :(得分:0)

确定。事实证明,默认情况下,在OCP中启动的容器不会以已知用户身份运行。这会导致此错误。通过创建新用户,在调用import redis import os import logging log = logging.getLogger() log.setLevel(logging.DEBUG) def test_redis(event, context): redis_endpoint = None if "REDIS" in os.environ: redis_endpoint = os.environ["REDIS"] log.debug("redis: " + redis_endpoint) else: log.debug("cannot read REDIS config environment variable") return { 'statusCode': 500 } redis_conn = None try: redis_conn = redis.StrictRedis(host=redis_endpoint, port=6379, db=0) redis_conn.set("foo", "boo") redis_conn.get("foo") except: log.debug("failed to connect to redis") return { 'statusCode': 500 } finally: del redis_conn return { 'statusCode': 200 } 之前,可以解决此问题。