1 - 导入阿里云集群
本节描述导入阿里云集群的详细步骤。
前置条件
-
获取阿里云Access Key和Access Key Secret,具备如下权限。具体申请过程请参考创建Access Key。
服务 权限 说明 云服务器(ECS) ecs:DescribeDisks
ecs:DescribeInstances
ecs:DescribeRegions需此权限获取磁盘、实例和地域信息 容器服务Kubernetes版(CS) cs:DescribeClusterNodePools
cs:DescribeClusterNodePoolDetail
cs:DescribeClusters
cs:DescribeClusterUserKubeconfig
cs:DescribeClusterNodes需此权限获取集群、节点池、节点、Kubeconfig等信息 其权限策略文件描述如下,您可以直接在阿里云控制台中导入该策略,具体请参考通过脚本编辑模式创建自定义权限策略
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DescribeDisks", "ecs:DescribeInstances" "ecs:DescribeRegions" ], "Resource": [ "*" ], "Condition": {} }, { "Effect": "Allow", "Action": [ "cs:DescribeClusterNodePools", "cs:DescribeClusterNodePoolDetail", "cs:DescribeClusters", "cs:DescribeClusterUserKubeconfig", "cs:DescribeClusterNodes" ], "Resource": [ "*" ], "Condition": {} } ] } -
阿里云Kubernetes集群Kubeconfig。集群版本1.22及以上,建议使用ACK集群。具体请参见容器服务Kubernetes版。
-
Kubeconfig需具备如下权限。
资源 权限 说明 Node List
Get
Watch获取节点信息 Pod List
Get
Watch获取Pod信息 Namespace List
Get
Watch获取Namespace信息 Service List
Get
Watch获取Service信息 Persistent Volume
Persistent Volume ClaimList
Get
Watch获取Persistent Volume、Persistent Volume Claim信息 Deployment
StatefulSet
DaemonSet
ReplicaSet
ReplicationControllersList
Get
Watch获取Deployment、StatefulSet、DaemonSet、ReplicaSet、ReplicationContoller信息 Job
CronJobList
Get
Watch获取Job和CronJob信息 权限文件如下:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: optimizer rules: - apiGroups: - "" resources: - nodes - pods - pods/status - persistentvolumes - persistentvolumeclaims - services - namespaces verbs: - get - list - watch - apiGroups: - "apps/v1" resources: - deployments - replicasets - replicationcontollers - statefulsets - daemonsets verbs: - get - list - watch - apiGroups: - "batch/v1" resources: - jobs - cronjobs verbs: - get - list - watch - apiGroups: - "storage/v1" resources: - storageclasses verbs: - get - list - watch -
Prometheus监控或者Thanos监控。该监控用于给集群中的节点、容器等提供监控数据。
导入步骤
添加阿里云账号
-
选择
设置菜单,选择云账户标签页即可进入云账户管理页面。默认情况下,该页面将分页展示平台管理的所有云账户,包括名称以及相应的云服务商,同时也提供了操作栏,方便用户进行相应的操作,如下图所示。
云账户管理主页面
Wiseinf Inc. -
在云账户管理页面,点击新增按钮,即可添加云账户,其界面如下所示。在此界面中,用户依次输入云账户名称、选择相应的云服务商、输入Access Key和Access Key Secret,点击确定按钮,即可完成云账户添加。添加完参数后,用户也可以点击测试连通性按钮,测试该云账户是否正确。平台目前支持阿里云,可从云服务商下拉框处进行选择。Access Key和Access Key Secret为访问该云服务的账号信息,请从相应的云服务商处获取。
添加云账户界面
Wiseinf Inc.
添加阿里云集群
-
选择
设置菜单,选择集群标签进入集群管理页面。默认情况下,该页面将分页展示平台管理的所有集群,包括名称、集群ID集群地域、Access Token名称,对应的云服务商以及Prometheus地址,同时也提供了操作栏,方便用户进行相应的操作,如下图所示。
集群管理主页面
Wiseinf Inc. -
点击
导入集群按钮即弹出导入对话框,可在此导入集群。导入集群分为5个步骤,目前仅支持阿里云集群。- 设置阿里云访问凭据
- 连接Kubernetes集群
- 连接Prometheus
- 查看配置
- 完成
-
设置阿里云访问凭据界面如下图所示。在阿里云访问凭据界面,通过使用已有凭据来设置阿里云访问凭据,此处选择
添加阿里云账号中添加的阿里云账号,如下图所示。
导入集群界面-设置阿里云访问凭据
Wiseinf Inc. -
设置完阿里云访问凭据后,点击下一步按钮,即可进入连接Kubernetes集群页面,如下图所示。平台支持连接2种类型的Kubernetes集群,包括托管集群和自建集群。连接托管集群页面如下图所示。此处我们选择托管集群,平台通过云账户自动获取用户集群,用户通过集群下拉框来选择相应的集群、输入描述字段、选择是否使用API Server私网地址、选择是否自动刷新KubeConfig以及KubeConfig生命周期,最后输入节点组标签即可。
连接Kubernetes集群页面
Wiseinf Inc. -
连接Prometheus页面如下图所示。用户在此页面输入信息后,点击下一步按钮进入查看配置页面。输入信息明细如下表所示。
连接Prometheus参数说明如表所示:
连接Prometheus页面
Wiseinf Inc.参数 描述 是否Thanos 若后端集群为Thanos,则应勾选此项。 Prometheus地址 Prometheus地址,必须可访问。 限制访问速率 若需要现在平台对Prometheus的访问速率,则应勾选此项。 最大并发数 平台访问Prometheus的最大并发数。 集群标签 集群标签用于从Prometheus或者Thanos中筛选该集群的监控指标 集群标签值 集群标签值用于从Prometheus或者Thanos中筛选该集群的监控指标 -
查看配置页面如下图所示,该页面显示了阿里云访问凭据、连接Kubernetes集群和连接Prometheus集群的详细参数,方便用户确认。当用户完成确认后,点击导入按钮,即可进入完成页面。
查看配置页面
Wiseinf Inc. -
完成页面如图下图所示,页面将显示提交情况。点击完成,即完成集群导入。
完成页面
Wiseinf Inc.
下一步操作
导入集群完成后,等待一段时间(等待优化策略完成调度和执行),即可查看该集群多个维度的优化建议,包括:
2 - 导入AWS EKS集群
本节描述导入AWS EKS集群的详细步骤。
前置条件
-
需要提供一个Access Key & Secret,其权限策略如下:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Optimizer", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeLaunchTemplates", "ec2:DescribeRegions", "ec2:DescribeVolumes", "ec2:DescribeLaunchTemplateVersions", "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:DescribeCluster", "eks:ListClusters" "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeAutoScalingGroups", ], "Resource": "*" } ] } -
一个Kubernetes集群,版本1.22及以上,推荐使用EKS集群.
-
需要提供一个Kubeconfig,用于访问集群相关信息。其权限要求如下(若仅为开发测试集群,无敏感信息,为简单起见,也可以授予集群的全部只读权限):
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: optimizer rules: - apiGroups: - "" resources: - nodes - pods - pods/status - persistentvolumes - persistentvolumeclaims - services - namespaces verbs: - get - list - watch - apiGroups: - "apps/v1" resources: - deployments - replicasets - replicationcontollers - statefulsets - daemonsets verbs: - get - list - watch - apiGroups: - "batch/v1" resources: - jobs - cronjobs verbs: - get - list - watch - apiGroups: - "storage/v1" resources: - storageclasses verbs: - get - list - watch -
集群所对应的Prometheus/Thanos地址。
-
应用需要能够访问EKS集群和Prometheus/Thanos。
导入 Kuberentes 集群
添加云账号
-
从
设置 --> 云账号进入云账号管理页面,如下图。
云账户管理
Wiseinf Inc. -
单击
新增按钮添加云帐户。 可以输入名称,选择Amazon AWS作为云提供商,然后输入Access Key和Access Key Secret,最后单击确认。
添加云账号
Wiseinf Inc.输入
Access Key和Access Key Secret后,您还可以通过单击底部测试连通性按钮来测试访问凭据是否能够正常连接到云提供商。
导入集群
-
从
设置 --> 集群进入集群管理页面,如下图。
集群管理
Wiseinf Inc. -
单击
导入集群按钮,然后单击AWS云提供商徽标以开始从AWS导入集群。 它包含五个步骤:- 连接AWS
- 连接kubernetes
- 连接Metrics Server
- 查看配置
- 完成
-
在
连接AWS步骤中,选择使用已有凭据,选择添加云帐户部分中创建的云帐户,如下图。
导入集群:连接到 AWS
Wiseinf Inc.然后单击
下一步按钮转到连接kubernetes步骤。 -
在
连接kubernetes步骤中,选择Managed cluster,如下图。 先选择
导入集群:连接kubernetes集群
Wiseinf Inc.地域,然后选择集群,然后输入以下配置项:配置项 描述 描述集群描述 使用私有API Server私有地址是否使用私有API Server地址。 Kubeconfig连接到集群的Kubeconfig。 自动刷新Kubeconfig是否自动刷新kubeconfig。 节点组标签用于标识节点所属的节点组。 对于EKS,默认值为 eks.amazonaws.com/nodegroup。注意:鉴于平台不使用AWS客户端来获取用户身份验证信息,如果您的
Kubeconfig配置项中获取用户身份信息依赖于aws get token命令,则必须启用自动刷新 Kubeconfig。这确保了平台动态获取用户身份验证详细信息。然后单击
下一步按钮转到连接Metrics服务步骤。 -
在
连接Metrics服务步骤中,输入以下配置项,如下所示。配置项 描述 是否Thanos若Metrics Server是 Thanos,则应选中此项。 Metrics服务地址Metrics服务器地址,目前支持Prometheus和Thanos。 限制访问速率是否取用到Metrics服务地址的访问速率限制。 最大并发数指定访问Metrics服务地址的最大并发数。 集群标签用作标签名称,用于从Metrics服务过滤集群的指标。 集群标签值用作标签值,用于从Metrics服务过滤集群的指标。
导入集群:连接Metrics服务
Wiseinf Inc.然后单击
下一步按钮转到查看配置步骤。 -
在
查看配置步骤中,显示连接AWS、连接Kubernetes、连接Metrics服务的配置。您可以检查配置是否符合预期。 确认这些配置后,您可以单击
导入集群:查看配置
Wiseinf Inc.导入按钮转到完成步骤。 -
在
完成步骤中,会显示提交状态,如下图。 当提交状态显示集群已导入时,您可以点击完成按钮。
导入集群:完成
Wiseinf Inc.
下一步
导入集群后,您可以查看集群多个方面的优化建议,包括: