如何在 Container Station 中调试和修复常见容器问题?
借助 Container Station 可以在 QNAP 设备上部署第三方应用程序和容器。用于创建这些容器的开源映像可能会带来部署问题。
QNAP 不提供对第三方映像的技术支持。请按以下步骤诊断并解决常见的容器相关问题。
检查容器配置
容器将继承源映像的所有属性。在部署之前,请扫描映像文件以识别安全漏洞、配置错误和后门威胁。
如果部署后容器出错,请分析容器日志进行诊断并解决问题。
检查映像信息
在部署容器之前,请检查映像前提条件并完成任何必需的步骤。
例如,使用 postgres
映像部署 PostgreSQL 容器需要设置 POSTGRES_PASSWORD
环境变量。如果没有此变量,容器将无法部署。
POSTGRES_PASSWORD
环境变量。分析 Container Station 事件日志
Container Station 将记录所有应用程序和容器活动。故障日志提供明确的错误消息,包括应用程序或容器名称、错误代码和错误详细信息。
- 打开 Container Station。
- 单击事件日志。
- 找到错误日志。
示例 1
在此示例中,事件日志记录了一个启动故障,因为指定端口已被其他服务占用,导致容器无法绑定到所需的网络接口。
示例 2
在此示例中,事件日志记录了一个启动故障,因为入口点命令配置错误,导致容器无法执行预期过程。
检查各个容器日志
分析各容器日志中的错误和警告消息。Container Station 将记录详细错误状态,例如缺失环境变量、命名格式无效、映像检索失败和初始化失败。
- 打开 Container Station。
- 单击容器。
- 选择一个容器以打开详细信息页面。
- 单击日志。
- 查看错误和警告消息。
示例 1
事件日志记录了一个启动故障,因为部署 MySQL 容器之前未设置 MYSQL_ROOT_PASSWORD
环境变量,导致其在初始化之后立即退出。
示例 2
事件日志记录了一个启动故障,因为 Rancher 容器是在未启用特权模式的情况下使用 rancher/rancher
映像部署的。如果没有 --privileged
标记,容器将无法正确启动。
确认映像兼容性
请确保映像与 QNAP 设备的处理器架构和操作系统兼容。映像版本或架构不正确将导致容器无法运行。
检查平台兼容性
请确认映像平台与 QNAP 设备的 CPU 架构匹配。如果从其他 QNAP 设备传输映像,请确保两台设备所使用的架构相同。
Docker
Docker 映像页面提供每个映像版本的受支持架构和操作系统列表。Docker 映像的一般兼容性指南如下:
linux/arm/v7
映像支持 32 位 ARM 架构。linux/arm64/v8
映像支持 64 位 ARM 架构。linux/amd64
映像支持 64 位 x86 架构。
LXD
有关兼容性详细信息,请访问 LXD 映像服务器。LXD 容器的一般架构兼容性指南如下:
armhf
容器支持 32 位 ARM 架构。arm64
容器支持 64 位 ARM 架构。amd64
容器支持 64 位 x86 架构。
识别容器不兼容性
不兼容的 Docker 容器可能会记录 exec format error
,表示架构不匹配。
部署不兼容的 LXD 容器时,Container Station 会在“事件日志”页面记录故障日志。
检查页面大小兼容性
QNAP 将系统页面大小从 4K 更新到 32K,以提高特定 32 位 ARM 设备的性能。此更改会限制容器访问内存资源,导致分段故障。在部署之前验证第三方容器兼容性。
系列 | 型号 |
---|---|
TS-x31P | TS-531P |
TS-x31P3 | TS-231P3、TS-431P3 |
TS-x31X | TS-231X、TS-431X、TS-531X、TS-831X、TS-431X2、TS-431X3 |
TS-x31KX | TS-431KX |
TS-x31XU | TS-431XU、TS-431XU-RP、TS-831XU、TS-831XU-RP、TS-1231XU、TS-1231XU-RP |
TS-x31XeU | TS-431XeU |
TS-x35 | TS-1635 |
检查 QNAP 系统配置
请确保已正确配置 QNAP 设备以执行容器部署和编排。
验证网络设置
- 登录到 QNAP 设备,然后打开网络与虚拟交换机。
- 选择高级模式。
- 转到网络 > 虚拟交换机。
- 找到容器网络所使用的网段。
- 转到控制台 > 系统 > 安全 > 允许/拒绝列表。注意如果设备上安装了 QuFirewall,请确保其已启用,然后打开 QuFirewall 并将所需网段添加到允许列表。
- 确保容器网段已添加到允许列表。重要QNAP 强烈建议将以下 IP 范围添加到允许列表:
10.0.3.0/24
、10.0.5.0/24
、10.0.7.0/24
、172.29.0.0/22
、172.30.0.0/22
。如果启用了 Kubernetes 服务,则还应添加10.42.0.0/24
(Kubernetes Pod 网络 CIDR)。
检查高级权限设置
- 转到控制台 > 权限 > 共享文件夹 > 高级权限。
- 禁用启用高级文件夹权限。
- 单击应用。
- 转到控制台 > 权限 > 配额,并检查用户配额设置。注意仅当启用了配额管理时才会应用配额设置。警告检查用户配额设置以确保没有不想要的配额限制。意外的配额设置可能会导致容器因存储限制而报告错误。
验证存储和网络配置
- 转到存储与快照总管 > 存储 > 存储/快照。
- 检查可用存储容量。注意如果状态非“就绪”,则检查磁盘状态中是否有存储错误。有关详细信息,请参见《QTS 用户指南》或《QuTS hero 用户指南》中的“磁盘状态”。
检查网络配置
执行以下步骤,以确保网络设置已正确配置:
- 转到网络与虚拟交换机 > 网络 > 接口,然后查看 DNS 和网关设置。
- 确保 DHCP 服务器可以使用虚拟交换机将 IP 地址分配给容器。有关详细信息,请参见《QTS 用户指南》或《QuTS hero 用户指南》中的 “虚拟交换机配置”。注意虚拟交换机配置中的不分配 IP 地址(用于特殊用途,例如建立外部网络或隔离网络)设置用于特定网络配置。如果不需要自定义网络设置,则建议禁用此设置。
但是,如果要设置外部或隔离网络,请启用它。请注意,此设置可能会影响容器的网络配置。有关详细信息,请参见《QTS 用户指南》或《QuTS hero 用户指南》中的“在高级模式下创建虚拟交换机”。 - 转到 Container Station > 首选项 > 网络设置,并确保容器网段与本地环境不冲突。重要Container Station 使用
10.0.3.0/24
、10.0.5.0/24
和10.0.7.0/24
作为默认 IP 网络。
参考在线帮助和文档
部分映像是开源的,允许用户修改源代码。如果以上故障排除方法都不能解决问题,则可能是源映像不兼容或已损坏。在此情况下,QNAP 建议访问映像网站查找更多信息,或使用同一类别的其他映像。
如果映像来自 Docker 存储库,则可以在映像的概览页面上找到更多信息。例如,Docker 中的 Ubuntu 映像提供快速参考链接以便您获得更多信息。