برنامه نویسی

یک AWS EKS Fargate v1.30 بسازید و Prince Of Persia را بازی کنید!

Summarize this content to 400 words in Persian Lang
در این مقاله، راهنمای گام به گام نحوه ایجاد یک خوشه EKS با استفاده از eksctl (v1.30) را ارائه خواهم کرد. همچنین نحوه استقرار یک بازی بر اساس نسخه MS-DOS Prince of Persia را نشان خواهم داد.

الزامات

حساب AWS / AWS CLI
حساب Github یا هر مخزن git
داکر
exctl
سکان هدایت

قدم زدن

سرویس Cloud Shell را در AWS باز کنید.اگر قبلاً نه، eksctl را با دستور زیر نصب کنید:

curl –silent –location “https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz” | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حالا بیایید با استفاده از fargate به ساخت کلاستر خود با نسخه 1.30 ادامه دهیم. دستور زیر را اجرا کنید. (حتما خوشه خود را در همان منطقه ای که VPC خود ایجاد می کنید)

eksctl create cluster –name gaming-cluster –version 1.30 –region us-east-1 –fargate

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر می خواهید خوشه خود را در یک VPC خاص ایجاد کنید، حتماً زیرشبکه های مربوطه را مشخص کنید (در غیر این صورت این دستور یک vpc اختصاص داده شده به eks ایجاد می کند)

eksctl create cluster –name gaming-cluster –version 1.30 –region us-east-1 –fargate –vpc-private-subnets subnet-private-1, subnet-private-2

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این فرآیند ممکن است حدود 20 تا 25 دقیقه طول بکشد.

اکنون بیایید یک ارائه دهنده oidc را در خوشه خود مرتبط کنیم.

eksctl utils associate-iam-oidc-provider –region us-east-1 –cluster gaming-cluster –approve

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خوشه ما اکنون با یک نمایه fargate پیش‌فرض آماده است که شامل فضای نام پیش‌فرض و سیستم kube است

بیایید یک نمایه fargate برای برنامه بازی خود ایجاد کنیم. (حتما ns را در داخل خوشه k8s خود نیز ایجاد کنید)

eksctl create fargateprofile \
–cluster gaming-cluster \
–name fp-gaming \
–namespace gaming \
–region us-east-1

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون، بیایید کنترلر AWS Load Balancer را اضافه کنیم تا برنامه ما با استفاده از متعادل کننده بار AWS نمایش داده شود.

برای انجام این کار باید یک خط مشی iam، یک سرویس حساب ایجاد کنیم و افزونه را با helm نصب کنیم.

این مثال سیاست IAM را در نظر بگیرید:

curl -o iam-policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/main/docs/install/iam_policy.json

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خط مشی IAM را ایجاد کنید

aws iam create-policy \
–policy-name AWSLoadBalancerControllerIAMPolicy-EKS \
–policy-document file://iam-policy.json

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حالا بیایید یک حساب کاربری برای این کنترلر ایجاد کنیم

eksctl create iamserviceaccount –cluster=gaming-cluster –namespace=kube-system –name=aws-load-balancer-controller –attach-policy-arn=arn:aws:iam:::policy/AWSLoadBalancerControllerIAMPolicy-EKS –approve

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

عالیه اکنون نوبت فرمان است، برای نصب چند نمودار مفید، در این مورد کنترلر تعادل بار aws.

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

دستورات زیر را اجرا کنید:

helm repo add eks https://aws.github.io/eks-charts

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

kubectl apply -k “github.com/aws/eks-charts/stable/aws-load-balancer-controller/crds?ref=master”

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

helm upgrade -i aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system –set clusterName=gaming-cluster –set serviceAccount.create=false –set serviceAccount.name=aws-load-balancer-controller –set vpcId=

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بسیار عالی اکنون می توانیم به خوشه خود دسترسی پیدا کنیم

aws eks update-kubeconfig –name gaming-cluster –region us-east-1

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

قبل از ادامه، اجازه دهید فضای نام بازی خود را ایجاد کنیم

