

 **帮助改进此页面** 

要帮助改进本用户指南，请选择位于每个页面右侧窗格中的**在 GitHub 上编辑此页面**链接。

# 社区附加组件
<a name="community-addons"></a>

您可以使用 Amazon API 来安装社区附加组件，例如 Kubernetes Metrics Server。您可以选择将社区附加组件作为 Amazon EKS 附加组件安装，以降低在多个集群上维护软件的复杂性。

例如，您可以使用 Amazon API、CLI 或管理控制台来安装社区附加组件。您可以在创建集群的过程中安装社区附加组件。

您可以像管理现有 Amazon EKS 附加组件一样管理社区附加组件。社区附加组件与现有附加组件的不同之处在于，社区附加组件具有独特的支持范围。

**注意**  
是否使用社区附加组件由您自行决定。根据您与 Amazon 之间的[责任共担模式](security.md)，对于这些第三方插件，您需要自行了解将在您的集群中具体安装什么。此外，您还负责确保社区附加组件满足您的集群安全需求。有关更多信息，请参阅 [支持部署到 EKS 的软件](related-projects.md#oss-scope)。

社区附加组件并非由 Amazon 构建。Amazon 仅验证社区附加组件的版本兼容性。例如，如果您在集群上安装了社区附加组件，则 Amazon 会检查其是否与集群的 Kubernetes 版本兼容。

但应注意，Amazon 并不为社区附加组件提供全面支持。Amazon 仅支持使用 Amazon API 完成的生命周期操作，例如安装附加组件或删除附加组件。

如果您需要对某个社区附加组件的支持，请利用现有的项目资源。例如，您可以在项目的存储库上创建 GitHub 问题。

## 确定附加组件类型
<a name="_determine_add_on_type"></a>

您可以使用 Amazon CLI 来确定 Amazon EKS 附加组件的类型。

使用以下 CLI 命令检索附加组件的详细信息。您可以将 `metrics-server` 替换为任何附加组件的名称。

```
aws eks describe-addon-versions --addon-name metrics-server
```

检查 CLI 输出的 `owner` 字段。

```
{
    "addons": [
        {
            "addonName": "metrics-server",
            "type": "observability",
            "owner": "community",
            "addonVersions": [
```

如果 `owner` 的值为 `community`，则该附加组件就是社区附加组件。Amazon 仅支持安装、更新和移除附加组件。如果您对附加组件本身的功能和操作有疑问，请使用 GitHub 问题等社区资源。

## 安装或更新社区附加组件
<a name="_install_or_update_community_add_on"></a>

您可以像安装或更新其他 Amazon EKS 附加组件一样安装或更新社区附加组件。
+  [创建 Amazon EKS 附加组件](creating-an-add-on.md) 
+  [更新 Amazon EKS 附加组件](updating-an-add-on.md) 
+  [从集群中移除 Amazon EKS 附加组件](removing-an-add-on.md) 

## 可用的社区附加组件
<a name="_available_community_add_ons"></a>

Amazon EKS 提供了以下社区附加组件。
+  [Kubernetes Metrics Server](#kubernetes-metrics-server) 
+  [kube-state-metrics](#kube-state-metrics) 
+  [Prometheus Node Exporter](#prometheus-node-exporter) 
+  [Cert Manager](#addon-cert-manager) 
+  [External DNS](#external-dns) 
+  [Fluent Bit](#fluent-bit) 

### Kubernetes Metrics Server
<a name="kubernetes-metrics-server"></a>

Kubernetes Metrics Server 是 Kubernetes 内置自动扩缩管道的高效可扩展的容器资源指标来源。该附加组件会从 Kubelets 收集资源指标，并通过指标 API 在 Kubernetes apiserver 中公开这些指标，供 Horizontal Pod Autoscaler 和 Vertical Pod Autoscaler 使用。


| 属性 | 值 | 
| --- | --- | 
|  附加组件名称  |   `metrics-server`   | 
|  命名空间  |   `kube-system`   | 
|  文档  |   [GitHub Readme](https://github.com/kubernetes-sigs/metrics-server)   | 
|  服务账户名称  |  无  | 
|  托管 IAM policy  |  无  | 
|  自定义 IAM 权限  |  无  | 

### kube-state-metrics
<a name="kube-state-metrics"></a>

用于生成和公开集群级别指标的附加组件代理。

Kubernetes API 中 Kubernetes 对象的状态可以作为指标公开。名为 kube-state-metrics 的附加组件代理可以连接到 Kubernetes API 服务器，并公开一个 HTTP 端点，其中包含根据集群中单个对象的状态生成的指标。它会公开有关对象状态的各种信息，例如标签和注释、启动和终止时间、状态或对象当前所处的阶段。


| 属性 | 值 | 
| --- | --- | 
|  附加组件名称  |   `kube-state-metrics`   | 
|  命名空间  |   `kube-state-metrics`   | 
|  文档  |   Kubernetes 文档中的 [Kubernetes 对象状态的指标](https://kubernetes.io/docs/concepts/cluster-administration/kube-state-metrics/)  | 
|  服务账户名称  |  无  | 
|  托管 IAM policy  |  无  | 
|  自定义 IAM 权限  |  无  | 

### Prometheus Node Exporter
<a name="prometheus-node-exporter"></a>

Prometheus 导出器，用于由 \$1NIX 内核公开的硬件和操作系统指标，用 Go 编写，带有可插拔的指标收集器。Prometheus Node Exporter 会公开各种与硬件和内核相关的指标。


| 属性 | 值 | 
| --- | --- | 
|  附加组件名称  |   `prometheus-node-exporter`   | 
|  命名空间  |   `prometheus-node-exporter`   | 
|  文档  |   Prometheus 文档中的 [Monitoring Linux host metrics with the Node Exporter](https://prometheus.io/docs/guides/node-exporter/#monitoring-linux-host-metrics-with-the-node-exporter)  | 
|  服务账户名称  |  无  | 
|  托管 IAM policy  |  无  | 
|  自定义 IAM 权限  |  无  | 

### Cert Manager
<a name="addon-cert-manager"></a>

Cert Manager 可用于管理证书的创建和续订。


| 属性 | 值 | 
| --- | --- | 
|  附加组件名称  |   `cert-manager`   | 
|  命名空间  |   `cert-manager`   | 
|  文档  |   [Cert Manager 文档](https://cert-manager.io/docs/)   | 
|  服务账户名称  |  无  | 
|  托管 IAM policy  |  无  | 
|  自定义 IAM 权限  |  无  | 

### External DNS
<a name="external-dns"></a>

External DNS EKS 附加组件可用于通过 Kubernetes 资源管理 Route53 DNS 记录。

External DNS 权限可以限定为您要管理的托管区 上的 `route53:ChangeResourceRecordSets`、`route53:ListHostedZones` 和 `route53:ListResourceRecordSets`。


| 属性 | 值 | 
| --- | --- | 
|  附加组件名称  |   `external-dns`   | 
|  命名空间  |   `external-dns`   | 
|  文档  |   [GitHub Readme](https://github.com/kubernetes-sigs/external-dns)   | 
|  服务账户名称  |   `external-dns`   | 
|  托管 IAM policy  |   ` arn:aws-cn:iam::aws:policy/AmazonRoute53FullAccess`   | 
|  自定义 IAM 权限  |  无  | 

### Fluent Bit
<a name="fluent-bit"></a>

Fluent Bit 是一款轻量级且高性能的日志处理器和转发器。它允许您从不同的来源收集数据/日志，对其进行统一，然后将其发送到多个目标，包括 Amazon CloudWatch Logs、Amazon S3 和 Amazon Data Firehose。Fluent Bit 在设计时考虑了性能和资源效率，使其非常适合 Kubernetes 环境。

此附加组件在默认配置中无需 IAM 权限。但是，如果您配置 Amazon 输出位置，则可能需要授予此附加组件 IAM 权限。有关更多信息，请参阅 [使用容器组身份将 IAM 角色分配给 Amazon EKS 附加组件](update-addon-role.md)。


| 属性 | 值 | 
| --- | --- | 
|  附加组件名称  |   `fluent-bit`   | 
|  命名空间  |   `fluent-bit`   | 
|  文档  |   [Fluent Bit 文档](https://docs.fluentbit.io/manual/)   | 
|  服务账户名称  |   `fluent-bit`   | 
|  托管 IAM policy  |  无  | 
|  自定义 IAM 权限  |  无  | 

## 查看归因
<a name="_view_attributions"></a>

您可以下载社区附加组件的开源署名和许可证信息。

1. 确定要下载归因的附加组件名称和版本。

1. 使用名称和版本更新以下命令：

   ```
   curl -O https://amazon-eks-docs.s3.amazonaws.com/attributions/<add-on-name>/<add-on-version>/attributions.zip
   ```

   例如：

   ```
   curl -O https://amazon-eks-docs.s3.amazonaws.com/attributions/kube-state-metrics/v2.14.0-eksbuild.1/attributions.zip
   ```

1. 使用命令下载文件。

使用此 zip 文件查看有关许可证归因的信息。