Sign inSign up

rhemsjapan/prepull-wait

By rhemsjapan

Updated about 3 years ago

Image
0

1M+

rhemsjapan/prepull-wait repository overview

prepull (with kubernetes)

pod の image pull 回数を抑えるための仕組みです。 2つのコンポーネント prepull-daemonprepull-wait によって動作します。

prepull-daemon

configure

daemonset の initcontainer で prepull-daemon を起動します。 container では、sleep するような常駐コンテナを起動します。

  • host の /var/run をマウントすること
  • /home/docker-compose.yml に pull 対象をマウントすること
  • aws の key sec を /root/.aws/config に渡すこと
  • 環境変数 AWS_REGION AWS_ACCOUNT_ID を渡すこと
volumes:
  - name: docker
    hostPath:
      path: /var/run
  - name: aws-credentials
    secret:
      secretName: aws-credentials
initContainers:
  - name: prepull-daemon
    image: rhemsjapan/prepull-daemon:latest
    imagePullPolicy: IfNotPresent
    volumeMounts:
      - name: docker
        mountPath: /var/run
      - name: aws-credentials
        subPath: config
        mountPath: /root/.aws/config
      - name: docker-compose
        subPath: docker-compose.yml
        mountPath: /home/docker-compose.yml
    env:
      - name: AWS_REGION
        value: "ap-northeast-1"
      - name: AWS_ACCOUNT_ID
        value: "012345678910"
containers:
  - name: pause
    image: 602401143452.dkr.ecr.us-east-2.amazonaws.com/eks/pause:3.1-eksbuild.1

aws-credentials

[default]
aws_access_key_id=<< ここにkey >>
aws_secret_access_key=<< ここにsec >>

docker-compose.yml

version: '3'

services:
  a:
    image: << ここに pull したいイメージ >>
environment variables
NameDescriptionRequiredDefault
AWS_REGIONECRのリージョンYes-
AWS_ACCOUNT_IDAWSのアカウントIDYes-

prepull-wait

configure

deployment / pod の init-container で prepull-wait を起動します。

  • 環境変数 NODE_IP を渡すこと
initContainers:
  - name: prepull-wait
    image: rhemsjapan/prepull-wait:latest
    imagePullPolicy: IfNotPresent
    env:
      - name: NODE_IP
        valueFrom:
          fieldRef:
            fieldPath: status.hostIP
environment variables
NameDescriptionRequiredDefault
NODE_IPpod がスケジュールされる node の ip アドレスYes-
DAEMON_NAMESPACEDaemonset: prepullが存在する namespaceNoprepull-daemon

Tag summary

Content type

Image

Digest

sha256:bc51c164f

Size

6.4 MB

Last updated

about 3 years ago

docker pull rhemsjapan/prepull-wait