kubectl create ns gaming

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تقریباً رسیدیم، حالا نوبت بازی است.

برای این کار به لطف oklemenz، ultrabolido و jmechner از این چنگال استفاده خواهم کرد.

git clone https://github.com/bdllerena/PrinceJS

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پس از شبیه‌سازی تصویر ما، مطمئن شوید که یک مخزن ECR ایجاد کرده‌اید (یا از هر کدام به انتخاب خود برای میزبانی تصویر Prince of Persia ما استفاده کنید)

حالا دستور push را کپی کنید، باید شبیه به این باشد

aws ecr get-login-password –region us-east-1 | docker login –username AWS –password-stdin .dkr.ecr.us-east-1.amazonaws.com

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در داخل مخزن ما باید یک Dockerfile وجود داشته باشد که شبیه این باشد.

توجه: ما از پرچم –platform=linux/amd64 استفاده می کنیم زیرا خوشه Kubernetes ما از این پلتفرم پشتیبانی می کند. در غیر این صورت، اگر تصویر Docker را با ابزارهایی مانند Docker Desktop بسازیم، در عوض تصویر را با سیستم عامل محلی سازگار می کند.

FROM –platform=linux/amd64 node:18

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080

CMD [“npm”, “start”]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در داخل مخزن ما دستورات زیر را اجرا کنید

docker build -t prince-of-persia .

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پس از اینکه تصویر خود را ساختیم، بیایید آن را تگ کرده و به ECR فشار دهیم

docker tag prince-of-persia:latest .dkr.ecr.us-east-1.amazonaws.com/prince-of-persia:latest
docker push .dkr.ecr.us-east-1.amazonaws.com/prince-of-persia:latest

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

apiVersion: apps/v1
kind: Deployment
metadata:
name: prince-of-persia
namespace: gaming
spec:
replicas: 1
selector:
matchLabels:
app: prince-of-persia
template:
metadata:
labels:
app: prince-of-persia
spec:
containers:
– name: prince-of-persia
image: .dkr.ecr.us-east-1.amazonaws.com/prince-of-persia:latest
ports:
– containerPort: 8080

apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
service.beta.kubernetes.io/aws-load-balancer-type: external
name: prince-of-persia
namespace: gaming
spec:
ports:
– port: 80
protocol: TCP
targetPort: 8080
selector:
app: prince-of-persia
type: LoadBalancer

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پس از بررسی اینکه تصویر ما همان است که به ECR فشار دادیم، مانیفست ما را اجرا کنید!

kubectl apply -f manifest.yaml

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این مانیفست قرار است یک استقرار با 1 ماکت (1 غلاف) و سرویسی ایجاد کند که یک متعادل کننده بار شبکه به عنوان رو به مشتری (عمومی) ایجاد کند.

بعد از چند دقیقه بررسی کنید که آیا سرویس با این دستور ایجاد شده است یا خیر

kubectl get svc -n gaming

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

عالیه! اگر می خواهید می توانید سیاهه های مربوط به غلاف را بررسی کنید و ببینید آیا همه چیز آماده است یا خیر

kubectl get pods -n gaming
kubectl logs -f prince-of-persia-…. -n gaming

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در نهایت بیایید با رفتن به svc که قبلا ایجاد کردیم از بازی خود لذت ببریم، باید کمی شبیه به این باشد

k8s-gaming-princeof-15fa57ff31-6933c5aaecd54910.elb.us-east-1.amazonaws.com

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اختیاری

اگر می خواهید ثبت غلاف خود را فعال کنید این مراحل را دنبال کنید

یک فضای نام برای aws-observability و یک نمایه fargate ایجاد کنید

kubectl create ns aws-observability

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

eksctl create fargateprofile \
–cluster gaming-cluster \
–name fp-observability \
–namespace aws-observability \
–region us-east-1

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بررسی کنید که نقش اجرایی این نمایه fargate دارای مجوزهای لازم برای اجرای رویداد logs در cloudwatch باشد، در غیر این صورت یک خط مشی درون خطی در داخل آن نقش با مجوزهای زیر ایجاد کنید.

