簡體   English   中英

在 cronjob 中使用 aws-cli

[英]Using aws-cli in cronjob

我正在嘗試在 cronjob 中運行aws sts get-caller-identity ,但這會導致/bin/sh: 1: aws: not found

    spec:
      containers:
      - command:
        - /bin/sh
        - -c
        - aws sts get-caller-identity

正如評論中已經提到的,AWS CLI 似乎沒有安裝在您用於此 cronjob 的映像中。 您需要提供更多信息!

如果您是所用映像的所有者,只需在 Dockerfile 中安裝 AWS CLI。 如果您不是所有者,只需創建自己的映像,從您當前使用的映像擴展它並安裝 AWS CLI。

例如,如果您使用的是基於 Alpine 的圖像,只需創建一個 Dockerfile

FROM <THE_ORIGINAL_IMAGE>:<TAG>

RUN apk add --no-cache python3 py3-pip && \
  pip3 install --upgrade pip && \
  pip3 install awscli

然后構建鏡像並將其推送到 DockerHub 以作為示例。 現在您可以在您的 CronJob 資源中使用這個新圖像。

但是,接下來是您的 CronJob Pod 需要訪問權限才能執行 AWS STS 服務。 完成這項工作有多種可能性。 最好的方法是使用 IRSA(服務帳戶的 IAM 角色)只需查看這篇博客文章https://aws.amazon.com/de/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/

如果您仍然需要幫助,請提供更多詳細信息。

步驟1:

您需要將密鑰添加到 kubernetes 密鑰:

kubectl create secret generic aws-credd --from-literal=AWS_SECRET_ACCESS_KEY=xxxxxxxxx --from-literal=AWS_ACCESS_KEY_ID=xxxxx

第 2 步:將其復制到 -> cronjob.yaml

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: aws-cli-sync
  labels:
    app: aws-cli-sync
spec:
  schedule: "0 17 * * *"
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: aws-cli-sync
            image: mikesir87/aws-cli
            env:
              - name: AWS_ACCESS_KEY_ID
                valueFrom:
                  secretKeyRef:
                    name: aws-cred
                    key: AWS_ACCESS_KEY_ID
              - name: AWS_SECRET_ACCESS_KEY
                valueFrom:
                  secretKeyRef:
                    name: aws-cred
                    key: AWS_SECRET_ACCESS_KEY
            args:
              - /bin/sh
              - -c
              - date;aws s3 sync s3://xxx-backup-prod s3://elk-xxx-backup
          restartPolicy: Never

第 3 步:在命名空間中添加作業,在那里添加密鑰

kubectl apply -f ./cronjob.yaml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM