《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.6环境中验证

文章目录

  • 部署Neuxs Registry
  • 更新OpenShift的Pull Secret
  • 验证

部署Neuxs Registry

  1. 创建项目并去除项目资源限制。
$ oc new-project nexus-demo
$ oc delete limitrange nexus-demo-core-resource-limits -n nexus-demo
  1. 使用Helm部署Nexus
$ helm repo add rhmlops https://rh-mlops-workshop.github.io/helm-charts/
$ helm install nexus rhmlops/nexus -n nexus-demo \--set sonatype-nexus.nexus.resources.requests.cpu=2 \--set sonatype-nexus.nexus.resources.requests.memory=4Gi \--set sonatype-nexus.persistence.storageSize=10Gi
  1. 创建内容如下的nexus-demo.yaml文件
---
kind: Service
apiVersion: v1
metadata:name: nexus-dockernamespace: nexus-demo
spec:ports:- protocol: TCPport: 5000targetPort: 5000name: dockerselector:app: sonatype-nexustype: ClusterIP
---
apiVersion: route.openshift.io/v1
kind: Route
metadata:name: nexus-dockernamespace: nexus-demo
spec:port:targetPort: 5000tls:insecureEdgeTerminationPolicy: Redirecttermination: edgeto:kind: Servicename: nexus-docker          weight: 100wildcardPolicy: None
  1. 根据文件nexus-demo.yaml创建资源。
$ oc create -f nexus-demo.yaml
  1. 执行命令获取Neuxs访问地址和Neuxs的Docker Registry访问地址
$ NEXUS_HOSTNAME=`oc get route nexus -n nexus-demo -o jsonpath='{.spec.host}'`
$ NEXUS_DOCKER_HOSTNAME=`oc get route nexus-docker -n nexus-demo -o jsonpath='{.spec.host}'`
  1. (可选)执行以下命令,关闭Neuxe的允许匿名访问。
$ curl -u admin:admin123 -X PUT "https://${NEXUS_HOSTNAME}/service/rest/beta/security/anonymous" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"enabled\" : false, \"userId\" : \"anonymous\", \"realmName\" : \"NexusAuthorizingRealm\"}"

更新OpenShift的Pull Secret

  1. 获得OpenShift当前的pullsecret
$ oc get secret/pull-secret -n openshift-config -o jsonpath='{.data.\.dockerconfigjson}'  | base64 -d | jq > secret.json
  1. 根据Neuxs的用户名密码生成base64编码
$ echo -n 'admin:admin123' | base64
YWRtaW46YWRtaW4xMjM=
  1. 编辑secret.json文件,向其添加以下内容,注意需要用实际内容替换以下内容中的“$NEXUS_DOCKER_HOSTNAME”和"YWRtaW46YWRtaW4xMjM="。
"$NEXUS_DOCKER_HOSTNAME": {"auth": "YWRtaW46YWRtaW4xMjM="
},
  1. 执行命令,更新OpenShift的PullSecret。
$ oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=secret.json
  1. 更新完PullSecret后,节点需要重启以生效。执行命令可查看集群节点的状态,当“READYMACHINECOUNT”数量恢复后即完成。
$ oc get mcp
NAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
master   rendered-master-90aebfbbc5ed0d3c500da47afcbddbd6   True      False      False      3              3                   3                     0                      4d2h
worker   rendered-worker-2c5fa7480d3cf44cf02ea6357f9df08c   True      False      False      2              2                   2                     0                      4d2h$ oc get mcp
NAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
master   rendered-master-90aebfbbc5ed0d3c500da47afcbddbd6   False     True       False      3              0                   0                     0                      4d2h
worker   rendered-worker-2c5fa7480d3cf44cf02ea6357f9df08c   False     True       False      2              0                   0                     0                      4d2h$ oc get mcp
NAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
master   rendered-master-42216de6f0c6919dae3b07593e9b7e27   True      False      False      3              3                   3                     0                      4d2h
worker   rendered-worker-45768542f13f0b2cd71b09fa9461d063   True      False      False      2              2                   2                     0                      4d2h

验证

  1. 登录Neuxs Registry。
$ podman login $NEXUS_DOCKER_HOSTNAME -u admin -p admin123
  1. 执行命令,将镜像从quay.io复制到Nexus Registry。
$ skopeo copy docker://quay.io/kwkoo/webnotifications docker://$NEXUS_DOCKER_HOSTNAME/kwkoo/webnotifications
Getting image source signatures
Copying blob 3e82b7ee18cb done
Copying blob 275f5abb4c08 done
Copying config 8f694aac55 done
Writing manifest to image destination
Storing signatures
  1. 创建项目,并根据Nexus Registry的镜像部署应用。
oc new-project nexus-test
oc new-app $NEXUS_DOCKER_HOSTNAME/kwkoo/webnotifications -n nexus-test
  1. 查看部署的应用。
$ oc get deploy webnotifications
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
webnotifications   1/1     1            1           49s$ oc get deploy webnotifications -o jsonpath='{.spec.template.spec.containers[0].image}'
nexus-docker-nexus-demo.apps.cluster-pek-e7a3.pek-e7a3.example.opentlc.com/kwkoo/webnotifications@sha256:6c422e546d26079ca74eed692cd1d7f7573210ad63ac56bd30ed9497c4769152[xiaoyliu-redhat.com@bastion ~]$ oc get pod
NAME                               READY   STATUS    RESTARTS   AGE
webnotifications-c477df6d5-86c4c   1/1     Running   0          97s
  1. 在Nexus控制台上查看前面导入的webnotifications镜像。

