sks*_*245 2 amazon-web-services docker kubernetes rancher amazon-ecr
我在从 AWS ECR 存储库中提取 docker 映像时遇到了这个问题,我之前使用过
kubectl create secret docker-registry regcred --docker-server=https://index.docker.io/v1/ --docker-username=kammana --docker-password=<your-password> --docker-email=hari.kammana@gmail.com
Run Code Online (Sandbox Code Playgroud)
部署 YAML 文件
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: privateapp
image: kammana/privateapp:0.0.1
imagePullSecrets:
- name: regcred
Run Code Online (Sandbox Code Playgroud)
但是现在,当您为 ECR 生成时,密码的有效期仅为 12 小时,我每次都必须手动更改密码。这很忙,我读了一篇Medium文章。
它可以创建某种 cron 作业,但我想在运行时通过登录 ECR 来提取图像。
如果您可以提供一些有关通过 Kubernetes 进行 ECR 直接登录的相关示例,并且我的集群不在同一个 AWS 账户中,因此 AWS IAM 角色是不可能的,那将会很有帮助。
我有同样的问题,我在 cron 中使用它:
# KUBECTL='kubectl --dry-run=client'
KUBECTL='kubectl'
ENVIRONMENT=sandbox # yes, typo
AWS_DEFAULT_REGION=moon-west-1
EXISTS=$($KUBECTL get secret "$ENVIRONMENT-aws-ecr-$AWS_DEFAULT_REGION" | tail -n 1 | cut -d ' ' -f 1)
if [ "$EXISTS" = "$ENVIRONMENT-aws-ecr-$AWS_DEFAULT_REGION" ]; then
echo "Secret exists, deleting"
$KUBECTL delete secrets "$ENVIRONMENT-aws-ecr-$AWS_DEFAULT_REGION"
fi
PASS=$(aws ecr get-login-password --region $AWS_DEFAULT_REGION)
$KUBECTL create secret docker-registry $ENVIRONMENT-aws-ecr-$AWS_DEFAULT_REGION \
--docker-server=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com \
--docker-username=AWS \
--docker-password=$PASS \
--docker-email=infra@setu.co --namespace collect
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6711 次 |
| 最近记录: |