0
点赞
收藏
分享

微信扫一扫

Quay(0) - 安装一个单实例 Quay 环境

瑾谋 2022-04-13 阅读 18

《OpenShift / RHEL / DevSecOps 汇总目录》

说明:本文使用 mirror-registry 开源项目安装一个单实例 RedHat Quay 环境。mirror-registry 开源项目是作为安装离线 OpenShift 使用的 Mirror Registry。

安装 Quay

注意:安装环境需要至少有 podman 3.0 以上软件,可以使用 root 用户运行以下命令安装 Quay 环境。

  1. 访问 https://github.com/quay/mirror-registry/releases 查看当前最新版本。在这里插入图片描述
  2. 执行命令下载离线安装包。
$ QUAY_VERSION=1.1.0
$ curl -OL https://github.com/quay/mirror-registry/releases/download/${QUAY_VERSION}/mirror-registry-offline.tar.gz
$ tar -xvf mirror-registry-offline.tar.gz
  1. 由于安装使用的缺省 --quayHostname 参数会使用 “$(hostname -f)”,因此要不需要将 “$(hostname -f)” 和对应的 IP 加到 /etc/hosts 中,要不需要为 --quayHostname 参数设置可解析的主机名。本文将主机名 quay 和对应的 IP 加入到 /etc/hosts 中。
  2. 执行命令安装 mirror-registry。缺省会在 Quay 中创建名为 “init” 的用户,也可通过 --initUser 参数指定需要创建的用户。
$ QUAY_HOSTNAME=quay
$ ./mirror-registry install --initPassword r3dh4t1! --quayHostname ${QUAY_HOSTNAME} --targetUsername root -v
   __   __
  /  \ /  \     ______   _    _     __   __   __
 / /\ / /\ \   /  __  \ | |  | |   /  \  \ \ / /
/ /  / /  \ \  | |  | | | |  | |  / /\ \  \   /
\ \  \ \  / /  | |__| | | |__| | / ____ \  | |
 \ \/ \ \/ /   \_  ___/  \____/ /_/    \_\ |_|
  \__/ \__/      \ \__
                  \___\ by Red Hat
 Build, Store, and Distribute your Containers
 
INFO[2022-04-10 08:13:13] Install has begun                            
DEBU[2022-04-10 08:13:13] Ansible Execution Environment Image: quay.io/quay/mirror-registry-ee:latest 
DEBU[2022-04-10 08:13:13] Pause Image: registry.access.redhat.com/ubi8/pause:latest 
DEBU[2022-04-10 08:13:13] Quay Image: registry.redhat.io/quay/quay-rhel8:v3.6.4 
DEBU[2022-04-10 08:13:13] Redis Image: registry.redhat.io/rhel8/redis-6:1-25 
DEBU[2022-04-10 08:13:13] Postgres Image: registry.redhat.io/rhel8/postgresql-10:1-161 
INFO[2022-04-10 08:13:13] Found execution environment at /root/execution-environment.tar 
INFO[2022-04-10 08:13:13] Loading execution environment from execution-environment.tar 
DEBU[2022-04-10 08:13:13] Importing execution enviornment with command: /bin/bash -c sudo /usr/bin/podman image import \
                                        --change 'ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
                                        --change 'ENV HOME=/home/runner' \
                                        --change 'ENV container=oci' \
                                        --change 'ENTRYPOINT=["entrypoint"]' \
                                        --change 'WORKDIR=/runner' \
                                        --change 'EXPOSE=6379' \
                                        --change 'VOLUME=/runner' \
                                        --change 'CMD ["ansible-runner", "run", "/runner"]' \
                                        - quay.io/quay/mirror-registry-ee:latest < /root/execution-environment.tar       
