(已弃用)容器服务常见问题解答

警告

Azure 容器服务 (ACS) 正在被弃用。 将不会向 ACS 添加任何新特性或新功能。 所有 API、门户体验、CLI 命令和文档均已标记为“已弃用”。

有关详细信息,请参阅 Azure.com 上的 Azure 容器服务弃用声明

我们建议你部署以下 Azure 市场解决方案之一:

如果想要使用 Kubernetes,请参阅 Azure Kubernetes 服务

协调器

在 Azure 容器服务上支持哪些容器协调器? 

支持开源 DC/OS、Docker Swarm 和 Kubernetes。 有关详细信息,请参阅概述。  

是否支持 Docker Swarm 模式? 

Swarm 模式目前不受支持,但已列入服务计划。 

Azure 容器服务是否支持 Windows 容器?  

目前 Linux 容器在所有协调器中受支持。 对 Kubernetes 的 Windows 容器的支持处于预览状态。

是否建议在 Azure 容器服务中使用特定的协调器? 

通常情况下,我们不提供特定协调器方面的建议。 如果体验过某个受支持的协调器,可以将该体验应用在 Azure 容器服务中。 不过,数据趋势表明,DC/OS 已在生产环境中证明适用于大数据和 IoT 工作负荷,Kubernetes 适用于云原生工作负荷,Docker Swarm 已知可以集成 Docker 工具且易于学习。

用户也可以使用其他 Azure 服务,根据自己的情况生成和管理自定义容器解决方案。 这些服务包括虚拟机Service FabricWeb 应用批处理。 

Azure 容器服务和 ACS 引擎的区别是什么? 

Azure 容器服务是支持 SLA 的 Azure 服务,具有 Azure 门户、Azure 命令行工具和 Azure API 中提供的功能。 用户可以使用该服务快速实现和管理运行标准容器协调工具的群集,配置选项相对较少。

ACS 引擎是一个开源项目,适用于高级用户在所有级别自定义群集配置。 可以更改基础结构和软件的配置意味着,我们不提供针对 ACS 引擎的 SLA。 支持问题是通过 GitHub 上的开源项目处理的,不通过官方的 Microsoft 渠道。 

如需其他详细信息,请参阅适用于容器的支持策略

群集管理

如何为群集创建 SSH 密钥?

可以使用操作系统上的标准工具创建一个 SSH RSA 公钥和私钥对,以便针对群集的 Linux 虚拟机进行身份验证。 有关步骤,请参阅 OS X 和 LinuxWindows 指南。

如果使用 Azure CLI 命令部署容器服务群集,则可为群集自动生成 SSH 密钥。

如何为 Kubernetes 群集创建服务主体?

若要在 Azure 容器服务中创建 Kubernetes 群集,还需要 Azure Active Directory 服务主体 ID 和密码。 有关详细信息,请参阅关于 Kubernetes 群集的服务主体

如果使用 Azure CLI 命令部署 Kubernetes 群集,则可为群集自动生成服务主体凭据。

可以创建多大的群集?

可以创建包含 1、3 或 5 个主节点的群集。 最多可以选择 100 个代理节点。

重要

对于更大的群集,根据你为节点选择的 VM 大小,可能需要增加订阅中的内核配额。 若要请求增加配额,请免费提出 联机客户支持请求 。 如果使用的是 Azure 免费帐户,则仅可以使用有限数量的 Azure 计算核心。

创建群集后,如何提高主机数? 

创建群集后,主机数是固定的,不能更改。 在创建群集的过程中,理想情况下应选择多个主机以确保高可用性。

创建群集后,如何提高代理数? 

可以使用 Azure 门户或命令行工具缩放群集中的代理数。 请参阅缩放 Azure 容器服务群集

我的主机和代理的 URL 是什么? 

Azure 容器服务中群集资源的 URL 基于所提供的 DNS 名称前缀以及为部署选择的 Azure 区域的名称。 例如,主节点的完全限定域名 (FQDN) 采用以下形式:

DNSnamePrefix.AzureRegion.cloudapp.azure.net

可以在 Azure 门户、Azure 资源浏览器或其他 Azure 工具中找到群集的常用 URL。

如何确定在群集中运行的 Orchestrator 版本?

  • DC/OS:请参阅 Mesosphere 文档
  • Docker Swarm:运行 docker version
  • Kubernetes:运行 kubectl version

如何在部署后升级 Orchestrator?

目前,Azure 容器服务不提供可将部署到群集的 Orchestrator 版本升级的工具。 如果容器服务支持更高的版本,可以部署新群集。 另一选项是使用特定于 Orchestrator 的工具(如果该工具可以用来对群集就地升级)。 有关示例,请参阅 DC/OS 升级。  

在哪里查找用于连接到我的群集的 SSH 连接字符串?

可以在 Azure 门户中查找连接字符串,也可以通过 Azure 命令行工具查找。

  1. 在门户中,导航到群集部署的资源组。  

  2. 单击“概览”,并在“概要”下单击“部署”的链接。 

  3. 在“部署历史记录”边栏选项卡中,单击其名称以 microsoft-acs 开头(后跟部署日期)的部署。 示例:microsoft-acs-201701310000。  

  4. 在“摘要”页的“输出”下通过了多个群集链接SSHMaster0 提供的 SSH 连接字符串用于连接到容器服务群集中的第一个主机。 

如上文所述,也可使用 Azure 工具查找主机的 FQDN。 使用主机的 FQDN 以及在创建群集时指定的用户名建立到主机的 SSH 连接。 例如:

ssh userName@masterFQDN –A –p 22 

有关详细信息,请参阅连接到 Azure 容器服务群集

我的 DNS 名称解析在 Windows 上不正常工作。 应采取何种操作?

Windows存在一些已知的 DNS 问题,其修补程序仍在积极淘汰。请确保使用已安装 KB4074588 和 KB408984) 8 的 KB4074588KB4089848 的更新的 acs-engine 和 Windows 版本 (Windows版本,以便环境可以从中受益。 否则,请参阅下表了解缓解步骤:

DNS 症状 解决方法
当工作负荷容器不稳定和崩溃时,清理网络命名空间 重新部署任何受影响的服务
服务 VIP 访问被中断 配置 DaemonSet,以始终使一个标准(非特权)pod 处于运行状态
运行容器的节点变为不可用时,DNS 查询可能会失败,从而产生一个“负缓存条目” 运行以下影响内部的容器:
  • New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name MaxCacheTtl -Value 0 -Type DWord
  • New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name MaxNegativeCacheTtl -Value 0 -Type DWord
  • Restart-Service dnscache

如果这样仍不能解决问题,请尝试完全禁用 DNS 缓存:
  • Set-Service dnscache -StartupType disabled
  • Stop-Service dnscache

后续步骤