2021年9月28日火曜日

EKS for node(Fragate作成)

1)既存のノードが Fargate ポッドと通信できるようにする
aws eks describe-cluster --name my-cluster --query cluster.resourcesVpcConfig.clusterSecurityGroupId



2)Fargate ポッド実行ロールを作成する

1)AWS Management Console を使用して AWS Fargate ポッド実行ロールを作成する

①IAM -> ロールの作成を選択。

②EKS > EKS -Fargate podを選択する。













2)次のステップ:タグ




















3)次のステップ:確認(今回は、タグの入力なし)























4)ロール名を入力 > ロールの作成












5)Fargateのプロファイルの作成を行う

==========================

eksctl create fargateprofile \

    --cluster my-cluster \

    --name fargate_profile_my-cluster \

    --namespace k8s-fargate 

===========================


6)プロファイルが作成されていることが確認できる




ログの記録


1)ログルータの作成を行う

aws-observability-namespace.yaml 

=============================

kind: Namespace

apiVersion: v1

metadata:

  name: k8s-fargate(自作のnamespace)

  labels:

    aws-observability: enabled

=============================



2)Cloudwatch用のマニュフェストを作成する

==============================

kind: ConfigMap

apiVersion: v1

metadata:

  name: aws-logging

  namespace: k8s-fargate

  labels:

data:

  output.conf: |

    [OUTPUT]

        Name cloudwatch_logs

        Match   *

        region ap-northeast-1    

        log_group_name fluent-bit-cloudwatch

        log_stream_prefix from-fluent-bit-

        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

  

  filters.conf: |

     [FILTER]

        Name parser

        Match *

        Key_name log

        Parser crio

        Reserve_Data On

        Preserve_Key On

==================================


3)デプロイする

kubectl apply -f aws-logging-cloudwatch-configmap.yaml


4)CLoudwatchのポリシーローカルにダウンロード

curl -o permissions.json https://raw.githubusercontent.com/aws-samples/amazon-eks-fluent-logging-examples/mainline/examples/fargate/cloudwatchlogs/permissions.json


5)上記でダウンロードしたポリシー ファイルを使用して、IAM ポリシーを作成します

aws iam create-policy --policy-name eks-fargate-logging-policy --policy-document file://permissions.json



6)IAM ポリシーを、Fargate プロファイルに指定されたポッド実行ロールにアタッチします

===================

aws iam attach-role-policy \

  --policy-arn arn:aws:iam::●●●●●●●●●●:policy/eks-fargate-logging-policy \

  --role-name AmazonEKSFargatePodExecutionRole

====================



6)追加した”eks-fargate-logging-policy”が追加されていることが把握できる。




メモ:

Cloudwatch上にログが出てないようにみえる



■マニュフェスト作成&実施


1)簡単にnginxのマニフェストを作成

========================

apiVersion: apps/v1

kind: Deployment

metadata:

  name: sample-app

  namespace: k8s-fargate

spec:

  replicas: 3

  selector:

    matchLabels:

      app: nginx

  template:

    metadata:

      labels:

        app: nginx

    spec:

      containers:

        - name: nginx

          image: nginx:latest

          ports:

            - name: http

              containerPort: 80

==========================



デプロイを行ってなってみる

 kubectl apply -f nginx.yaml












0 件のコメント:

コメントを投稿

php log(ECS ログ出力)

# PHPエラーログの設定 ENV PHP_INI_DIR /usr/local/etc/php RUN { \ echo 'log_errors = On' ; \ echo 'error_log = /proc/self/...