繁体   English   中英

aws eks bitbucket 管道权限错误

[英]Aws eks bitbucket pipeline permission error

image: atlassian/default-image:3

pipelines:
  tags:
    ecr-release-*:
      - step:
          services:
            - docker
          script:
            - apt update -y
            - apt install python3-pip -y
            - pip3 --version
            - pip3 install awscli
            - aws configure set aws_access_key_id "AKIA6J47DSdaUIAZH46DKDDID6UH"
            - aws configure set aws_secret_access_key "2dWgDxx5i7Jre0aZJ+tQ3oDve5biYk0ZMDKKASA7554QoJSJSJS"
            - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
            - chmod +x ./kubectl
            - mv ./kubectl /usr/local/bin/kubectl
            - aws eks update-kubeconfig --name build_web --region us-west-2
            - kubectl apply -f eks/aws-auth.yaml
            - kubectl apply -f eks/deployment.yaml
            - kubectl apply -f eks/service.yaml

definitions:
  services:
    docker:
      memory: 3072

这是我的bitbucket-pipelines.yml 当我运行 bitbucket 管道时,我在屏幕截图中遇到以下错误。 我想我已经添加了 aws 访问凭证

请看一下

在此处输入图像描述

您需要创建服务帐户并授予权限,还需要证书来连接 Kubernetes API 服务器。

以下是所有可能对您有帮助的详细信息的很好解释: https ://medium.com/codeops/continuous-deployment-with-bitbucket-pipelines-ecr-and-aws-eks-791a30b7c84b

更改 kube 配置文件后问题已解决。 您需要指定您需要使用的配置文件。 默认情况下,update-kubeconfig 创建身份验证凭据,并在文件中放入如下内容:

- name: arn:aws:eks:{region}:{}account-id:cluster/{cluster-name}
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1beta1
      args:
      - --region
      - {region}
      - eks
      - get-token
      - --cluster-name
      - {cluster-name}
      command: aws
      env:
      - name: AWS_PROFILE
        value: {profile}
      interactiveMode: IfAvailable
      provideClusterInfo: false

由于儿子原因 aws cli 没有获取 AWS_PROFILE 环境变量值,所以在这种情况下,我解决了手动更新 kube 配置并在 aws 命令部分指定 --profile 的问题:

- name: arn:aws:eks:{region}:{}account-id:cluster/{cluster-name}
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1beta1
        args:
          - --region
          - {region}
          - eks
          - get-token
          - --profile
          - {profile}
          - --cluster-name
          - {cluster-name}
          command: aws
          #env:
          #- name: AWS_PROFILE
          #  value: {profile}
          interactiveMode: IfAvailable
          provideClusterInfo: false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM