1

我遵循了有关如何在 Kubernetes 中将Microsoft SqlServer 部署为 Azure Kubernetes 服务上的容器的官方文档。我注意到了几件事,这与以下内容有关:

Kubernetes 中的两个容器

当我执行时kubectl get pods显示 2 个 mssql 实例,其中一个Running和一个Pending. 即使我删除了所有 pod kubectl delete pods -l app=mssql,Kubernetes 也会重新创建两个 pod。

在此处输入图像描述

偶尔会下降

当我在某些时候使用我的应用程序时,我开始收到错误:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:TCP 提供者,错误:40 - 无法打开与 SQL Server 的连接)

与服务器成功建立连接,但在登录前握手期间发生错误。(提供者:TCP 提供者,错误:35 - 捕获到内部异常)---> System.IO.IOException:无法从传输连接中读取数据:连接被对等方重置。

除了添加容器限制之外,我没有做任何与官方文档不同的事情。我相信容器甚至没有达到这些限制。我让 Kubernetes 在 2 个 4GB 的虚拟机上运行,​​当我添加 SqlServer 时,我添加了第三个 4GB 虚拟机,这样 Kubernetes 就有足够的 CPU 和内存来使用。

resources:
  requests:
    cpu: 300m
    memory: 2.5Gi
  limits:
    cpu: 400m
    memory: 3Gi

登录失败

最后但并非最不重要的一点是,如果我kubectl logs mssql-xyz有时运行,我会在日志中看到以下内容:

2020-10-28 13:24:16.83 用户 'sa' 的登录登录失败。原因:密码与提供的登录名不匹配。[客户端:10.240.0.4] 2020-10-28 13:24:18.09 登录错误:18456,严重性:14,状态:8。

显然,我的应用程序中的密码是正确的。可能和其他错误有关,我不知道...


对这一切有什么想法吗?我怎样才能使它工作稳定而没有任何错误?

4

0 回答 0