问题标签 [azure-aks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
10763 浏览

postgresql - 无法从 Azure 资源连接到用于 postgres 服务器的 Azure 数据库

我无法使用 pgcli 从 azure 资源(aks 节点)连接到 Azure postgres。我也直接从节点尝试并得到相同的错误消息:

FATAL: Client from Azure Virtual Networks is not allowed to access the server. Please make sure your Virtual Network is correctly configured.

资源中的防火墙规则开启: Allow access to Azure services: ON

在我的计算机和另一个 azure 资源上运行相同的 pgcli login 命令似乎工作正常。

将防火墙规则添加到所有 IP 会返回相同的错误。

来自有问题的服务器(主机:5432)的卷曲返回回复,因此这不是出站问题。

0 投票
4 回答
12141 浏览

azure - “无法连接 Net/http:TLS 握手超时”——为什么 Kubectl 无法连接到 Azure Kubernetes 服务器?(AKS)

我的问题(对 MS 和其他任何人)是:为什么会出现这个问题,用户/客户自己而不是 Microsoft 支持可以实施哪些解决方法?

关于这个问题显然还有“一些”其他问题:

  1. 托管 Azure Kubernetes 连接错误
  2. 无法联系我们的 Azure-AKS kube - TLS 握手超时
  3. Azure Kubernetes:TLS 握手超时(这个有一些微软反馈)

以及发布到 AKS 存储库的多个 GitHub 问题:

  1. https://github.com/Azure/AKS/issues/112
  2. https://github.com/Azure/AKS/issues/124
  3. https://github.com/Azure/AKS/issues/164
  4. https://github.com/Azure/AKS/issues/177
  5. https://github.com/Azure/AKS/issues/324

加上一些推特线程:

  1. https://twitter.com/ternel/status/955871839305261057

TL;博士

跳到下面的答案中的解决方法

当前的最佳解决方案是发布帮助票证 - 并等待 - 或重新创建 AKS 群集(可能不止一次,交叉手指,见下文......)但应该有更好的东西。至少请允许 AKS 预览客户,无论支持层级如何,都可以针对此特定问题升级他们的支持请求严重性。

您还可以尝试扩展您的集群(假设这不会破坏您的应用程序)。

GitHub呢?

上述许多 GitHub 问题已在解决后关闭,但问题仍然存在。以前有关于该问题的公告文档,但即使问题继续出现,目前也没有此类状态更新可用:

  1. https://github.com/Azure/AKS/tree/master/annoucements

我发布这篇文章是因为我有一些我在其他地方没有看到的新花絮,我想知道是否有人对解决这个问题的其他潜在选择有想法。

受影响的虚拟机/节点资源使用

我在其他地方没有提到的第一部分是受上述 Kubectl '无法连接到服务器:net/http:TLS 握手超时'问题影响的节点/虚拟机/实例上的资源使用情况。

生产节点利用率

我受影响的集群上的节点如下所示:

net/http: TLS 握手超时

利用率和网络 io 的下降与磁盘利用率的增加和我们开始遇到问题的时间段密切相关。

在此图表之前,过去 30 天的整体节点/VM 利用率通常持平,与生产站点流量/更新推送等有关的一些颠簸。

问题缓解后的指标(添加事后分析)

至此,以下是同一节点在向上扩展然后向下扩展后的指标(这恰好缓解了我们的问题,但并不总是有效 - 请参阅底部的答案):

在此处输入图像描述

注意到 CPU 和网络中的“下降”了吗? 这就是 Net/http: TLS 问题对我们产生影响的地方——以及当 AKS 服务器无法从 Kubectl 访问时。似乎除了没有响应我们的请求之外,它还没有与 VM / 节点交谈。

一旦我们回来(将 # 个节点向上缩放一个,然后向下缩放——查看解决方法的答案),指标(CPU 等)就恢复正常——我们可以从 Kubectl 连接。这意味着我们可能会针对这种行为创建一个警报(我在 Azure DevOps 方面询问这个问题时遇到了问题:https ://github.com/Azure/AKS/issues/416 )

节点大小可能会影响问题频率

Zimmergren 在 GitHub 上表示,与运行裸骨小节点相比,他在使用较大实例时遇到的问题更少。这对我来说很有意义,并且可能表明 AKS 服务器分配工作负载的方式(请参阅下一节)可能基于实例的大小。

“节点的大小(例如 D2、A4 等):) 我体验过,在运行 A4 及更高版本时,我的集群比运行 A2 时更健康。(我有十几个类似的不幸的是,有大小组合和集群故障的经验)。” (https://github.com/Azure/AKS/issues/268#issuecomment-375715435

其他集群大小影响参考:

  1. giorgited ( https://github.com/Azure/AKS/issues/268#issuecomment-376390692 )

负责更小集群的 AKS 服务器可能会更频繁地受到攻击?

一个 Az 区域中存在多个 AKS 管理“服务器”

我在其他地方没有提到的下一件事是,您可以在同一个区域中并排运行多个集群,其中一个集群(在本例中为我们的生产)受到“net/http:TLS 握手超时”的影响另一个工作正常,可以通过 Kubectl 正常连接(对我们来说,这是我们相同的暂存环境)。

用户(上面的 Zimmergren 等)似乎认为节点大小会影响此问题影响您的可能性,这一事实似乎也表明节点大小可能与将次区域职责分配给次区域 AKS 的方式有关管理服务器。

这可能意味着重新创建具有不同集群大小的集群更有可能将您放置在不同的管理服务器上——减轻问题并降低需要多次重新创建的可能性。

暂存集群利用率

我们的两个 AKS 集群都位于美国东部。作为上述“生产”集群指标的参考,我们的“暂存”集群(也包括美国东部)资源利用率没有 CPU / 网络 IO 的大幅下降——并且同期磁盘等也没有增加:

net/http:可通过 kubectl 访问 TLS 握手超时暂存实例。

相同的环境受到不同的影响

我们的两个集群都运行相同的入口、服务、Pod、容器,因此用户所做的任何事情也不太可能导致此问题出现。

重建有时会成功

上述多个 AKS 管理服务器子区域职责的存在与其他用户在 github ( https://github.com/Azure/AKS/issues/112 )上描述的行为是有道理的,其中一些用户能够重新创建一个集群(然后可以联系),而其他人重新创建并仍然有问题。

紧急情况可能 = 多次再创造

在紧急情况下(即您的生产站点......像我们的......需要管理),您可能只是重新创建,直到您获得一个恰好落在不同 AKS 管理服务器实例上的工作集群(一个不是受影响)但请注意,这可能不会在您第一次尝试时发生 - AKS 群集重新创建并不是即时的。

那就是说...

受影响节点上的资源继续发挥作用

我们受影响的虚拟机上的所有容器/入口/资源似乎都运行良好,并且我没有任何警报响起以进行正常运行时间/资源监控(除了上面图表中列出的利用率异常)

我想知道为什么会出现这个问题,以及用户自己可以解决哪些问题,而不是 Microsoft 支持(目前有票)。如果您有想法,请告诉我。

原因的潜在提示

  1. https://github.com/Azure/AKS/issues/164#issuecomment-363613110
  2. https://github.com/Azure/AKS/issues/164#issuecomment-365389154

为什么没有 GKE?

我了解 Azure AKS 处于预览阶段,并且很多人因为这个问题而迁移到 GKE ()。也就是说,到目前为止,我的 Azure 体验一直是积极的,如果可能的话,我更愿意提供一个解决方案。

而且... GKE 偶尔也会遇到类似的情况:

  1. GKE 中与 kubernetes 的 TLS 握手超时

我很想看看在 GKE 上扩展节点是否也解决了那里的问题。

0 投票
3 回答
982 浏览

azure - Azure Kubernetes 服务上的 Istio?

我正在为我当前的雇主审查 Azure Kubernetes 服务,并试图确定在 AKS 上使用 istio 是否有任何限制。有没有人有这样做的经验?它正常工作吗?

0 投票
2 回答
10273 浏览

azure - 如何将 GitLab-Ci 与 Azure Kubernetes + Kubectl + ACR 集成以进行部署?

我们之前基于 GitLab 的 CI/CD 使用对特定 REST API 端点的经过身份验证的 curl 请求来触发将更新的容器重新部署到我们的服务,如果您对基于 Kubernetes 的部署使用类似的东西,这个问题适合您。

更多背景

我们在 Azure AKS 群集上运行生产站点/应用程序(基于 Ghost 博客)。现在,我们手动将更新的容器推送到私有 ACR(Azure 容器注册表),然后使用 Kubectl 从命令行进行更新。

话虽如此,我们之前使用 Docker Cloud 进行编排,并使用 GitLab-Ci 完全集成重新部署我们的生产/登台服务。

GitLab-Ci 集成是目标,也是这个问题背后的“为什么”。

我的问题

由于我们之前使用过 Docker Cloud(哦,应该从一开始就使用 K8s),我们应该如何处理 GitLab-Ci 能够利用 Secrets 创建 Docker Cloud CLI 然后使用 Docker Cloud API 进行身份验证以触发操作的事实在我们的节点上(即使用新容器重新部署等)。

虽然我相信我们可以构建一个包含 Kubectl 和 Azure CLI 的容器(供我们的 GitLab-Ci 运行程序使用),但我知道 Kubernetes 也有一个类似的(与 docker cloud)Rest API 可以在这里找到(https ://kubernetes.io/docs/tasks/access-application-cluster/access-cluster)——特别是关于在没有 Kubectl 的情况下进行连接的部分似乎是相关的(关于 HTTP REST API 的部分也是如此)。

我对连接到 Azure(或可能的其他托管 Kubernetes 服务)的任何人的问题:

您的 Ci/CD 服务器如何通过 Kubernetes 服务提供商的管理服务器进行身份验证,然后您当前如何触发更新/重新部署更新的容器/服务?

如果您使用 Kubernetes HTTP Rest API 重新部署服务,您的想法将特别有价值!

我正在审查的 Kubernetes 资源

  1. 我应该如何使用 Kubernetes 管理部署
  2. Kubernetes 部署

将在我完成整个过程时更新。

0 投票
1 回答
5304 浏览

azure - 如何将 Azure AKS Kubernetes 集群自签名 CA 添加到 GitLab CI/CD Kubernetes 集成?

我正在尝试将我的 Azure AKS Kubernetes 集群添加到我的 GitLab CI/CD Kubernetes 集成中。

运行以下命令后,我可以从我的电脑上在集群上执行kubectl命令:

az aks get-credentials --resource-group <resource-group-name> --name <kubernetes-cluster-name>

它创建了.kube/config一个内容如下的文件:

在 GitLab 表单中,我必须输入以下字段:

  1. Kubernetes 集群名称
  2. API 网址
  3. CA 证书 - 证书颁发机构捆绑包(PEM 格式)
  4. 令牌
  5. 项目命名空间(可选,唯一)

我尝试了这些值:

  1. 我将 my<kubernetes-cluster-name>与 azure 上的集群名称和.kube/config文件上的集群名称相匹配。
  2. 我把从文件中https://<resource-group-name+some-hexadecimal-chars>.hcp.westeurope.azmk8s.io:443复制的url 。.kube/config
  3. 我首先尝试certificate-authority-data.kube/config文件中的,但没有奏效,我已经尝试了.kube/config文件中的所有三个 base64 字符串,没有一个有效。
  4. 我从.kube/config文件中放入令牌。
  5. 将此留空,因为它是可选的。

在 GitLab 中,当我尝试点击按钮Install安装 Helm Tiller 时,出现以下错误:

有时我会收到此错误:

从昨天开始,我一直在努力让它发挥作用,谷歌搜索了很多,但没有找到任何东西。

我认为问题出在第三个字段 CA 证书上,也许还有其他方法可以从命令行azkubectl.

这里是否有人已经将 Kubernetes 从 GitLab 集成到 Azure AKS 工作?

0 投票
1 回答
155 浏览

spring-boot - 有没有办法在 K8S 服务发现中为服务注册自定义元数据?

我的服务(spring boot java 应用程序)在具有 3 个副本(pod)的 K8S 集群中运行。我的用例要求我动态部署应用程序上下文。而且我需要通过服务发现知道哪个上下文部署在 3 个 Pod 中的哪个上。有没有办法在 K8S 服务发现中为服务注册自定义元数据,就像我们在 Eureka 中使用 eureka.instance.metadata-map 一样?

0 投票
2 回答
543 浏览

azure - 创建后是否可以在 Azure AKS 上启用 HTTP 应用程序路由?

目前,根据文档,我认为可能的唯一方法是创建 k8s 集群。

有没有办法可以为现有集群更改此配置?

0 投票
1 回答
990 浏览

azure - Azure 上的 Kubernetes 负载均衡器分布模式

我正在尝试为 azure Kubernetes 部署创建负载均衡器,我正在使用以下 yaml 文件

并运行它

我需要的是创建一个具有源 IP 亲和性的平衡器。我找到了以下内容https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-distribution-mode如何在 Azure 上配置它以及 LB 支持的模式。有指定模式类型的LoadBalancerDistribution属性。不幸的是,我没有找到任何关于如何为 Kubernetes 部署完成的文档。

提前致谢

0 投票
2 回答
535 浏览

azure - 如何将现有 AKS 添加到 AAD?

几天前,Azure 发布了有关如何使用 RBAC 和 AAD 创建 AKS 群集的说明。我已经有一个AKS。如何将现有 AKS 添加到 AAD?

0 投票
1 回答
405 浏览

asp.net-core - 带有 reloadOnChange 和 azure 文件的 asp.net 核心配置 json 文件?

如果使用 Azure 文件作为安装在 AKS 群集中的卷,是否支持文件/目录更改事件,如此处所述aks 文档

我想挂载一个包含配置文件的卷并使用 asp.net 核心的自动 reloadOnChange 功能。

谢谢!