OpenShift 4 - 配置本地Neuxs Registry并通过Pull Secret访问相关推荐

  1. OpenShift 4 - 用Pull Secret访问红帽官方或其他外部Registry的Image

    <OpenShift 4.x HOL教程汇总> 文章目录 OpenShift如何访问外部Registry的Image 全局ImageStream 本地ImageStream 通过opens ...

  2. OpenShift 4 - 配置OpenShift可使用的外部Image Registry和Mirror Registry

    <OpenShift 4.x HOL教程汇总> 文章目录 概念 配置OpenShift的Image Registry 配置OpenShift的Mirror Image Registry 参 ...

  3. Ubuntu16.04多主机集群上手动部署Kubernetes,配置docker私有registry,配置Kubernetes-dashboard WEB ui

    Ubuntu16.04多主机集群上手动部署Kubernetes,配置docker私有registry,配置Kubernetes-dashboard WEB ui 2017年03月17日 20:51:4 ...

  4. Terraform 初始化慢~配置本地离线源

    解决Terraform初始化慢~配置本地离线源 - 知乎 这里不再介绍Terraform是啥了,可以参考最近上线的课程.直奔主题,配置一个离线的源. 需要手动或者terraform init一次下载, ...

  5. redhat enterprise linux 下配置本地yum源

    一.在linux 6.1中本地yum源配置:首先编辑yum源配置文件我们可以再这个目录中新创建一个配置文件,  #cd /etc/yum.repos.d,  #vim yum.repo配置文件内容简介 ...

  6. redhat7配置本地yum、163 yum、epel 源

    都知道redhat不收费,但是其yum服务是要收费的,不想出钱那就自己配置yum源就好了. 首先,博主之前也没用过redhat,第一次用yum装包的时候提示什么没注册之类的,balaba一大堆,然后就 ...

  7. RedHat8 配置本地yum源

    多次通过官网下载redhat8正式版都是失败告终,经常到一半莫名网络错误而失败,靠大神分享链接下了个过来实验,第一关就遇到yum源配置问题,跟之前有点不一样了,用的管理软件变成了DNF,大家一起来玩D ...

  8. Windows下 maven3.0.4的安装步骤+maven配置本地仓库(转载)

    转自:Windows下 maven3.0.4的安装步骤+maven配置本地仓库 简单讲下maven的安装步骤: 1.在安装maven之前,先确保已经安装JDK1.6及以上版本,并且配置好环境变量. 2 ...

  9. Redhat Linux RHEL6配置本地YUM源及错误处理

    创建源文件存放的目录 #mkdir /yum/ 加载光盘 #mount /dev/cdrom /media 将光盘文件复制到服务器上的源目录 #cp -a /media/* /yum/ 新建一个yum ...

最新文章

  1. 素数和_只愿与一人十指紧扣_新浪博客
  2. 想象中的论文答辩和真实的论文答辩!哈哈哈哈哈哈……
  3. 求长度的另一种方法(+obj).Length
  4. MySql中常用的内置函数
  5. struts2-ognl 访问静态方法
  6. 知识工程学:一个新的重要研究领域
  7. ACL 2020 | 知识库问答的多跳复杂问题查询图生成
  8. Linux 磁盘管理 二(Raid、LVM、Quota)
  9. 《挖财编程题》求数列的和
  10. python函数的传递方式有哪些_Python全栈工程师(函数的传参)
  11. 手动造轮子——为Ocelot集成Nacos注册中心
  12. 兰州市中考会考计算机考试,2016兰州中考体育26日开考 采用全套智能测试仪器...
  13. 新东方预计6个月亏损超8亿美元
  14. tsm2812通用定时器中断_通用定时器中断(TIM2)
  15. Letter Combinations of a Phone Number
  16. 精华阅读第 13 期 |常见的八种导致 APP 内存泄漏的问题
  17. 基于PHP物流网站信息管理系统
  18. 计算机黑屏 风扇转,打开电脑黑屏,但风扇还在转,为什么?
  19. 两款C#开源单文件串口调试工具的源码库
  20. java获取指定时间为第几周_Java8根据一年中的第几周获得Monday

热门文章

  1. java面向对象编程基础实验报告_20155313 实验三《Java面向对象程序设计》实验报告...
  2. linux无密码scp,linux通过ssh-keygen实现无密码scp文件和目录
  3. 数据库身份证号用什么类型_鱼缸要不要铺底?用什么铺底?这3种类型,我有4个建议...
  4. win10动态壁纸怎么设置_电脑怎么设置动态桌面
  5. php编程实现水仙花数,php实现水仙花数的4个示例分享
  6. python表达式3 5_python3 第五章 - 什么是变量、运算符、表达式
  7. UI设计摘要背景素材|简单分层PSD格式化模板,为项目增加背景
  8. mysql base_MySQLbase
  9. [GitHub]一个简单的网络驱动
  10. C语言进程的内存地址空间分配