认证
此提供商需要身份验证。
- region: EKS 集群所在的 AWS 区域(必需:True,敏感:False)
- cluster_name: EKS 集群名称(必需:True,敏感:False)
- access_key: AWS 访问密钥(如果在 EC2 上使用 IAM 角色则留空)(必需:False,敏感:True)
- secret_access_key: AWS 秘密访问密钥(如果在 EC2 上使用 IAM 角色则留空)(必需:False,敏感:True)
某些范围可能需要才能通过提供商执行特定操作或查询。以下是相关范围及其用例的摘要:
- eks:DescribeCluster: 需要获取集群信息(强制)(文档)
- eks:ListClusters: 需要列出可用集群(强制)(文档)
- pods:delete: 删除/重启 pod 所需(文档)
- deployments:scale: 扩展 deployments 所需(文档)
- pods:list: 列出 pod 所需(文档)
- pods:get: 获取 pod 详情所需(文档)
- pods:logs: 获取 pod 日志所需(文档)
在工作流中
此提供商可用于工作流。
作为"步骤"来查询数据,示例:
yaml
steps:
- name: Query eks
provider: eks
config: "{{ provider.my_provider_name }}"
with:
command_type: {value} # 要执行的查询类型
# 查询的附加参数请查看以下工作流示例:
提供商方法
get_pods 列出命名空间中的所有 pod 或所有命名空间中的 pod(视图,范围:pods:list, pods:get)
namespace: 要列出 pod 的命名空间。如果为 None,列出所有命名空间中的 pod。
get_pvc 列出命名空间中的所有 PVC 或所有命名空间中的 PVC(视图,范围:pods:list)
namespace: 要列出 pod 的命名空间。如果为 None,列出所有命名空间中的 pod。
get_node_pressure 获取所有节点的压差指标(视图,范围:pods:list)
exec_command 在 pod 中执行命令(操作,范围:pods:exec)
namespace: pod 的命名空间pod_name: pod 的名称command: 要执行的命令(字符串或数组)container: 容器名称(可选,默认为第一个容器)
restart_pod 通过删除来重启 pod(操作,范围:pods:delete)
namespace: pod 的命名空间pod_name: pod 的名称
get_deployment 获取 deployment 信息(视图,范围:pods:list)
deployment_name: 要获取的 deployment 名称namespace: 目标命名空间(默认为"default")
scale_deployment 将 deployment 扩展到指定副本数(操作,范围:deployments:scale)
deployment_name: 要获取的 deployment 名称namespace: 目标命名空间(默认为"default")replicas: 要扩展到的副本数
get_pod_logs 从 pod 获取日志(视图,范围:pods:logs)
namespace: pod 的命名空间pod_name: pod 的名称container: 容器名称(可选)tail_lines: 从日志末尾获取的行数(默认:100)
连接 Provider
要连接到 Amazon EKS,请按照以下步骤操作:
登录您的 AWS Console。
创建一个具有 EKS 权限的 IAM 用户:
bash
aws iam create-user --user-name eks-user- 附加所需的策略:
bash
aws iam attach-user-policy --user-name eks-user --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy
aws iam attach-user-policy --user-name eks-user --policy-arn arn:aws:iam::aws:policy/AmazonEKSServicePolicy- 创建访问密钥:
bash
aws iam create-access-key --user-name eks-user您应该得到:
{
"AccessKey": {
"AccessKeyId": "AKIAXXXXXXXXXXXXXXXX",
"SecretAccessKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Status": "Active"
}
}AccessKeyId 是您的 access_key,SecretAccessKey 是您的 secret_access_key。
- 从 EKS 控制台或使用以下命令记下您的集群名称和区域:
bash
aws eks list-clusters --region <your-region>所需权限
AWS IAM 用户需要以下权限:
- eks:DescribeCluster
- eks:ListClusters
特定操作的其他权限:
- eks:AccessKubernetesApi 用于 pod/deployment 操作
- eks:UpdateCluster 用于扩展操作
| 命令 | AWS IAM 权限 |
|---|---|
get_pods | eks:DescribeCluster eks:AccessKubernetesApi |
get_pvc | eks:DescribeCluster eks:AccessKubernetesApi |
get_node_pressure | eks:DescribeCluster eks:AccessKubernetesApi |
get_deployment | eks:DescribeCluster eks:AccessKubernetesApi |
scale_deployment | eks:DescribeCluster eks:AccessKubernetesApi |
exec_command | eks:DescribeCluster eks:AccessKubernetesApi |
restart_pod | eks:DescribeCluster eks:AccessKubernetesApi |
get_pod_logs | eks:DescribeCluster eks:AccessKubernetesApi |