使用Operator在OpenShift上安装Project Quay Registry
Project Quay是一个可伸缩的容器镜像注册表,使我们可以构建,组织,分发和部署容器。使用Quay,我们可以创建图像存储库,执行图像漏洞扫描和强大的访问控制。我们已经介绍了使用Quay在Linux发行版上安装Quay的过程。
如何在CentOS/RHEL/Ubuntu上设置Red Hat Quay注册表
在本教程中,我们将回顾如何使用Operator在OpenShift Container Platform上部署Quay容器注册表。操作员中心提供了对操作员的良好使用。
数据库由Project Quay组成,数据库由Red Hat Quay用作主要元数据存储(不用于图像存储)Redis(密钥,值存储)存储实时构建器日志和Red Hat Quay教程。 (容器注册表):将Quay容器作为服务运行,由Pod中的多个组件组成。克莱尔:扫描容器镜像中的漏洞并提出修复建议。
为Project Quay创建新项目
让我们从为Quay注册表创建一个新项目开始。
$oc new-project quay-enterprise Now using project "quay-enterprise" on server "https://api.crc.testing:6443". .....
我们也可以从OpenShift Web控制台创建项目。
单击创建按钮,并确认该项目已创建并正在运行。
安装Red Hat Quay设置操作器
Red Hat Quay设置操作员提供了一种简单的方法来部署和管理Red Hat Quay集群。
登录到OpenShift控制台,然后选择Operators OperatorHub:
选择Red Hat Quay运算符。
选择安装,然后将显示操作员订阅页面。
选择以下各项,然后选择"订阅":安装模式:选择要安装到更新频道的特定名称空间:选择更新频道(可能只有一个)批准策略:选择批准自动或者手动更新
部署Red Hat Quay生态系统
访问Quay.io注册表需要某些凭据。使用以下详细信息创建一个新文件。
$vim Quay_quay.json { "auths":{ "quay.io": { "auth": "cmVkaGF0K3F1YXk6TzgxV1NIUlNKUjE0VUFaQks1NEdRSEpTMFAxVjRDTFdBSlYxWDJDNFNEN0tPNTlDUTlOM1JFMTI2MTJYVTFIUg==", "email": "" } } }
然后在将要使用的OpenShift上创建一个秘密。
oc project quay-enterprise oc create secret generic redhat-pull-secret --from-file=".Quayconfigjson=Quay_quay.json" --type='kubernetes.io/Quayconfigjson'
创建Quay超级用户凭据机密:
oc create secret generic quay-admin \ --from-literal=superuser-username=quayadmin \ --from-literal=superuser-password=StrongAdminPassword \ theitroad@localhost
其中:quayadmin是Quay管理员用户名StrongAdminPassword是管理员用户的密码theitroad @ localhost是要创建的管理员用户的电子邮件
创建Quay配置机密
Quay Enterprise的专用部署用于管理Quay的配置。对配置界面的访问是安全的,并且需要进行身份验证才能访问。
oc create secret generic quay-config --from-literal=config-app-password=StrongPassword
用所需的密码替换StrongPassword。
创建数据库凭证秘密PostgreSQL
oc create secret generic postgres-creds \ --from-literal=database-username=quay \ --from-literal=database-password=StrongUserPassword \ --from-literal=database-root-password=StrongRootPassword \ --from-literal=database-name=quay
这些是访问数据库服务器的凭据:Quay数据库和数据库用户名StrongUserPasswordQuay数据库用户密码StrongRootPassword根用户数据库密码
创建Redis密码凭证
默认情况下,操作员管理的Redis实例在部署时没有密码。可以通过在密钥密码中创建一个包含密码的秘密来指定密码。
oc create secret generic redis-password --from-literal=password=StrongRedisPassword
创建Quay生态系统部署列表
我的Red Hat Quay生态系统配置文件如下所示
apiVersion: redhatcop.redhat.io/v1alpha1 kind: QuayEcosystem metadata: name: quay-ecosystem spec: clair: enabled: true imagePullSecretName: redhat-pull-secret updateInterval: "60m" quay: imagePullSecretName: redhat-pull-secret superuserCredentialsSecretName: quay-admin configSecretName: quay-config deploymentStrategy: RollingUpdate skipSetup: false redis: credentialsSecretName: redis-password database: volumeSize: 10Gi credentialsSecretName: postgres-creds registryStorage: persistentVolumeSize: 20Gi persistentVolumeAccessModes: - ReadWriteMany livenessProbe: initialDelaySeconds: 120 httpGet: path: /health/instance port: 8443 scheme: HTTPS readinessProbe: initialDelaySeconds: 10 httpGet: path: /health/instance port: 8443 scheme: HTTPS
对其进行修改以适合用例。完成后,应用配置:
oc apply -f quay-ecosystem.yaml
使用自定义SSL证书
如果要对Quay使用自定义SSL证书,则需要使用密钥和证书创建一个秘密:
oc create secret generic custom-quay-ssl \ --from-file=ssl.key=example.key \ --from-file=ssl.cert=example.crt
然后修改Ecosystem文件以使用自定义证书密钥:
quay: imagePullSecretName: redhat-pull-secret sslCertificatesSecretName: custom-quay-ssl .......
等待几分钟,然后确认部署:
$oc get deployments NAME READY UP-TO-DATE AVAILABLE AGE quay-ecosystem-clair 1/1 1 1 2m35s quay-ecosystem-clair-postgresql 1/1 1 1 2m57s quay-ecosystem-quay 1/1 1 1 3m45s quay-ecosystem-quay-postgresql 1/1 1 1 5m8s quay-ecosystem-redis 1/1 1 1 5m57s quay-operator 1/1 1 1 70m $oc get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE quay-ecosystem-clair ClusterIP 172.30.66.1 <none> 6060/TCP,6061/TCP 4m quay-ecosystem-clair-postgresql ClusterIP 172.30.10.126 <none> 5432/TCP 3m58s quay-ecosystem-quay ClusterIP 172.30.47.147 <none> 443/TCP 5m38s quay-ecosystem-quay-postgresql ClusterIP 172.30.196.61 <none> 5432/TCP 6m15s quay-ecosystem-redis ClusterIP 172.30.48.112 <none> 6379/TCP 6m58s quay-operator-metrics ClusterIP 172.30.81.233 <none> 8383/TCP,8686/TCP 70m
在项目中运行Pod:
$oc get pods NAME READY STATUS RESTARTS AGE quay-ecosystem-clair-84b4d77654-cjwcr 1/1 Running 0 2m57s quay-ecosystem-clair-postgresql-7c47b5955-qbc4s 1/1 Running 0 3m23s quay-ecosystem-quay-66584ccbdb-8szts 1/1 Running 0 4m8s quay-ecosystem-quay-postgresql-74bf8db7f8-vnrx9 1/1 Running 0 5m34s quay-ecosystem-redis-7dcd5c58d6-p7xkn 1/1 Running 0 6m23s quay-operator-764c99dcdb-k44cq 1/1 Running 0 70m
访问Quay仪表板
获取已部署Quay的路线URL:
$oc get route quay-ecosystem-quay quay-ecosystem-quay-quay-enterprise.apps.example.com quay-ecosystem-quay 8443 passthrough/Redirect None
在有权访问群集域的计算机上打开URL。
使用我们配置的凭据登录Quay注册表。