【发布时间】:2023-01-22 01:02:41
【问题描述】:
我已经在 AWS EKS 上配置了 Argo 工作流。 EKS 托管在私有子网上,即无法上网。
- 我将 workflow-controller 图像、argo-server 图像和 executor-image 上传到我的私人 ECR
- 为了在 EKS 上安装 Argo 工作流,我修改了 install.yaml file,如下所示。
// Workflow-controller
apiVersion: apps/v1 kind: Deployment metadata: name: workflow-controller namespace: argo spec: selector: matchLabels: app: workflow-controller template: metadata: labels: app: workflow-controller spec: containers: - args: - --configmap - workflow-controller-configmap - --executor-image - <aws_account_no>.dkr.ecr.eu-central-1.amazonaws.com/argoworkflow:argoexec-v3.4.4 command: - workflow-controller env: - name: LEADER_ELECTION_IDENTITY valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name image: <aws_account_no>.dkr.ecr.eu-central-1.amazonaws.com/argoworkflow:workflow-controller-3.4.4 livenessProbe: failureThreshold: 3 httpGet: path: /healthz port: 6060 initialDelaySeconds: 90 periodSeconds: 60 timeoutSeconds: 30 name: workflow-controller ports: - containerPort: 9090 name: metrics - containerPort: 6060 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true nodeSelector: kubernetes.io/os: linux priorityClassName: workflow-controller securityContext: runAsNonRoot: true serviceAccountName: argo// Argo Server deployment file
apiVersion: apps/v1 kind: Deployment metadata: name: argo-server namespace: argo spec: selector: matchLabels: app: argo-server template: metadata: labels: app: argo-server spec: containers: - args: - server env: [] image: <aws_account_no>.dkr.ecr.eu-central-1.amazonaws.com/argoworkflow:argocli-v3.4.4 name: argo-server ports: - containerPort: 2746 name: web readinessProbe: httpGet: path: / port: 2746 scheme: HTTPS initialDelaySeconds: 10 periodSeconds: 20 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true volumeMounts: - mountPath: /tmp name: tmp nodeSelector: kubernetes.io/os: linux securityContext: runAsNonRoot: true serviceAccountName: argo-server volumes: - emptyDir: {} name: tmp没有其他变化。
- kubectl apply -f install.yaml
我能够使用我的 ECR 图像运行工作流程,但是当我运行 steps/DAG 时,它会给出错误消息。因为在后台它正在通过互联网搜索 argoproj/argosay:v2 图像,即 docker。但由于它托管在私有子网中,因此无法找到图像。
有没有办法将此图像上传到 aws ECR(私有存储库)并在安装过程中引用该图像(install.yaml)?
【问题讨论】:
标签: kubernetes workflow argo-workflows