AKS资源管理和安全设置(还有一点趣闻)

首先

在使用AKS的过程中,我希望将我所做的事情记录下来作为纪录。具体项目如下所示:

    • リソース管理(監視)

 

    • セキュリティ

 

    小ネタ集

资源管理

基于Kubernetes的多节点架构,过度部署节点会成本高昂,因此资源管理非常重要。
然而,仅使用最少资源来运营可能导致运行不稳定,同时也可能无法应对部署、CronJob和HPA导致Pod增加的需求,因此在内存和CPU的上限设置上保持适度的余量非常重要。

使用多少资源进行确认,并设置为适度的数量,以便自动进行自动扩展。

确认资源的方式

or

资源的确认方法

kubectl – kubernetes控制命令行工具

最方便的方法是使用kubectl describe node 。
通过这个命令,您可以确认CPU和内存的请求和限制。
此外,通过kubectl top node 您可以查看当前的CPU和内存使用情况。
然而,请注意,这只能获取到当前值,无法进行跟踪等操作。

Azure 门户

您可以通过门户进行确认。
前提是需要创建Log Analytics工作区。(如果没有,则无法查看下面的“分析信息”,并且有关可采集的指标的信息会受到限制)

访问Kubernetes资源,并监控两个项目:「分析信息」和「指标数据」。
分析信息可以查看基本信息,但只能查看有限的信息,并且获取所需信息需要进行一些操作,所以基本上建议使用指标数据。

将绘制的图表保存在仪表盘上,您可以随时轻松查看所需的图表。

只要使用过,我想您可能对操作方法有所了解,但是您可以按照以下方式查看每个节点的CPU使用率。

Screen Shot 2021-11-02 at 18.33.08.png
Screen Shot 2021-11-02 at 18.32.56.png

然后,如果点击“应用黄色分割”,可以将其分割为每个节点或节点池的值,所以选择它,可以选择像上面的图表那样的每个节点的CPU使用率图表。

如果在当前状态下选择右上方的“钉住”选项,您可以保存已有的仪表板或创建新的仪表板来保存图表。

可以在这里创建新的警报规则。(在下面的监控部分中将进行说明)

通过保存必要的信息在仪表盘上,您可以轻松地确认资源的使用率和每个容器的资源分配情况。

Se você solicitar somente uma opção de frase em , não conseguirei fornecer uma resposta, pois necessito de mais contexto ou informação para criar uma frase adequada e relevante em . Por favor, forneça mais detalhes sobre o que você gostaria de expressar.

Nota: A frase “他サービス” não é do idioma , parece ser uma mistura de caracteres chineses com um termo em (サービス) que significa “serviço”. No entanto, se você deseja uma tradução adequada para este termo em , preciso de mais informações para oferecer uma resposta precisa.

您还可以使用各种外部服务和库来进行资源管理和日志记录。例如,有一些著名的地方可以进行这些操作。

    • ElasticSearch + kibana

 

    • Prometheus + Grafana

 

    Datadog

我想大致对吧。
我之前用过ElasticSearch,但基于使用需求,它太过于强大了,所以现在不再使用。
虽然ElasticSearch可以做很多事情,比如对日志进行全文分析,但是Azure的服务完全可以满足需求。

然而,随着数据量增加,Log Analysis的工作空间费用也会成比例增加,因此,如果Pod数量或节点数量增加,可能会再次使用ElasticSearch + kibana进行操作。鉴于ElasticSearch本身使用了大量资源,最终我们需要支付增加节点所带来的费用,所以计划在当前状态下运营一段时间。

我从来没有试过Prometheus + Grafana,但Azure有官方示例,所以你可以试一试。

自动缩放

在中国,自动缩放有两种类型,一种是Pod的自动缩放,另一种是节点的自动缩放。

Pod的扩展

这只是创建水平Pod自动扩展器资源的过程,详细信息暂不提及。通过多种指标,如Pod的CPU使用率等,可以设置Pod的扩容和缩容。

节点的扩展

考虑到在AKS中具有节点的自动缩放功能,我认为最好设置这个功能。即使通过HPA来增加Pod数量,如果没有节点,也无法增加Pod数量。

在AKS的服务中,通过选择节点池(设置)并选择要进行设置的节点池,可以通过节点池的扩缩容功能来自动设置自动扩容。当Pod增加且节点资源不足时,节点会自动增加,这真是太方便了。

安全

WAF配置

虽然 Nginx-Ingress 控制器可以配置 WAF,但由于我想将 WAF 放置在 AKS 之外,我选择配置了 Front Door 并添加了 WAF。同样,也可以使用 Application Gateway 进行配置。

如果是前端门户,则在设置中有一个名为Web应用程序防火墙的选项,选择要设置WAF的服务。这样就完成了WAF的设置。

请根据您自己的环境进行设置,可以修改Azure提供的默认WAF配置,例如白名单等。

您也可以按照以下步骤设置此日志(FrontDoor的WAF日志)。

    1. 创建Log Analytics工作区

 

    1. 选择前端监视项的诊断设置

 

    1. 选择添加诊断设置

 

    在显示的屏幕上选择所需项目并保存
image.png

只需在 Log Analytics 的查询界面中执行以下查询。

// Frontdoorに対するアクセスログを表示
AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "FrontdoorAccessLog"

// Frontdoorで設定しているWAFのログを表示
AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "FrontdoorWebApplicationFirewallLog"

// 同一IPによるアクセスをまとめる
// 例えばこの回数に制限を設けてアラートを表示することもできる。
AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "FrontdoorAccessLog"
| summarize count() by clientIp_s

另外,请参阅官方文档以获取有关WAF详细配置等的信息。
创建适用于应用程序网关的Web应用程序防火墙策略。
关于Azure应用程序网关的Web应用程序防火墙,常见问题如下。

Service Principal的身份验证信息更新

如果您在AKS上設置了Service Principal以便能夠訪問其他Azure資源(我認為很多人都會配置以便能夠訪問Azure Container Registry),則需要定期更新驗證資訊。因為默認情況下有效期為1年,所以需要注意可能會突然無法訪問的情況。

az aks update-credentials \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --reset-service-principal \
    --service-principal "$SP_ID" \
    --client-secret "$SP_SECRET"

请参考以下内容以获取详细信息。
更新或轮换用于Azure Kubernetes Service(AKS)的凭据。

小笑话合集

节点选择器

在Kubernetes中,您可以将选择调度节点的选项包含在Pod的创建定义中,同时也可以指定节点池。

nodeSelector:
    agentpool: pool_name

这样一来,我们也可以根据不同的服务将节点池进行分隔,是可行的方法。

日志分析费用

使用Log Analytics时,请注意如果日志量很大,费用可能会相当高。
根据按用量计费的方式,截至2021年11月5日,每GB的费用为379.825日元。

不过,这是针对东日本地区的价格。在East US创建Log Analytics将以261.556日元/GB计费。
根据我的观察,这个地区似乎是最便宜的。
AKS如果增加节点,日志的成本也会随之增加,所以我认为我们不能不利用它。

需要注意的是,

    • 料金がいつ変わるか分からない

 

    クラスターが日本にあって、Log AnalyticsがEast USにある場合の影響がいまいち分かっていない(メトリクスをEast USにあるLog Analyticsのサーバーに送ってるだけなので、多少ラグがある程度なのではとは思っています。)

在不同地区的收费差异可能相当大。

广告
将在 10 秒后关闭
bannerAds