在EKS Kubernetes集群中启用CloudWatch日志记录
在AWS中安装EKS群集后,由于数据摄取和存储成本,默认情况下未为控制平面启用日志记录。 Amazon EKS控制平面日志记录直接从Amazon EKS控制平面向我们帐户中的CloudWatch Logs提供审计和诊断日志,从而轻松保护和运行集群。我们可以灵活选择所需的确切日志类型,并将它们作为日志流发送到CloudWatch中每个Amazon EKS集群的组。
我们之前已经完成了有关使用eksctl安装EKS Cluster的单独教程。确认AWS账户中是否有活动的Kubernetes EKS集群。
$eksctl get cluster NAME REGION prod-eks-cluster eu-west-1
我们可以为每个新的或者现有的Amazon EKS集群启用多种Amazon EKS控制平面日志类型。
Kubernetes API服务器组件日志(api)控制平面API日志审计(audit)日志Kubernetes审计日志提供了影响我们集群的单个用户,管理员或者系统组件的记录.Authenticator(authenticator)日志唯一到Amazon EKS。这些日志代表Amazon EKS使用IAM凭证用于Kubernetes基于角色的访问控制(RBAC)身份验证的控制平面组件。控制器管理器(controllerManager)日志控制器管理器管理Kubernetes随附的核心控制循环。计划程序日志)计划程序组件管理在集群中何时何地运行Pod。
在EKS群集中启用Control Plane CloudWatch日志记录
请注意,CloudWatch Logs的接收,归档存储和数据扫描速率适用于已启用的控制平面日志。有关更多信息,请参阅CloudWatch定价。
可以在AWS控制台上检查日志记录状态。
我们可以使用AWS CLI启用日志记录,也可以使用eksctl命令行工具。
使用eksctl启用EKS控制平面日志记录
使用的命令是:
eksctl utils update-cluster-logging [flags]
我们可以使用以下命令查看所有可用选项:
eksctl utils update-cluster-logging --help
要启用所有类型的日志,请使用all或者*
eksctl utils update-cluster-logging --enable-types all
支持的日志类型包括:allnoneapiauditauthenticatorcontrollerManagerscheduler
要启用审核日志,请运行:
eksctl utils update-cluster-logging --enable-types audit
要启用所有控制器控制器日志,请运行:
eksctl utils update-cluster-logging --enable-types=all --disable-types=controllerManager
对我来说,请启用prod-eks-cluster群集中的所有日志类型:
eksctl utils update-cluster-logging --enable-types all --cluster prod-eks-cluster --region eu-west-1 --approve
命令执行输出:
[ℹ] eksctl version 0.25.0 [ℹ] using region eu-west-1 [ℹ] will update CloudWatch logging for cluster "prod-eks-cluster" in "eu-west-1" (enable types: api, audit, authenticator, controllerManager, scheduler & no types to disable) c[✔] configured CloudWatch logging for cluster "prod-eks-cluster" in "eu-west-1" (enabled types: api, audit, authenticator, controllerManager, scheduler & no types disabled)
日志记录状态应更改为已启用。
要禁用,请使用以下命令:
$eksctl utils update-cluster-logging --disable-types all --cluster prod-eks-cluster --region eu-west-1 --approve [ℹ] eksctl version 0.25.0 [ℹ] using region eu-west-1 [ℹ] will update CloudWatch logging for cluster "prod-eks-cluster" in "eu-west-1" (no types to enable & disable types: api, audit, authenticator, controllerManager, scheduler) [✔] configured CloudWatch logging for cluster "prod-eks-cluster" in "eu-west-1" (no types enabled & disabled types: api, audit, authenticator, controllerManager, scheduler)
使用AWS CLI启用EKS控制平面日志记录
启用所有日志:
aws eks --region eu-west-1 update-cluster-config --name prod-eks-cluster \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}'
其中:prod-eks-cluster是集群的名称。west-1是创建集群的区域
禁用:
aws eks --region eu-west-1 update-cluster-config --name prod-eks-cluster \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":false}]}'
输出示例:
{ "update": { "id": "582a74a9-da01-4393-9169-3a3816965911", "status": "InProgress", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":false}]}" } ], "createdAt": "2017-08-14T15:28:32.555000+03:00", "errors": [] } }
如何查看集群控制平面日志
启用集群日志记录后,我们可以使用CloudWatch Console查看集群控制平面日志。