توجه: حتماً نام خاص گروه گزارشی را که قرار است استفاده کنید اضافه کنید

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“logs:CreateLogStream”,
“logs:CreateLogGroup”,
“logs:DescribeLogStreams”,
“logs:PutLogEvents”
],
“Resource”: “*”
}
] }

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون یک configmap مانند این ایجاد کنید و آن را اعمال کنید، مطمئن شوید که طبق نیاز خود تغییر دهید، این configmap شروع به ورود به یک گروه گزارش در cloudwatch به نام gaming-cluster می کند.

apiVersion: v1
kind: ConfigMap
metadata:
name: aws-logging
namespace: aws-observability
data:
flb_log_cw: “false” # set to true to ship Fluent Bit process logs to CloudWatch.

filters.conf: |
[FILTER] Name parser
Match *
Key_name log
Parser crio
[FILTER] Name kubernetes
Match kube.*
Merge_Log On
Keep_Log Off
Buffer_Size 0
Kube_Meta_Cache_TTL 300s

output.conf: |
[OUTPUT] Name cloudwatch_logs
Match kube.*
region us-east-1
log_group_name gaming-cluster
log_stream_prefix from-fluent-bit-
log_retention_days 60
auto_create_group true

parsers.conf: |
[PARSER] Name crio
Format Regex
Regex ^(?[^ ]+) (?stdout|stderr) (?P|F) (?.*)$
Time_Key time
Time_Format %Y-%m-%dT%H:%M:%S.%L%z

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

kubectl apply -f observability.yaml

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حتماً استقرارهای خود را مجدداً راه اندازی کنید!

kubectl rollout restart deployment prince-of-persia -n gaming

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توجه: آیا توصیه می شود فقط موارد حیاتی را فیلتر کنید، حفظ گروه سیاهه را تغییر دهید زیرا ممکن است برای دریافت هزاران سیاهههای مربوط هزینه بر باشد.

امیدوارم این راهنما بتواند مفید باشد! بازی مبارک!

در این مقاله، راهنمای گام به گام نحوه ایجاد یک خوشه EKS با استفاده از eksctl (v1.30) را ارائه خواهم کرد. همچنین نحوه استقرار یک بازی بر اساس نسخه MS-DOS Prince of Persia را نشان خواهم داد.

الزامات

  • حساب AWS / AWS CLI
  • حساب Github یا هر مخزن git
  • داکر
  • exctl
  • سکان هدایت

فهرست مطالب

قدم زدن

سرویس Cloud Shell را در AWS باز کنید.
اگر قبلاً نه، eksctl را با دستور زیر نصب کنید:

curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نسخه eksctl
حالا بیایید با استفاده از fargate به ساخت کلاستر خود با نسخه 1.30 ادامه دهیم. دستور زیر را اجرا کنید. (حتما خوشه خود را در همان منطقه ای که VPC خود ایجاد می کنید)

eksctl create cluster --name gaming-cluster --version 1.30 --region us-east-1 --fargate
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر می خواهید خوشه خود را در یک VPC خاص ایجاد کنید، حتماً زیرشبکه های مربوطه را مشخص کنید (در غیر این صورت این دستور یک vpc اختصاص داده شده به eks ایجاد می کند)

eksctl create cluster --name gaming-cluster --version 1.30 --region us-east-1 --fargate --vpc-private-subnets subnet-private-1, subnet-private-2
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ایجاد EKS
این فرآیند ممکن است حدود 20 تا 25 دقیقه طول بکشد.

اکنون بیایید یک ارائه دهنده oidc را در خوشه خود مرتبط کنیم.

eksctl utils associate-iam-oidc-provider --region us-east-1 --cluster gaming-cluster --approve
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خوشه ما اکنون با یک نمایه fargate پیش‌فرض آماده است که شامل فضای نام پیش‌فرض و سیستم kube است

خوشه جدید

