Skip to content

Commit 2b8b352

Browse files
Update EKS Add-ons docs to better align with AWS Docs site (#666)
* Add troubleshooting page * Update installation and update/remove page * Add sample app page * Add connnected clusters prereq note * Update src/docs/getting-started/adot-eks-add-on/sample-app.mdx Co-authored-by: Huy Vo <[email protected]> * Update sample app numbering --------- Co-authored-by: Huy Vo <[email protected]>
1 parent 8870b94 commit 2b8b352

File tree

6 files changed

+184
-56
lines changed

6 files changed

+184
-56
lines changed

src/docs/getting-started/adot-eks-add-on.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import operatorImg2 from "assets/img/docs/gettingStarted/operator/img2.png"
1515
### [Installation](/docs/getting-started/adot-eks-add-on/installation)
1616
### [Add-on Advanced Configuration](/docs/getting-started/adot-eks-add-on/add-on-configuration)
1717
#### [Add-on Advanced Configuration: Collector Deployment](/docs/getting-started/adot-eks-add-on/add-on-configuration-collector-deployment)
18+
#### [Deploy a sample app](/docs/getting-started/adot-eks-add-on/sample-app)
1819
### [Collector Configuration Introduction](/docs/getting-started/adot-eks-add-on/config-intro)
1920
#### [Collector Configuration for Amazon Managed Prometheus](/docs/getting-started/adot-eks-add-on/config-amp)
2021
#### [Collector Configuration for AWS CloudWatch](/docs/getting-started/adot-eks-add-on/config-cloudwatch)
@@ -24,6 +25,7 @@ import operatorImg2 from "assets/img/docs/gettingStarted/operator/img2.png"
2425
### [Kubernetes Attributes Processor](/docs/getting-started/adot-eks-add-on/k8s-attr-processor)
2526
### [Target Allocator](/docs/getting-started/adot-eks-add-on/target-allocator)
2627
### [Update and Cleanup](/docs/getting-started/adot-eks-add-on/update-and-cleanup)
28+
### [Troubleshooting](/docs/getting-started/adot-eks-add-on/troubleshooting)
2729

2830

2931
## Introduction

src/docs/getting-started/adot-eks-add-on/installation.mdx

Lines changed: 43 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,45 +5,61 @@ description:
55
path: '/docs/getting-started/adot-eks-add-on/installation'
66
---
77

8-
The steps to fully deploy ADOT are:
8+
## Prerequisites
99

10-
1. Meet the prerequisites described [here](/docs/getting-started/adot-eks-add-on/requirements).
11-
2. Leverage EKS add-ons to deploy the ADOT Operator to your Amazon EKS cluster.
12-
3. Deploy the ADOT Collector Custom Resource Definition (CRD). You have the option to associate your IAM role with your EKS service account using [IRSA](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-enable-IAM.html). By doing this, your service account can then provide AWS permissions to the containers you run in any pod that use that service account.
10+
+ You have met the [ADOT prerequisites](/docs/getting-started/adot-eks-add-on/requirements)\.
1311

14-
This section will go into detail for the second and third steps. Alternatively, the second and third steps can be simplified, and combined into one, using the EKS add-ons advanced configuration feature. For more information on advanced configuration for ADOT, see [Add-on Advanced Configuration](/docs/getting-started/adot-eks-add-on/add-on-configuration). For more information on ADOT Collector deployment using advanced configuration, see [Add-on Advanced Configuration: Collector Deployment](/docs/getting-started/adot-eks-add-on/add-on-configuration-collector-deployment).
12+
------
13+
## AWS Management Console
1514

16-
## Leverage EKS Add-Ons to deploy the ADOT Operator to your Amazon EKS cluster
15+
Install the ADOT Amazon EKS add\-on to your Amazon EKS cluster using the following steps:
1716

18-
1. Apply the necessary permissions for ADOT to your cluster with the command:
19-
```console
20-
kubectl apply -f https://amazon-eks.s3.amazonaws.com/docs/addons-otel-permissions.yaml
21-
```
17+
1. Open the Amazon EKS console at [https://console\.aws\.amazon\.com/eks/home\#/clusters](https://console.aws.amazon.com/eks/home#/clusters)\.
2218

23-
2. Install the ADOT Operator into your Amazon EKS cluster using the command:
24-
```console
25-
aws eks create-addon --addon-name adot --cluster-name <your_cluster_name>
26-
```
19+
1. In the left pane, select **Clusters**, and then select the name of your cluster on the **Clusters** page\.
2720

28-
The `status` field value will be `CREATING` until complete.
21+
1. Choose the **Add\-ons** tab\.
2922

30-
`your_cluster_name` is the name of your cluster, you can find it by executing the command below, and a list of cluster names will appear:
31-
```console
32-
aws eks list-clusters --region <your_region>
33-
```
23+
1. Choose **Get more add\-ons**\.
3424

35-
3. Verify that ADOT is installed and running with the command:
36-
```console
37-
aws eks describe-addon --addon-name adot --cluster-name <your_cluster_name>
38-
```
25+
1. On the **Select add\-ons** page, do the following:
26+
27+
1. In the **Amazon EKS\-addons** section, select the **AWS Distro for OpenTelemetry** check box\.
28+
29+
1. Choose **Next**\.
30+
31+
1. On the **Configure selected add\-ons settings** page, do the following:
32+
33+
1. The default version will be selected in the **Version** dropdown list\. Select the **Version** you'd like to use\.
34+
35+
1. \(Optional\) If deploying an ADOT Collector, expand **Optional configuration settings** and provide the **Configuration values** that match your use case for Collector deployment\. The **Add\-on configuration schema** provides the available options for your configuration values\.
36+
37+
1. If a service account is already created in the cluster without an IAM role, expand the **Optional configuration settings** and select **Override** for the **Conflict resolution method**\.
38+
39+
1. Choose **Next**\.
40+
41+
1. On the **Review and add** page, choose **Create**\. After the add\-on installation is complete, you see your installed add\-on\.
42+
43+
------
44+
## AWS CLI
45+
46+
1. Install the ADOT Amazon EKS add\-on to your Amazon EKS cluster\. Optionally, the `--configuration-values` flag can be added to deploy an ADOT Collector during add\-on installation\. You may also configure other available values with this flag\.
47+
48+
```
49+
aws eks create-addon --addon-name adot --cluster-name my-cluster --configuration-values my-configuration-values
50+
```
51+
52+
The `status` field value will be `CREATING` until complete\.
3953

40-
You'll see `"status": "ACTIVE"` when creation is complete.
54+
1. Verify that ADOT is installed and running\.
4155

42-
### Deploy the ADOT Operator to your Amazon EKS cluster through the EKS console
56+
```
57+
aws eks describe-addon --addon-name adot --cluster-name my-cluster
58+
```
4359

44-
Follow these steps to use the EKS console to leverage EKS add-ons for deploying the ADOT Operator to your Amazon EKS cluster.
60+
You'll see `"status": "ACTIVE"` when creation is complete\.
4561

46-
#### [EKS console instructions](https://docs.aws.amazon.com/eks/latest/userguide/adot-manage.html#adot-install)
62+
------
4763

4864
## Deploy the ADOT Collector
4965

src/docs/getting-started/adot-eks-add-on/requirements.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ path: '/docs/getting-started/adot-eks-add-on/requirements'
77

88
## ADOT requirements
99

10+
* [Connected clusters](https://docs.aws.amazon.com/eks/latest/userguide/eks-connector.html) can't use this add-on.
11+
1012
* [kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) is installed
1113
* There is no specified version, but will be dependent on your cluster’s Kubernetes version (see section below)
1214

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
title: 'Deploy a sample application to test the AWS Distro for OpenTelemetry Collector'
3+
description:
4+
This page provides an a sample app that can be used with the Advanced Configuration
5+
path: '/docs/getting-started/adot-eks-add-on/sample-app'
6+
---
7+
The sample application will generate and send OTLP data to any of the services that you have configured through the AWS Distro for
8+
OpenTelemetry [\(ADOT\) Collector deployment](/docs/getting-started/adot-eks-add-on/add-on-configuration-collector-deployment)\. This step is optional if you already have an application running inside your cluster that can produce data\.
9+
Consult your application's documentation to ensure that data is sent to the correct endpoints\.
10+
11+
The sample application and traffic generator were largely taken from an example in the [ADOT Collector repository](https://github.com/aws-observability/aws-otel-collector/blob/main/examples/docker/docker-compose.yaml)\.
12+
A `docker-compose.yaml` file was translated to Kubernetes resources using the [Kompose tool](https://kompose.io/)\.
13+
14+
To apply the traffic generator and sample application, do the following steps\. Make sure that you have satisfied the prerequisites and completed the
15+
procedure in [Install the AWS Distro for OpenTelemetry \(ADOT\) Operator](/docs/getting-started/adot-eks-add-on/installation)\.
16+
17+
1. Download the `traffic-generator.yaml` file to your computer\. You can also [view the file](https://github.com/aws-observability/aws-otel-community/blob/master/sample-configs/traffic-generator.yaml) on GitHub\.
18+
19+
```
20+
curl -O https://raw.githubusercontent.com/aws-observability/aws-otel-community/master/sample-configs/traffic-generator.yaml
21+
```
22+
23+
2. In `traffic-generator.yaml`, make sure that the second `kind` value reflects your mode\. For more information,
24+
see [Deploy the ADOT Collector](https://aws-otel.github.io/docs/getting-started/adot-eks-add-on/installation#deploy-the-adot-collector) on GitHub\.
25+
26+
```
27+
kind: Deployment
28+
```
29+
30+
`traffic-generator.yaml` makes `http` calls to the Kubernetes service `sample-app:4567`\. This allows the traffic generator to
31+
interact with the sample application on port `4567`\. `sample-app` resolves to the IP address of the `sample-app` Pod\.
32+
33+
3. Apply `traffic-generator.yaml` to your cluster\.
34+
35+
```
36+
kubectl apply -f traffic-generator.yaml
37+
```
38+
39+
4. Download the `sample-app.yaml` file to your computer\. You can also [view the file](https://github.com/aws-observability/aws-otel-community/blob/master/sample-configs/sample-app.yaml) on GitHub\.
40+
41+
```
42+
curl -O https://raw.githubusercontent.com/aws-observability/aws-otel-community/master/sample-configs/sample-app.yaml
43+
```
44+
45+
5. In `sample-app.yaml`, replace the following with your own AWS Region:
46+
47+
```
48+
value: "<YOUR_AWS_REGION>"
49+
```
50+
51+
The following actions are defined by `sample-app.yaml`:
52+
+ The Service resource configures `port: 4567` to allow HTTP requests for the traffic generator\.
53+
+ The Deployment resource configures some environment variables:
54+
+ The `LISTEN_ADDRESS` is configured to `0.0.0.0:4567` for HTTP requests from the traffic generator\.
55+
+ The `OTEL_EXPORTER_OTLP_ENDPOINT` has a value of `http://my-collector-collector:4317`\. `my-collector-collector` is the name of the
56+
Kubernetes service that allows the sample application to interact with the ADOT Collector on port `4317`\. In the ADOT Collector configuration,
57+
the ADOT Collector receives metrics and traces from an endpoint: `0.0.0.0:4317`\.
58+
59+
6. In `sample-app.yaml`, update the `value` for `OTEL_EXPORTER_OTLP_ENDPOINT` if it doesn't match your collector service name\.
60+
61+
For example, X\-Ray requires replacing `http://my-collector-collector:4317` with `http://my-collector-xray-collector:4317`\.
62+
63+
7. Apply `sample-app.yaml` to your cluster\.
64+
65+
```
66+
kubectl apply -f sample-app.yaml
67+
```
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
title: 'Troubleshooting for ADOT using EKS Add-Ons'
3+
description:
4+
This page presents common troubleshooting for the ADOT EKS Add-on.
5+
path: '/docs/getting-started/adot-eks-add-on/troubleshooting'
6+
---
7+
8+
This topic covers some of the common errors that you might encounter while using the AWS Distro for OpenTelemetry (ADOT) Amazon EKS add-on. The topic also includes instructions on how to resolve or workaround the common errors.
9+
---
10+
### Error: "code": "AccessDenied", "message": "roles.rbac.authorization.k8s.io \"opentelemetry-operator-leader-election-role\" is forbidden: User \"eks:addon-manager\" cannot patch resource \"roles\" in API group \"rbac.authorization.k8s.io\" in the namespace \"opentelemetry-operator-system\"
11+
12+
You don't have permission to install the ADOT for Amazon EKS add-on. See Install the AWS Distro for OpenTelemetry (ADOT) Operator. If you have deleted the add-on and are now reinstalling, make sure that you have applied the required permissions.
13+
14+
### Error: "status": "CREATE_FAILED" or "status": "UPDATE_FAILED"
15+
16+
This can happen due to the following reasons:
17+
- There might be a conflict. You can overwrite conflicts by adding the `--resolve-conflicts=OVERWRITE` flag and running the create command again.
18+
- If you're using an add-on version earlier than v0.51.0, you may be on an unsupported architecture, such as arm64. Consult your logs to determine if this is the case. If so, updating your add-on version may resolve this issue because v0.51.0 and later are multi-arch.
19+
20+
### Delete add-on error: "status": "DELETE_FAILED"
21+
22+
You can remove Amazon EKS management of the ADOT Operator add-on by adding the `--preserve` flag to your aws eks delete-addon command.

src/docs/getting-started/adot-eks-add-on/update-and-cleanup.mdx

Lines changed: 48 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,47 +5,66 @@ description:
55
path: '/docs/getting-started/adot-eks-add-on/update-and-cleanup'
66
---
77

8-
## Updating ADOT using EKS add-ons and Updating the Collector Custom Resource
8+
## Update the AWS Distro for OpenTelemetry \(ADOT\) Operator<a name="adot-update"></a>
99

10-
The ADOT Operator and Collector Custom Resource are periodically updated with new versions. Check for an update of the ADOT Operator version EKS add-ons uses by executing the command
11-
```console
12-
aws eks describe-addon-versions —addon-name adot
13-
```
10+
Amazon EKS does not automatically update ADOT on your cluster\. You must initiate the update and then Amazon EKS updates the Amazon EKS add\-on for you\.
1411

15-
Refer [here](https://docs.aws.amazon.com/eks/latest/userguide/managing-kube-proxy.html) for more information. If a new version is found, update it in your cluster with the command
16-
```console
17-
aws eks update-addon --addon-name adot --addon-version new-addon-version --cluster-name <your_cluster_name>
18-
```
12+
**To update the ADOT Amazon EKS add\-on using the AWS CLI**
1913

20-
After updating the ADOT Operator using EKS add-ons, the Collector CR will also have been updated, as the default ADOT Collector image the ADOT Operator uses will have been updated as well. Reapply the Collector configurations with any changes from the last Collector Custom Resource Definition, if necessary.
14+
1. Check the current version of your ADOT add\-on\. Replace `my-cluster` with your cluster name\.
2115

22-
### Updating ADOT using EKS add-ons advanced configuration feature
16+
```
17+
aws eks describe-addon --cluster-name my-cluster --addon-name adot --query "addon.addonVersion" --output text
18+
```
2319

24-
If you followed steps from [Add-on Advanced Configuration](/docs/getting-started/adot-eks-add-on/add-on-configuration), then you can update ADOT using EKS add-ons advanced configuration feature as well. You can execute the command
25-
```console
26-
aws eks update-addon --addon-name adot --addon-version new-addon-version --cluster-name <your_cluster_name> --configuration-values <your_configuration_values>
27-
```
20+
1. Determine the ADOT versions are available that are supported by your cluster's version\.
2821

29-
Updating the configuration values used by the add-on with a new JSON string will override previously set configuration values. If you would like to reset the configuration values used back to default values, you can use an empty JSON string (`--configuration-values "{}"`).
22+
```
23+
aws eks describe-addon-versions --addon-name adot --kubernetes-version 1.23 \
24+
--query "addons[].addonVersions[].[addonVersion, compatibilities[].defaultVersion]" --output text
25+
```
3026

31-
ADOT can also be updated to a new add-on version alongside updates to configuration values. However, the configuration values must be compatible with the add-on version that ADOT is being updated to; the add-on will not update if those configuration values are not available in the new version.
27+
An example output is as follows\.
3228

33-
## Cleanup of ADOT using EKS Add-ons and Cleanup of Other Components
29+
```
30+
v0.58.0-eksbuild.1
31+
True
32+
v0.56.0-eksbuild.2
33+
False
34+
```
3435

35-
### Delete the Collector resource
36+
The version with `True` underneath is the default version deployed when the add\-on is created\. The version deployed when the add\-on is created might not be the latest available version\. In
37+
the previous output, the latest version is deployed when the add\-on is created\.
3638

37-
You can delete individual services by specifying their YAML:
38-
```console
39-
kubectl delete -f collector-config-(amp|cloudwatch|xray|advanced).yaml
40-
```
39+
1. Update the ADOT version\. Replace `my-cluster` with the name of your cluster and `v0.58.0-eksbuild.1` with the desired version\. Optionally, the `--configuration-values` flag can
40+
be added to deploy an ADOT Collector during add\-on installation\. You may also configure other available values with this flag\.
4141

42-
### Uninstall ADOT using EKS Add-Ons
42+
```
43+
aws eks update-addon --cluster-name my-cluster --addon-name adot --addon-version v0.58.0-eksbuild.1 --resolve-conflicts PRESERVE --configuration-values my-configuration-values
44+
```
4345

44-
```console
45-
aws eks delete-addon --addon-name adot --cluster-name your-cluster-name
46-
```
46+
The *PRESERVE* option preserves any custom settings that you've set for the add\-on\. For more information about other options for this setting, see [update\-addon](https://docs.aws.amazon.com/cli/latest/reference/eks/update-addon.html) in the
47+
Amazon EKS Command Line Reference\. For more information about Amazon EKS add\-on configuration management, see [Kubernetes field management](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-field-management.html)\.
4748

48-
After uninstalling ADOT, before reinstalling you must reinstall permissions first, see [this page](/docs/getting-started/adot-eks-add-on/requirements#adot-requirements).
49+
## Remove the AWS Distro for OpenTelemetry \(ADOT\) Operator<a name="adot-remove"></a>
50+
+ You must delete the ADOT Collector resource separately from the ADOT Collector\. In this command, specify the YAML file that you used to deploy the ADOT Collector:
51+
52+
```
53+
kubectl delete -f collector-config-(amp|cloudwatch|xray|advanced).yaml
54+
```
55+
+ You can remove the ADOT Operator through either the AWS CLI or `eksctl`\. If you remove the ADOT Operator, you must follow the [installation instructions](/docs/getting-started/eks-add-on/installation) again to reinstall:
56+
57+
CLI
58+
59+
```
60+
aws eks delete-addon --addon-name adot --cluster-name my-cluster
61+
```
62+
63+
`eksctl`
64+
65+
```
66+
eksctl delete addon --cluster my-cluster --name adot
67+
```
4968

5069
### Uninstall cert-manager
5170

@@ -60,7 +79,7 @@ To learn more about how you can use ADOT to collect data for your observability
6079

6180
## Troubleshooting Guide
6281

63-
The troubleshooting guide can be found [here](https://docs.aws.amazon.com/eks/latest/userguide/troubleshooting-adot.html).
82+
The troubleshooting guide can be found [here](/docs/getting-started/adot-eks-add-on/troubleshooting).
6483

6584
## Previous Topics:
6685

0 commit comments

Comments
 (0)