。。。
。。。
FAILED_EVENTS=False -e ANSIBLE_HOST_KEY_CHECKING=False -e ANSIBLE_CONFIG=/runner/project/ansible.cfg --quiet --name ansible_runner_instance quay.io/quay/mirror-registry-ee:latest ansible-playbook -i root@quay, --private-key /runner/env/ssh_key -e "init_user=init init_password=r3dh4t1! quay_image=registry.redhat.io/quay/quay-rhel8:v3.6.4 redis_image=registry.redhat.io/rhel8/redis-6:1-25 postgres_image=registry.redhat.io/rhel8/postgresql-10:1-161 pause_image=registry.access.redhat.com/ubi8/pause:latest quay_hostname=quay:8443 local_install=true quay_root=/etc/quay-install" install_mirror_appliance.yml   
 
PLAY [Install Mirror Appliance] ******************************************************************************************************************************************************************************************************************************************
 
TASK [Gathering Facts] ***************************************************************************************************************************************************************************************************************************************************
ok: [root@quay]
 
TASK [mirror_appliance : Install Dependencies] ***************************************************************************************************************************************************************************************************************************
included: /runner/project/roles/mirror_appliance/tasks/install-deps.yaml for root@quay
。。。
。。。
PLAY RECAP ***************************************************************************************************************************************************************************************************************************************************************
root@quay : ok=47   changed=31   unreachable=0    failed=0    skipped=12   rescued=0    ignored=0 
  1. 查看本地运行的的 container、pod 和系统服务。
$ podman ps
CONTAINER ID  IMAGE                                         COMMAND         CREATED        STATUS            PORTS                   NAMES
3fbcdc27aead  registry.access.redhat.com/ubi8/pause:latest                  8 minutes ago  Up 8 minutes ago  0.0.0.0:8443->8443/tcp  ee29d638c8e6-infra
666800d74583  registry.redhat.io/rhel8/postgresql-10:1-161  run-postgresql  8 minutes ago  Up 8 minutes ago  0.0.0.0:8443->8443/tcp  quay-postgres
99d38cb14db1  registry.redhat.io/rhel8/redis-6:1-25         run-redis       8 minutes ago  Up 8 minutes ago  0.0.0.0:8443->8443/tcp  quay-redis
2ba875a1edd9  registry.redhat.io/quay/quay-rhel8:v3.6.4     registry        8 minutes ago  Up 8 minutes ago  0.0.0.0:8443->8443/tcp  quay-app
 
$ podman pod ps
POD ID        NAME        STATUS      CREATED        INFRA ID      # OF CONTAINERS
ee29d638c8e6  quay-pod    Running     7 minutes ago  3fbcdc27aead  4

$ systemctl list-units --type service | grep quay
quay-app.service                                      loaded active running Quay Container                                                               
quay-pod.service                                      loaded active exited  Infra Container for Quay                                                     
quay-postgres.service                                 loaded active running PostgreSQL Podman Container for Quay                                         
quay-redis.service                                    loaded active running Redis Podman Container for Quay      

对 Quay 进行镜像操作

  1. 用浏览器访问 https://${QUAY_HOSTNAME}:8443/,然后登录进入 Quay 的控制台。
    在这里插入图片描述
  2. 创建一个名为 busybox 的 Repository,可以是 Public 或 Private 类型。
    在这里插入图片描述
  3. 如果是 Private 类型的 Repository 则需要登录 Quay。
$ podman login -u init -p r3dh4t1! ${QUAY_HOSTNAME}:8443 --tls-verify=false
Login Succeeded!
  1. 先从 docker 下载 busybox 镜像,然后推送到 Quay上,最后验证可以使用。
$ podman pull docker.io/library/busybox:latest
$ podman tag docker.io/library/busybox:latest ${QUAY_HOSTNAME}:8443/init/busybox:latest
$ podman push $(hostname -f):8443/init/busybox:latest --tls-verify=false
$ podman pull ${QUAY_HOSTNAME}:8443/init/busybox:latest --tls-verify=false

在这里插入图片描述

参考

https://github.com/quay/openshift-mirror-registry
https://docs.openshift.com/container-platform/4.10/installing/disconnected_install/installing-mirroring-creating-registry.html

举报

相关推荐

反转一个单链表

0 条评论