بیایید یک نمایه fargate برای برنامه بازی خود ایجاد کنیم. (حتما ns را در داخل خوشه k8s خود نیز ایجاد کنید)
FP پیش فرض

eksctl create fargateprofile \
  --cluster gaming-cluster \
  --name fp-gaming \
  --namespace gaming \
  --region us-east-1
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون، بیایید کنترلر AWS Load Balancer را اضافه کنیم تا برنامه ما با استفاده از متعادل کننده بار AWS نمایش داده شود.

برای انجام این کار باید یک خط مشی iam، یک سرویس حساب ایجاد کنیم و افزونه را با helm نصب کنیم.

این مثال سیاست IAM را در نظر بگیرید:

curl -o iam-policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/main/docs/install/iam_policy.json
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خط مشی IAM را ایجاد کنید

aws iam create-policy \
    --policy-name AWSLoadBalancerControllerIAMPolicy-EKS \
    --policy-document file://iam-policy.json
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خط مشی EKS

حالا بیایید یک حساب کاربری برای این کنترلر ایجاد کنیم

eksctl create iamserviceaccount --cluster=gaming-cluster --namespace=kube-system --name=aws-load-balancer-controller --attach-policy-arn=arn:aws:iam:::policy/AWSLoadBalancerControllerIAMPolicy-EKS --approve
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حساب خدمات

عالیه اکنون نوبت فرمان است، برای نصب چند نمودار مفید، در این مورد کنترلر تعادل بار aws.

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

دستورات زیر را اجرا کنید:

helm repo add eks https://aws.github.io/eks-charts
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller/crds?ref=master"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

helm upgrade -i aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=gaming-cluster --set serviceAccount.create=false --set serviceAccount.name=aws-load-balancer-controller --set vpcId=
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

alc

بسیار عالی اکنون می توانیم به خوشه خود دسترسی پیدا کنیم

aws eks update-kubeconfig  --name gaming-cluster --region us-east-1
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

EX

قبل از ادامه، اجازه دهید فضای نام بازی خود را ایجاد کنیم

kubectl create ns gaming
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تقریباً رسیدیم، حالا نوبت بازی است.

برای این کار به لطف oklemenz، ultrabolido و jmechner از این چنگال استفاده خواهم کرد.

git clone https://github.com/bdllerena/PrinceJS
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پس از شبیه‌سازی تصویر ما، مطمئن شوید که یک مخزن ECR ایجاد کرده‌اید (یا از هر کدام به انتخاب خود برای میزبانی تصویر Prince of Persia ما استفاده کنید)

ECR

حالا دستور push را کپی کنید، باید شبیه به این باشد

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin .dkr.ecr.us-east-1.amazonaws.com
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در داخل مخزن ما باید یک Dockerfile وجود داشته باشد که شبیه این باشد.

توجه: ما از پرچم –platform=linux/amd64 استفاده می کنیم زیرا خوشه Kubernetes ما از این پلتفرم پشتیبانی می کند. در غیر این صورت، اگر تصویر Docker را با ابزارهایی مانند Docker Desktop بسازیم، در عوض تصویر را با سیستم عامل محلی سازگار می کند.

FROM --platform=linux/amd64 node:18

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080

CMD ["npm", "start"]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در داخل مخزن ما دستورات زیر را اجرا کنید

docker build -t prince-of-persia .    
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پس از اینکه تصویر خود را ساختیم، بیایید آن را تگ کرده و به ECR فشار دهیم

docker tag prince-of-persia:latest .dkr.ecr.us-east-1.amazonaws.com/prince-of-persia:latest    
docker push .dkr.ecr.us-east-1.amazonaws.com/prince-of-persia:latest                                
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد ECR

ECR Repo

apiVersion: apps/v1
kind: Deployment
metadata:
  name: prince-of-persia
  namespace: gaming
