AWS

EKS fargate 생성을 위한 설정

yechan93 2023. 12. 18. 16:23

 

AWS EKS 에서 fargate 를 사용하기 위해서는 몇가지의 설정이 필요하다

 

1. faragte profile

2. aws-log comfigmap

 


 

1번 내용인 fargate profile 은 fargate 를 사용하기 위한 IAM Role 을 생성하는 부분으로 아래내용 참고하시면 됩니다

  • fargate profile 생성시 name space 나 lable 를지정할 수 있는대 pod를 생성할때 지정한 name space 나 lable 이 지정되어 있으면 해당 pod 는 fargate 로 생성 된다

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/fargate-profile.html

 

AWS Fargate 프로파일 - Amazon EKS

Amazon EKS가 있는 AWS Fargate은 AWS GovCloud(미국 동부) 및 AWSGovCloud(미국 서부)를 제외한 모든 Amazon EKS 지역에서 사용할 수 있습니다.

docs.aws.amazon.com

 


2번 내용인 aws-log comfigmap 은 fargate 를 cloudwatch 와 연계하기 위한 방법으로 해당 내용이 있어야 EKS 안에서 pod가 정상적으로실행 된다

 - cloudwatch 가 아닌 AWS OpenSearch Service 혹은 Kinesis Data Firehose 로 데이터를 수집 할 수도 있다

 - 제일 간단한 부분은 cloudwatch  로의 통합이라 아래 내용을 주로 사용 한다

 

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/fargate-logging.html

 

Fargate 로깅 - Amazon EKS

일반적인 Fluent Conf에 포함된 주요 단원은 Service, Input, Filter, Output입니다. 하지만 Fargate 로그 라우터는 다음 부분만 수락합니다. Filter 및Output 부분입니다. Parser 부분. 기타 부분을 제공하는 경우

docs.aws.amazon.com

 

  • aws-log 를 사용하기 위해서는 아래 yaml 파일을 EKS 에 배포해야 정상적으로 사용이 가능하다
kind: Namespace
apiVersion: v1
metadata:
  name: aws-observability
  labels:
    aws-observability: enabled

 

kind: ConfigMap
apiVersion: v1
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 region-code
        log_group_name my-logs
        log_stream_prefix from-fluent-bit-
        log_retention_days 60
        auto_create_group true
  parsers.conf: |
    [PARSER]
        Name crio
        Format Regex
        Regex ^(?<time>[^ ]+) (?<stream>stdout|stderr) (?<logtag>P|F) (?<log>.*)$
        Time_Key    time
        Time_Format %Y-%m-%dT%H:%M:%S.%L%z