diff --git a/content/zh/docs/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks.md b/content/zh/docs/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks.md index 4ef0dd547..43d4c8160 100644 --- a/content/zh/docs/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks.md +++ b/content/zh/docs/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks.md @@ -1,89 +1,109 @@ --- -title: "Deploy KubeSphere on AWS EKS" -keywords: 'Kubernetes, KubeSphere, EKS, Installation' -description: 'How to install KubeSphere on EKS' +title: "在 AWS EKS 上部署 KubeSphere" +keywords: 'Kubernetes, KubeSphere, EKS, 安装' +description: '介绍如何在 AWS EKS 上部署 KubeSphere' weight: 2265 --- -This guide walks you through the steps of deploying KubeSphere on [AWS EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html). -## Install the AWS CLI -Tht aws EKS does not have a web terminal like GKE, so we must install aws cli first. Take a example for macOS and other operating system can according [Getting Started EKS](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html) +本指南将介绍如何在 [AWS EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) 上部署 KubeSphere。 + +## 安装 AWS CLI +AWS EKS 没有像 GKE CloudShell 这样的 Web 终端,因此我们必须先安装 aws cli。下面以 linux 为例,macOS 和其他操作系统可参考 [EKS入门](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html) 。 ```shell -pip3 install awscli --upgrade --user +curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" +unzip awscliv2.zip +sudo ./aws/install ``` -Check it with `aws --version` -![check-aws-cli](/images/docs/eks/check-aws-cli.png) -## Prepare a EKS Cluster +使用`aws --version`检查安装版本 -- A standard Kubernetes cluster in AWS is a prerequisite of installing KubeSphere. Go to the navigation menu and refer to the image below to create a cluster. +```shell +# aws --version +aws-cli/2.1.2 Python/3.7.3 Linux/4.18.0-193.6.3.el8_2.x86_64 exe/x86_64.centos.8 +``` -![create-cluster-eks](/images/docs/eks/eks-launch-icon.png) +## 准备 EKS 集群 -- On the Configure cluster page, fill in the following fields: -![config-cluster-page](/images/docs/eks/config-cluster-page.png) +- 在 AWS 上创建一个标准的 Kubernetes 集群是安装 KubeSphere 的前提条件, 转到导航菜单,然后参考下图创建集群。 - - Name – A unique name for your cluster. + ![create-cluster-eks](/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/eks-launch-icon.png) - - Kubernetes version – The version of Kubernetes to use for your cluster. +- 在"配置集群"页面,配置以下集群信息: - - Cluster service role – Select the IAM role that you created with [Create your Amazon EKS cluster IAM role](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html#role-create). + ![config-cluster-page](/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/config-cluster-page.png) + 配置选项说明: + - 名称–集群的唯一名称。 - - Secrets encryption – (Optional) Choose to enable envelope encryption of Kubernetes secrets using the AWS Key Management Service (AWS KMS). If you enable envelope encryption, the Kubernetes secrets are encrypted using the customer master key (CMK) that you select. The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK. For more information, see [Allowing users in other accounts to use a CMK](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) in the AWS Key Management Service Developer Guide. + - Kubernetes 版本– 指定创建集群的 Kubernetes 版本。 - - Kubernetes secrets encryption with an AWS KMS CMK requires Kubernetes version 1.13 or later. If no keys are listed, you must create one first. For more information, see [Creating keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html). + - 集群服务角色–选择通过[创建 Amazon EKS 集群 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html#role-create)创建的 IAM 角色。 - - Tags – (Optional) Add any tags to your cluster. For more information, see [Tagging your Amazon EKS resources](https://docs.aws.amazon.com/eks/latest/userguide/eks-using-tags.html). + - Secrets 加密–(可选)选择使用 AWS 密钥管理服务( AWS KMS )启用 Kubernetes secrets 的信封加密。如果启用信封加密,Kubernetes secrets 将使用您选择的客户主密钥(CMK)进行加密。CMK 必须是对称的,在与集群相同的区域中创建,如果 CMK 是在不同的帐户中创建的,则用户必须有权访问 CMK。有关详细信息,请在 AWS 密钥管理服务开发人员指南中参阅 [允许其他帐户中的用户使用CMK](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)。 -- Select Next. + - 使用 AWS KMS CM 进行 Kubernetes 秘钥加密需要 Kubernetes 1.13 或更高版本。如果密钥不存在,则必须先创建一个。有关更多信息,请参见[创建密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。 - - On the Specify networking page, select values for the following fields: - ![network](/images/docs/eks/networking.png) + - 标签–(可选)将所有标签添加到您的集群。有关更多信息,请参阅[标记 Amazon EKS 资源](https://docs.aws.amazon.com/eks/latest/userguide/eks-using-tags.html)。 - - VPC – The VPC that you created previously in [Create your Amazon EKS cluster VPC](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html#vpc-create). You can find the name of your VPC in the drop-down list. - - Subnets – By default, the available subnets in the VPC specified in the previous field are preselected. Select any subnet that you don't want to host cluster resources, such as worker nodes or load balancers. +- 选择下一步。 - - Security groups – The SecurityGroups value from the AWS CloudFormation output that you generated with [Create your Amazon EKS cluster VPC](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html#vpc-create). This security group has ControlPlaneSecurityGroup in the drop-down name. -- For Cluster endpoint access – Choose one of the following options: -![endpoints](/images/docs/eks/endpoints.png) - - Public – Enables only public access to your cluster's Kubernetes API server endpoint. Kubernetes API requests that originate from outside of your cluster's VPC use the public endpoint. By default, access is allowed from any source IP address. You can optionally restrict access to one or more CIDR ranges such as 192.168.0.0/16, for example, by selecting Advanced settings and then selecting Add source. + - 在“指定联网”页面上,为以下字段选择值: + ![network](/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/networking.png) - - Private – Enables only private access to your cluster's Kubernetes API server endpoint. Kubernetes API requests that originate from within your cluster's VPC use the private VPC endpoint. + - VPC –您之前在[创建 Amazon EKS 集群 VPC](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html#vpc-create) 中创建的 VPC 。您可以在下拉列表中找到 VPC 的名称。 - > Important - If you created a VPC without outbound internet access, then you must enable private access. + - 子网–默认情况下,上一字段中指定的 VPC 中的可用子网是预选的。选择您不想承载集群资源的任何子网,例如工作程序节点或负载平衡器。 - - Public and private – Enables public and private access. -- Select Next. -![logging](/images/docs/eks/logging.png) - - On the Configure logging page, you can optionally choose which log types that you want to enable. By default, each log type is Disabled. For more information, see [Amazon EKS control plane logging](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html). + - 安全组–通过[创建 Amazon EKS 集群 VPC](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html#vpc-create) 中生成的 AWS CloudFormation 输出的 SecurityGroups 值。该安全组在下拉名称中具有 `ControlPlaneSecurityGroup`。 -- Select Next. -![revies](/images/docs/eks/review.png) - - On the Review and create page, review the information that you entered or selected on the previous pages. Select Edit if you need to make changes to any of your selections. Once you're satisfied with your settings, select Create. The Status field shows CREATING until the cluster provisioning process completes. -For more information about the previous options, see Modifying cluster endpoint access. -When your cluster provisioning is complete (usually between 10 and 15 minutes), note the API server endpoint and Certificate authority values. These are used in your kubectl configuration. -![creating](/images/docs/eks/creating.png) -- Create **Node Group**, define 2 nodes in this cluster. - ![node-group](/images/docs/eks/node-group.png) -- Config node group - ![config-node-group](/images/docs/eks/config-node-grop.png) +- 对于集群 `endpoints` 访问–选择以下选项之一: + + ![endpoints](/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/endpoints.png) + + - 公有-仅启用对集群的 Kubernetes API server 端点的公共访问。来自集群 VPC 外部的 Kubernetes API 请求使用公共端点。默认情况下,允许从任何源 IP 地址进行访问。您可以选择限制访问一个或多个 CIDR 范围,例如 192.168.0.0/16,例如,选择“高级设置”,然后选择“添加源”。 + + - 私有-仅启用对集群的 Kubernetes API server端点的专用访问。来自集群 VPC 内部的 Kubernetes API 请求使用私有 VPC 端点。 + + > 重要说明: + 如果创建的 VPC 没有出站 Internet 访问,则必须启用私有访问。 + + - 公有和私有-启用公有和私有访问。 +- 选择下一步。 + + - 在“配置日志记录”页面上,可以选择要启用的日志类型。默认情况下,每种日志类型均为“禁用”。有关更多信息,请参阅[Amazon EKS 控制平面日志记录](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)。 + ![logging](/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/logging.png) + +- 选择下一步。 + ![revies](/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/review.png) + +- 在“查看和创建”页面上,查看在之前页面上输入或选择的信息。如果需要更改任何选择,请选择“编辑”。对设置满意后,选择创建。状态字段显示“正在创建”,直到群集设置过程完成。有关先前选项的更多信息,请参阅修改集群端点访问。集群配置完成后(通常在10到15分钟之间),请记下 API server 端点和证书颁发机构值。这些将在您的 kubectl 配置中使用。 + ![creating](/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/creating.png) + +- 添加节点组,在此集群中定义 3 个节点。 + + ![node-group](/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/node-group.png) + +- 配置节点组,注意创建[节点角色](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html)。 + + ![config-node-group](/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/config-node-grop.png) {{< notice note >}} -- Supported Kubernetes versions for KubeSphere 3.0.0: 1.15.x, 1.16.x, 1.17.x, 1.18.x. -- Ubuntu is used for the operating system here as an example. For more information on supported systems, see Overview. -- 3 nodes are included in this example. You can add more nodes based on your own needs especially in a production environment. -- The machine type t3.medium (2 vCPU, 4GB memory) is for minimal installation. If you want to enable pluggable components or use the cluster for production, please select a machine type with more resources. -- For other settings, you can change them as well based on your own needs or use the default value. + +KubeSphere 3.0.0 支持的 Kubernetes 版本:1.15.x,1.16.x,1.17.x,1.18.x。 +- 这里以 Ubuntu 为操作系统。有关支持的系统的更多信息,请参见概述。 +- 此示例中包括 3 个节点。您可以根据自己的需求添加更多节点,尤其是在生产环境中。 +- t3.medium(2个vCPU,4GB内存)机器类型仅用于最小化安装。如果要启用可插拔组件或将群集用于生产,请选择具有更多资源的机器类型。 +- 对于其他设置,您也可以根据自己的需要进行更改,也可以使用默认值。 {{}} -- When the EKS cluster is ready, you can connect to the cluster with kubectl. -## configure kubectl -We will uses the kubectl command-line utility for communicating with the cluster API server. Firstly, we should get the kubeconfig of the eks cluster which created just now. -- Configure your AWS CLI credentials +- 当 EKS 集群准备就绪时,您可以使用 kubectl 连接到集群。 +## 配置 kubectl + +我们将使用 kubectl 命令行实用程序与集群 API Server 进行通信。首先,我们应该获取刚刚创建的eks集群的kubeconfig。 + +- 配置您的 AWS CLI 凭证 ```shell $ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE @@ -91,43 +111,42 @@ AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: region-code Default output format [None]: json ``` -- To create your kubeconfig file with the AWS CLI +- 使用 AWS CLI 创建 kubeconfig 文件 ```shell aws eks --region us-west-2 update-kubeconfig --name cluster_name ``` - - By default, the resulting configuration file is created at the default kubeconfig path (.kube/config) in your home directory or merged with an existing kubeconfig at that location. You can specify another path with the --kubeconfig option. + - 默认情况下,生成的配置文件在主目录中的默认 kubeconfig 路径(.kube/config)中创建,或与该位置处的现有 kubeconfig 合并。您可以使用 –kubeconfig 选项指定其他路径。 - - You can specify an IAM role ARN with the --role-arn option to use for authentication when you issue kubectl commands. Otherwise, the IAM entity in your default AWS CLI or SDK credential chain is used. You can view your default AWS CLI or SDK identity by running the aws sts get-caller-identity command. + - 您可以使用 –role-arn 选项指定 IAM 角色 ARN ,以在执行 kubectl 命令时用于身份验证。否则,将使用默认 AWS CLI 或 SDK 证书链中的 IAM 实体。您可以通过运行 aws sts get-caller-identity 命令查看默认的 AWS CLI 或 SDK 身份。 -For more information, see the help page with the aws eks update-kubeconfig help command or see update-kubeconfig in the [AWS CLI Command Reference](https://docs.aws.amazon.com/eks/latest/userguide/security_iam_id-based-policy-examples.html). -- Test your configuration. +有关更多信息,请参阅带有 aws eks update-kubeconfig help 命令的帮助页面,或参阅[AWS CLI命令参考](https://docs.aws.amazon.com/eks/latest/userguide/security_iam_id-based-policy-examples.html)中的update-kubeconfig 。 + +- 测试您的配置。 ```shell kubectl get svc ``` -## Install KubeSphere on EKS +## 在EKS上安装KubeSphere -- Install KubeSphere using kubectl. The following command is only for the default minimal installation. +- 使用 kubectl 安装 KubeSphere 。以下命令仅用于默认的最小安装。 ```bash kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/kubesphere-installer.yaml ``` -![minimal-install](/images/docs/eks/minimal-install.png) -- Create a local cluster-configuration.yaml. +- 创建一个本地 cluster-configuration.yaml。 ```shell kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/cluster-configuration.yaml ``` -![config-install](/images/docs/eks/config-install.png) -- Inspect the logs of installation: +- 检查安装日志: ```bash kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f ``` -- When the installation finishes, you can see the following message: +- 安装完成后,您会看到以下消息: ```bash ##################################################### @@ -146,27 +165,54 @@ NOTES: https://kubesphere.io 2020-xx-xx xx:xx:xx ``` -## Access KubeSphere Console +## 访问 KubeSphere 控制台 -Now that KubeSphere is installed, you can access the web console of KubeSphere by following the step below. +现在已经安装了 KubeSphere ,您可以按照以下步骤访问 KubeSphere 的 Web 控制台。 -- Select the service **ks-console**. +- 查看 ks-console 服务。 ```shell -kubectl get svc -nkubesphere-system +kubectl get svc -n kubesphere-system ``` -- `kubectl edit ks-console` and change the type from `NodePort` to `LoadBalancer`. Save the file when you finish. -![loadbalancer](/images/docs/eks/loadbalancer.png) +- 执行 `kubectl edit ks-console` 将 service 类型从 `NodePort` 更改为 `LoadBalancer` ,完成后保存文件。 -- `kubectl get svc -nkubesphere-system` and get your external ip - ![external-ip](/images/docs/eks/external-ip.png) +```shell +# kubectl edit svc ks-console -n kubesphere-system +...... +spec: + clusterIP: 10.100.160.240 + externalTrafficPolicy: Cluster + ports: + - name: nginx + nodePort: 30880 + port: 80 + protocol: TCP + targetPort: 8000 + selector: + app: ks-console + tier: frontend + version: v3.0.0 + sessionAffinity: None + type: LoadBalancer +``` -- Access the web console of KubeSphere using the external-ip generated by EKS. +- 执行 `kubectl get svc -n kubesphere-system` 获取您的 EXTERNAL-IP +```shell +# kubectl get svc -n kubesphere-system +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +ks-apiserver ClusterIP 10.100.108.212 80/TCP 6m28s +ks-console LoadBalancer 10.100.160.240 ad107c54ee456744c91c8da0b9321f2c-1235661477.ap-east-1.elb.amazonaws.com 80:30880/TCP 6m25s +ks-controller-manager ClusterIP 10.100.126.96 443/TCP 6m28s +openldap ClusterIP None 389/TCP 6m54s +redis ClusterIP 10.100.218.34 6379/TCP 6m59s +``` -- Log in the console with the default account and password (`admin/P@88w0rd`). In the cluster overview page, you can see the dashboard as shown in the following image. +- 使用 EKS 生成的 external-ip 访问 KubeSphere 的 Web 控制台。 -![gke-cluster](https://ap3.qingstor.com/kubesphere-website/docs/gke-cluster.png) +- 使用默认帐户和密码(admin/P@88w0rd)登录控制台。在集群概述页面中,您可以看到如下图所示的仪表板。 -## Enable Pluggable Components (Optional) +![gke-cluster](/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/gke-cluster.png) -The example above demonstrates the process of a default minimal installation. To enable other components in KubeSphere, see [Enable Pluggable Components](../../../pluggable-components/) for more details. +## 启用可插拔组件(可选) + +上面的示例演示了默认的最小安装过程。要在 KubeSphere 中启用其他组件,请参阅[启用可插拔组件](../../../pluggable-components/)以获取更多详细信息。 diff --git a/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/config-cluster-page.png b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/config-cluster-page.png new file mode 100644 index 000000000..f9cd1e6d1 Binary files /dev/null and b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/config-cluster-page.png differ diff --git a/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/config-node-grop.png b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/config-node-grop.png new file mode 100644 index 000000000..892548383 Binary files /dev/null and b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/config-node-grop.png differ diff --git a/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/creating.png b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/creating.png new file mode 100644 index 000000000..16131d0a9 Binary files /dev/null and b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/creating.png differ diff --git a/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/eks-launch-icon.png b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/eks-launch-icon.png new file mode 100644 index 000000000..75211a1fd Binary files /dev/null and b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/eks-launch-icon.png differ diff --git a/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/endpoints.png b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/endpoints.png new file mode 100644 index 000000000..4c3a8df5b Binary files /dev/null and b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/endpoints.png differ diff --git a/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/gke-cluster.png b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/gke-cluster.png new file mode 100644 index 000000000..e5b2c903b Binary files /dev/null and b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/gke-cluster.png differ diff --git a/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/logging.png b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/logging.png new file mode 100644 index 000000000..bf2203dc0 Binary files /dev/null and b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/logging.png differ diff --git a/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/networking.png b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/networking.png new file mode 100644 index 000000000..41977a005 Binary files /dev/null and b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/networking.png differ diff --git a/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/node-group.png b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/node-group.png new file mode 100644 index 000000000..3904a3b77 Binary files /dev/null and b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/node-group.png differ diff --git a/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/review.png b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/review.png new file mode 100644 index 000000000..1717e0c54 Binary files /dev/null and b/static/images/docs/zh-cn/installing-on-kubernetes/hosted-kubernetes/install-kubesphere-on-eks/review.png differ