相关疑难解决方法(0)

如何使用Jenkins将Docker容器从Amazon ECR自动部署到Kubernetes

这是我们的环境:

  1. 我有一个在Amazon上运行的Kubernetes集群。
  2. 在Amazon上运行的Jenkins CI / CD,可连接到私有GitLab并将我们的服务构建为Docker映像。
  3. 存储我们的Docker映像的Amazon ECR。

我的问题:

  1. Jenkins管道将新建的映像推送到ECR后,如何将映像从ECR自动部署到Kubernetes(作为Pod)?
  2. 我可以在詹金斯管道中做到这一点吗?我读了很多材料,但是找不到如何做。

还有一个像Keel这样的第三方工具,但它不支持Amazon ECR(ECR的Webhook问题)。

任何帮助,将不胜感激。

continuous-deployment jenkins kubernetes devops aws-ecr

7
推荐指数
2
解决办法
9168
查看次数

kubernetes“未经授权:需要身份验证”

我有一个 GKE 集群,它使用 AWS ECR 存储库来拉取 docker 镜像。这些是我遵循的步骤。

使用此命令创建了一个秘密

# cat > /tmp/image-pull-secret.yaml << EOF
apiVersion: v1
kind: Secret
metadata:
  name: myregistrykey
data:
  .dockerconfigjson: $(aws ecr get-authorization-token --output json | jq -n 'input.authorizationData | {auths: (reduce .[]  as $d ({}; . + {($d.proxyEndpoint|sub("https?://";"")): {auth:$d.authorizationToken}}))}' | (base64 -w0 2>/dev/null || base64) )
type: kubernetes.io/dockerconfigjson
EOF

# kubectl apply -f /tmp/image-pull-secret.yaml
Run Code Online (Sandbox Code Playgroud)

创建了部署但出现错误

# cat abc_deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: abc-deployment
  labels:
    app: abc
    env: development
spec:
  replicas: 3
  selector:
    matchLabels: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services docker google-cloud-platform kubernetes google-kubernetes-engine

5
推荐指数
1
解决办法
1001
查看次数