

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Terapkan Wawasan Kontainer OTel dengan CloudFormation
<a name="container-insights-eks-otel-cfn"></a>

Anda dapat menerapkan OTel Container Insights sebagai infrastruktur sebagai kode dengan menggunakan template. CloudFormation Pendekatan ini paling baik untuk tim yang mengelola cluster melalui saluran pipa IAC dan menginginkan penerapan yang dapat diulang dan dikendalikan versi.

Template menginstal add-on `amazon-cloudwatch-observability` EKS dengan OTel Container Insights diaktifkan. Jika Anda lebih suka manajemen Kubernetes-native paket, lihat[Terapkan Wawasan Kontainer OTel dengan Helm](container-insights-eks-otel-helm.md).

## Prasyarat
<a name="container-insights-eks-otel-cfn-prereqs"></a>

Sebelum Anda menerapkan OTel Container Insights dengan CloudFormation, verifikasi bahwa Anda memenuhi persyaratan berikut.
+ Cluster Amazon EKS yang sudah ada yang menjalankan Kubernetes versi 1.28 atau yang lebih baru
+ AWS CLI versi 2.15.0 atau yang lebih baru
+ `kubectl`dikonfigurasi untuk berkomunikasi dengan cluster target Anda
+ Izin IAM untuk pembuatan tumpukan CloudFormation 
+ Akses internet keluar dari cluster ke titik akhir CloudWatch 

## Menyebarkan dengan CloudFormation
<a name="container-insights-eks-otel-cfn-cloudformation"></a>

Gunakan CloudFormation template untuk menerapkan add-on CloudWatch Observability, peran IAM yang diperlukan, dan asosiasi Pod Identity dalam satu tumpukan. Template ini menggunakan `AWS::EKS::Addon` sumber daya untuk menginstal add-on dengan OTel Container Insights diaktifkan.

### CloudFormation templat
<a name="container-insights-eks-otel-cfn-template"></a>

Template berikut membuat kumpulan lengkap sumber daya yang Anda perlukan untuk mengaktifkan OTel Container Insights di klaster Amazon EKS Anda.

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Deploy OTel Container Insights on an EKS cluster

Parameters:
  ClusterName:
    Type: String
    Description: The name of your EKS cluster

Resources:
  CloudWatchAgentRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: EKS-CloudWatch-Observability-Role
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: pods.eks.amazonaws.com
            Action:
              - sts:AssumeRole
              - sts:TagSession
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

  PodIdentityAssociation:
    Type: AWS::EKS::PodIdentityAssociation
    Properties:
      ClusterName: !Ref ClusterName
      Namespace: amazon-cloudwatch
      ServiceAccount: cloudwatch-agent
      RoleArn: !GetAtt CloudWatchAgentRole.Arn

  CloudWatchObservabilityAddon:
    Type: AWS::EKS::Addon
    DependsOn: PodIdentityAssociation
    Properties:
      ClusterName: !Ref ClusterName
      AddonName: amazon-cloudwatch-observability
      AddonVersion: v6.2.0-eksbuild.1
      ConfigurationValues: '{"otelContainerInsights":{"enabled":true}}'
      ServiceAccountRoleArn: !GetAtt CloudWatchAgentRole.Arn
      ResolveConflicts: OVERWRITE
```

Template ini menciptakan sumber daya berikut:
+ Peran IAM dengan kebijakan `CloudWatchAgentServerPolicy` terkelola terlampir
+ Asosiasi Identitas Pod EKS yang memetakan peran ke akun layanan CloudWatch agen
+ Add-on `amazon-cloudwatch-observability` EKS dengan OTel Container Insights diaktifkan

### Untuk menyebarkan CloudFormation tumpukan
<a name="container-insights-eks-otel-cfn-deploy-stack"></a>

Gunakan AWS CLI untuk membuat CloudFormation tumpukan dari template.

**Untuk menyebarkan tumpukan**

1. Simpan template sebelumnya ke file bernama. `otel-container-insights.yaml`

1. Jalankan perintah berikut. Ganti {{cluster-name}} dengan nama cluster Amazon EKS Anda.

   ```
   aws cloudformation create-stack \
     --stack-name otel-container-insights \
     --template-body file://otel-container-insights.yaml \
     --parameters ParameterKey=ClusterName,ParameterValue={{cluster-name}} \
     --capabilities CAPABILITY_NAMED_IAM
   ```

1. Tunggu pembuatan tumpukan selesai.

   ```
   aws cloudformation wait stack-create-complete \
     --stack-name otel-container-insights
   ```

1. Verifikasi bahwa status tumpukan adalah`CREATE_COMPLETE`.

   ```
   aws cloudformation describe-stacks \
     --stack-name otel-container-insights \
     --query "Stacks[0].StackStatus" \
     --output text
   ```

## Verifikasi penyebaran
<a name="container-insights-eks-otel-cfn-verify"></a>

Setelah pembuatan CloudFormation tumpukan selesai, verifikasi bahwa add-on sedang berjalan dan mengirim data ke. CloudWatch

**Untuk memverifikasi penyebaran**

1. Konfirmasikan bahwa pod CloudWatch agen sedang berjalan.

   ```
   kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent
   ```

   Semua pod harus menunjukkan `Running` status.

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Di panel navigasi, pilih **Wawasan Kontainer**.

1. Verifikasi bahwa klaster Anda muncul di daftar klaster dan metrik tersebut terisi.

Metrik biasanya muncul CloudWatch dalam waktu 3 hingga 5 menit setelah penerapan selesai.

## Hapus penyebaran
<a name="container-insights-eks-otel-cfn-cleanup"></a>

Untuk menghapus semua sumber daya yang dibuat CloudFormation template, hapus tumpukan.

```
aws cloudformation delete-stack \
  --stack-name otel-container-insights
```