使用 github 操作部署时无法访问我的 EKS 集群

问题描述 投票:0回答:1

我完全陷入困境。我编写了 terraform 代码来部署带有工作节点的 eks 集群,当我使用 terraform 部署它时,一切正常,我能够执行 kubectl get 节点,但是,当我使用推送到 github 并使用 github 操作时,一切仍在部署,但是当我尝试使用 kubectl get 节点访问集群时,出现此错误:

E0505 22:34:58.473467 28812 memcache.go:265]无法获取当前服务器API组列表:服务器已要求客户端提供凭据 E0505 22:34:59.011805 28812 memcache.go:265]无法获取当前服务器API组列表:服务器已要求客户端提供凭据 E0505 22:34:59.764169 28812 memcache.go:265]无法获取当前服务器API组列表:服务器已要求客户端提供凭据 E0505 22:35:00.350556 28812 memcache.go:265]无法获取当前服务器API组列表:服务器已要求客户端提供凭据 E0505 22:35:01.067397 28812 memcache.go:265]无法获取当前服务器API组列表:服务器已要求客户端提供凭据 错误:您必须登录到服务器(服务器已要求客户端提供凭据)

我应该提到,在我的 github 存储库中,我确保添加了 GitHubActionsTerraformIAMrole 的 IAM 角色 arn,这是 OIDC 设置的一部分。我将其添加为环境秘密。

这是我的工作流程文件,任何帮助将不胜感激!!

名称:Terraform 部署工作流程

在: 推: 分支机构: - 主要
- 开发

权限: id 令牌:写入 内容:阅读

工作: 地形: 运行:ubuntu-latest 环境: ${{ (github.ref == 'refs/heads/main' && '生产') || (github.ref == 'refs/heads/staging' && 'staging') || ‘开发’}}

steps:
- name: Checkout repository
  uses: actions/checkout@v2

- name: Configure AWS credentials
  uses: aws-actions/[email protected]
  with:
    aws-region: us-east-1
    role-to-assume: ${{ secrets.IAM_ROLE }}
    audience: sts.amazonaws.com

- name: Terraform Initialize
  run: terraform init -reconfigure -backend-config="bucket=project-x" -backend-config="key=terraform.tfstate" -backend-config="region=us-east-1"
  working-directory: ./roots/main-eks-root/

- name: Terraform Plan
  run: terraform plan -var-file="project.tfvars" -out=tfplan
  working-directory: ./roots/main-eks-root/

- name: Terraform Apply
  run: terraform apply -auto-approve "tfplan"
  working-directory: ./roots/main-eks-root/

我尝试在本地使用相同的 tfvars 文件和 github 操作来部署这两种配置。只有本地有效,所以我猜测它具有 github actions 凭证,但我不确定。

amazon-web-services kubernetes github terraform amazon-eks
1个回答
0
投票

您找到解决方案了吗?,我也遇到了同样的问题,我被困住了。

© www.soinside.com 2019 - 2024. All rights reserved.