نحوه پیکربندی ورود به سیستم در آمازون eks fargate با terraform

آمازون EKS در Fargate به شما غلافهای بدون سرور می دهد – اما شما هنوز هم به سیاهههای مربوط نیاز دارید!
این راهنما شما را از طریق فعال کردن ورود به سیستم پیاده می کند بینایی وت حداقل با استفاده از terraform.
📘 چرا این مهم است
به طور پیش فرض ، آمازون EK در Fargate خروجی برنامه را وارد نمی کند. شما باید با استفاده از BIT FLUENT انتخاب کنید-روتر ورود به سیستم که از آن می خواند /var/log/containers
و سیاهههای مربوط به CloudWatch را فشار می دهد. تمام آنچه شما نیاز دارید این است:
- خوشه eks با استفاده از فارگیت
- اعدام غلاف نقش iam
- شکل
📦 مرحله 1: فضای نام ورود به سیستم را ایجاد کنید
resource "kubernetes_namespace" "aws_observability" {
metadata {
name = "aws-observability"
labels = {
"aws-observability" = "enabled"
}
}
}
📝 مرحله 2: ConfigMap Bit Fluent Bit را اضافه کنید
BIT FLUENT در صورت نامگذاری به طور خودکار این پیکربندی را تشخیص می دهد aws-logging
و در aws-observability
فضای نام
اطمینان حاصل کنید که دارای معتبر است [FILTER]
وت [OUTPUT]
فقط بخش ها اجتناب کردن [INPUT]
یا [SERVICE]
بلوک ها – آنها توسط AWS اداره می شوند.
resource "kubernetes_config_map" "aws_logging" {
metadata {
name = "aws-logging"
namespace = kubernetes_namespace.aws_observability.metadata[0].name
}
data = {
"filters.conf" = <<-EOT
[FILTER]
Name kubernetes
Match logging-enabled.*
Merge_Log On
Keep_Log Off
EOT
"output.conf" = <<-EOT
[OUTPUT]
Name cloudwatch_logs
Match logging-enabled.*
region ap-southeast-1
log_group_name /aws/eks/my-cluster/logs
log_stream_prefix from-fluent-bit-
auto_create_group true
EOT
}
}
🏷 مرحله 3: غلافهای حاشیه نویسی برای فعال کردن ورود به سیستم
حاشیه نویسی های زیر را اضافه کنید تا غلاف خود را برای ورود به سیستم انتخاب کنید. اینها کنترل می کنند که آیا فرآیندهای بیت مسلط به صورت سیاهههای مربوط به آن استفاده می کنند و از کدام برچسب برای تطبیق استفاده می کنند.
🧠
fluentbit.io/tag
باید مطابقت داشته باشدMatch
الگوی در پیکربندی خود.
annotations = {
"eks.amazonaws.com/enable-logging" = "true"
"fluentbit.io/tag" = "logging-enabled.nginx"
}
🔐 مرحله 4: سیاست نقش IAM
resource "aws_iam_role_policy" "fargate_logging" {
name = "EKSFargateLogging"
role = aws_iam_role.fargate_execution.name
policy = jsonencode({
Version = "2012-10-17",
Statement = [
{
Sid = "CreateLogGroup",
Effect = "Allow",
Action = "logs:CreateLogGroup",
Resource = "arn:aws:logs:ap-southeast-2:123456789012:log-group:/aws/eks/my-cluster/logs"
},
{
Sid = "StreamAndPutLogs",
Effect = "Allow",
Action = [
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
Resource = "arn:aws:logs:ap-southeast-2:123456789012:log-group:/aws/eks/my-cluster/logs:*"
}
]
})
}
✅ ورود به سیستم را تأیید کنید
📌 وضعیت ورود به سیستم غلاف را بررسی کنید:
kubectl describe pod
به دنبال:Logging: Successfully enabled logging for pod
📌 گزارش های CloudWatch را بررسی کنید:
رفتن به: CloudWatch > Log groups > /aws/eks/my-cluster/logs
📌 لیست غلاف ها و سیاهههای مربوط به دم:
kubectl get pods
kubectl logs
📌 وضعیت POD را بررسی کنید:
kubectl describe pod
به دنبال:Logging: Successfully enabled logging for pod
📌 مشاهده گزارش ها:
- CloudWatch:
/aws/eks/my-cluster/logs
- CLI:
kubectl logs
🧪 عیب یابی
- configmap باید <5300 نویسه باشد
- ✅ فقط استفاده کنید
[FILTER]
با[OUTPUT]
با[PARSER]
- 🔁 غلاف را برای تغییرات پیکربندی مجدداً راه اندازی کنید
🎯 انجام شد
با ورود به سیستم در هر غلاف با استفاده از Terraform ، اکنون کنترل و دید خوبی در بارهای کار EKS Fargate دارید.
پیکربندی حداقل حداکثر مشاهده 💡