Amazon EKS 集成¶
Amazon Elastic Kubernetes Services (Amazon EKS) 是一项托管容器服务,用于在 AWS 云中运行和扩展 Kubernetes 应用程序。 DataKit 为 Amazon EKS 集群提供按命名空间、集群、Pod 不同维度的可观测。客户可以使用现有的 AWS 支持协议来获取支持。
架构图¶
部署 Datakit¶
使用 Amazon EKS addon 在 Amazon EKS 集群上部署 Datakit.
前置条件¶
- 在 AWS 市场上订阅 Guance Container Agent 。
- 您有权访问 Amazon EKS 集群 。
- 你需要提前获取
DK_DATAWAY
, 您还可以按照以下说明获取:
- 搜索插件
首先,在 Amazon EKS 控制台中,转到您的 EKS 集群,并在「Add-ons」选项卡中选择「Get more add-ons」,
在现有 EKS 集群的集群设置中查找新的第三方 EKS 附加组件。并搜索 datakit
,选择 「Guance Container Agent」,下一步。
- 确认安装 选择最新的版本安装。
配置 DataKit¶
设置 token
环境变量:
将 token 加入到 env-dataway
secrets 中:
envDataway=$(echo -n "$token" | base64)
kubectl patch secret env-dataway -p "{\"data\": {\"datawayUrl\": \"$envDataway\"}}" -n datakit
重启 DataKit:
验证部署¶
- 获取部署状态
期望输出结果:
- 观测云平台验证
使用 Helm 在 Amazon EKS 集群上部署 Datakit¶
前置条件¶
- 安装以下工具:Helm 3.7.1, kubectl 和 AWS CLI 。
- 您有权访问 Amazon EKS 集群 。
- 你需要提前获取
DK_DATAWAY
, 您还可以按照以下说明获取:
登录 ECR 仓库¶
export HELM_EXPERIMENTAL_OCI=1
aws ecr get-login-password \
--region us-east-1 | helm registry login \
--username AWS \
--password-stdin 709825985650.dkr.ecr.us-east-1.amazonaws.com
Helm 安装(升级) DataKit¶
注意事项
Helm 版本必须是 3.7.1
datakit.datawayUrl
必须要修改。
helm upgrade -i datakit oci://709825985650.dkr.ecr.us-east-1.amazonaws.com/guance/datakit-charts --version 1.23.5 \
--create-namespace -n datakit
期望输出结果:
Release "datakit" does not exist. Installing it now.
Warning: chart media type application/tar+gzip is deprecated
Pulled: 709825985650.dkr.ecr.us-east-1.amazonaws.com/guance/datakit-charts:1.23.5
Digest: sha256:04ce9e0419d8f19898a5a18cda6c35f0ff82cf63e0d95c8693ef0a37ce9d8348
NAME: datakit
LAST DEPLOYED: Fri Jan 12 14:50:07 2024
NAMESPACE: datakit
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace datakit -l "app.kubernetes.io/name=datakit,app.kubernetes.io/instance=datakit" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace datakit $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:9527 to use your application"
kubectl --namespace datakit port-forward $POD_NAME 9527:$CONTAINER_PORT
配置 DataKit¶
设置 token
环境变量:
将 token 加入到 env-dataway
secrets 中:
envDataway=$(echo -n "$token" | base64)
kubectl patch secret env-dataway -p "{\"data\": {\"datawayUrl\": \"$envDataway\"}}" -n datakit
重启 DataKit:
验证部署¶
- 获取部署状态
期望输出结果:
- 观测云平台验证