spec:
  replicas: 1
  selector:
    matchLabels:
      app: prince-of-persia
  template:
    metadata:
      labels:
        app: prince-of-persia
    spec:
      containers:
        - name: prince-of-persia
          image: .dkr.ecr.us-east-1.amazonaws.com/prince-of-persia:latest
          ports:
            - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
    service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
    service.beta.kubernetes.io/aws-load-balancer-type: external
  name: prince-of-persia
  namespace: gaming
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: prince-of-persia
  type: LoadBalancer
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پس از بررسی اینکه تصویر ما همان است که به ECR فشار دادیم، مانیفست ما را اجرا کنید!

kubectl apply -f manifest.yaml
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این مانیفست قرار است یک استقرار با 1 ماکت (1 غلاف) و سرویسی ایجاد کند که یک متعادل کننده بار شبکه به عنوان رو به مشتری (عمومی) ایجاد کند.

بعد از چند دقیقه بررسی کنید که آیا سرویس با این دستور ایجاد شده است یا خیر

kubectl get svc -n gaming
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

svc ایجاد شد

عالیه! اگر می خواهید می توانید سیاهه های مربوط به غلاف را بررسی کنید و ببینید آیا همه چیز آماده است یا خیر

kubectl get pods -n gaming
kubectl logs -f prince-of-persia-.... -n gaming
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سیاههها

در نهایت بیایید با رفتن به svc که قبلا ایجاد کردیم از بازی خود لذت ببریم، باید کمی شبیه به این باشد

k8s-gaming-princeof-15fa57ff31-6933c5aaecd54910.elb.us-east-1.amazonaws.com
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

شاهزاده ایرانی

اختیاری

اگر می خواهید ثبت غلاف خود را فعال کنید این مراحل را دنبال کنید

یک فضای نام برای aws-observability و یک نمایه fargate ایجاد کنید

kubectl create ns aws-observability
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

eksctl create fargateprofile \
  --cluster gaming-cluster \
  --name fp-observability \
  --namespace aws-observability \
  --region us-east-1
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پروفایل جدید

بررسی کنید که نقش اجرایی این نمایه fargate دارای مجوزهای لازم برای اجرای رویداد logs در cloudwatch باشد، در غیر این صورت یک خط مشی درون خطی در داخل آن نقش با مجوزهای زیر ایجاد کنید.

توجه: حتماً نام خاص گروه گزارشی را که قرار است استفاده کنید اضافه کنید

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سیاست جیسون

اکنون یک configmap مانند این ایجاد کنید و آن را اعمال کنید، مطمئن شوید که طبق نیاز خود تغییر دهید، این configmap شروع به ورود به یک گروه گزارش در cloudwatch به نام gaming-cluster می کند.

apiVersion: v1
kind: ConfigMap
metadata:
  name: aws-logging
  namespace: aws-observability
data:
  flb_log_cw: "false"  # set to true to ship Fluent Bit process logs to CloudWatch.

  filters.conf: |
    [FILTER]
        Name parser
        Match *
        Key_name log
        Parser crio
    [FILTER]
        Name kubernetes
        Match kube.*
        Merge_Log On
        Keep_Log Off
        Buffer_Size 0
        Kube_Meta_Cache_TTL 300s

  output.conf: |
    [OUTPUT]
        Name cloudwatch_logs
        Match kube.*
        region us-east-1
        log_group_name gaming-cluster
        log_stream_prefix from-fluent-bit-
        log_retention_days 60
        auto_create_group true

  parsers.conf: |
    [PARSER]
        Name crio
        Format Regex
        Regex ^(?
        Time_Key time
        Time_Format %Y-%m-%dT%H:%M:%S.%L%z

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

kubectl apply -f observability.yaml
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

حتماً استقرارهای خود را مجدداً راه اندازی کنید!

kubectl rollout restart deployment prince-of-persia -n gaming
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توجه: آیا توصیه می شود فقط موارد حیاتی را فیلتر کنید، حفظ گروه سیاهه را تغییر دهید زیرا ممکن است برای دریافت هزاران سیاهههای مربوط هزینه بر باشد.

گروه های گزارش

امیدوارم این راهنما بتواند مفید باشد! بازی مبارک!
giphy

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا