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
==========================
デプロイを行ってなってみる
0 件のコメント:
コメントを投稿