Nexus作為容器注冊表的配置指南
開源和容器化重新設(shè)計(jì)了一種高效的價(jià)值流,可以為多種類型的生態(tài)系統(tǒng)構(gòu)建多種類型的應(yīng)用程序,但是組織如何使用幾種不同的公共來源(或注冊表)來存儲,管理和部署其容器化應(yīng)用程序?
Docker,Helm和Kubernetes的簡化容器管理
Nexus Repository建立在廣泛的企業(yè)存儲功能之上,是適用于所有Docker鏡像和Helm Chart存儲庫的強(qiáng)大的注冊表。Nexus Repository由廣泛的用戶社區(qū)支持,部署了超過500萬個(gè)實(shí)例,支持全球1,200多家組織-600多家大型企業(yè)客戶。團(tuán)隊(duì)可以選擇使用Nexus Repository OSS高性能和完全免費(fèi)的容器注冊表,或者在需要企業(yè)可伸縮性和功能時(shí)選擇Nexus Repository Pro。
與Docker Hub或Helm不同,開發(fā)團(tuán)隊(duì)將Nexus Repository作為所有公共注冊表的中央訪問點(diǎn),從而為容器管理提供了更高效,更穩(wěn)定的解決方案。除了在整個(gè)CI/CD構(gòu)建管道中進(jìn)行集成之外,使用完全支持的企業(yè)級容器注冊表還具有許多好處。
多種存儲庫類型
Nexus存儲庫通過Proxy,Hosted和Group存儲庫支持Docker鏡像和Helm 3存儲庫,從而使用戶可以跨開發(fā)團(tuán)隊(duì)使用高級容器管理功能。
代理存儲庫 -通過為Docker Hub或任何其他Docker鏡像的遠(yuǎn)程注冊表設(shè)置代理存儲庫,減少重復(fù)下載并提高開發(fā)人員和CI服務(wù)器的下載速度。在本地緩存圖像,以加快上市時(shí)間并確保本地訪問控制。
托管存儲庫-使用Nexus存儲庫將您自己的容器映像以及第三方映像上載到私有Docker注冊表。這些注冊表的細(xì)粒度權(quán)限為開發(fā)團(tuán)隊(duì)和組織提供了增強(qiáng)的安全性。
存儲庫組-允許用戶從組中的所有存儲庫中提取映像,而無需在初始設(shè)置后進(jìn)行任何其他客戶端配置。組存儲庫使您可以使用工具的一個(gè)URL來訪問多個(gè)代理和托管存儲庫的聚合內(nèi)容。
創(chuàng)建Docker鏡像倉庫
創(chuàng)建一個(gè)Hosted類型的倉庫,設(shè)置HTTP模式訪問,端口為8090。
更新Neuxs Service,添加8090端口。
- apiVersion: v1
- kind: Service
- metadata:
- name: nexus3
- namespace: devops
- labels:
- k8s-app: nexus3
- spec:
- selector:
- k8s-app: nexus3
- ports:
- - name: web
- port: 8081
- targetPort: 8081
- - name: web2
- port: 8083
- targetPort: 8083
- - name: docker
- port: 8090
- targetPort: 8090
更新Neuxs Ingress,設(shè)置域名為registry.idevops.site
- - host: registry.idevops.site
- http:
- paths:
- - path: /
- backend:
- serviceName: nexus3
- servicePort: 8090
查看Nexus pod日志會發(fā)現(xiàn)已經(jīng)啟動(dòng)了。
登錄鏡像倉庫
- ## 默認(rèn)HTTPS會提示錯(cuò)誤
- [root@zeyang-nuc-service ~]# docker login registry.idevops.site
- Username: admin
- Password:
- Error response from daemon: Get https://registry.idevops.site/v2/: dial tcp 192.168.1.230:443: connect: connection refused
- ## 更新docker配置
- [root@zeyang-nuc-service ~]# vim /etc/docker/daemon.json
- {
- "exec-opts":["native.cgroupdriver=systemd"],
- "registry-mirrors": ["https://c9ojlmr5.mirror.aliyuncs.com"],
- "insecure-registries" : ["192.168.1.200:8088","registry.idevops.site"]
- }
- [root@zeyang-nuc-service ~]# systemctl daemon-reload
- [root@zeyang-nuc-service ~]# systemctl restart docker
- ## 再次登錄
- [root@zeyang-nuc-service ~]# docker login registry.idevops.site
- Username: admin
- Password:
- WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
- Configure a credential helper to remove this warning. See
- https://docs.docker.com/engine/reference/commandline/login/#credentials-store
測試上傳鏡像
- [root@zeyang-nuc-service ~]# docker tag mysql:5.7 registry.idevops.site/library/mysql:5.7
- [root@zeyang-nuc-service ~]# docker push registry.idevops.site/library/mysql:5.7
- The push refers to repository [registry.idevops.site/library/mysql]
- c187f0dccfe2: Pushed
- a45abaac81d1: Pushed
- 71c5f5690aef: Pushed
- 8df989cb6670: Pushed
- f358b00d8ce7: Pushed
- ae39983d39c4: Pushed
- b55e8d7c5659: Pushed
- e8fd11b2289c: Pushed
- e9affce9cbe8: Pushed
- 316393412e04: Pushed
- d0f104dc0a1f: Pushed
- 5.7: digest: sha256:55638620c5a206833217dff4685e0715fb297a8458aa07c5fe5d8730cc6c872f size: 2621
在nexus中驗(yàn)證.
Nexus作為容器注冊表,通過用于容器存儲管理和K8s部署的Docker和Helm注冊表為企業(yè)提供動(dòng)力。隨著DevOps團(tuán)隊(duì)規(guī)模的擴(kuò)大,至關(guān)重要的是要依靠有關(guān)應(yīng)用程序中開源組件質(zhì)量的精確報(bào)告。Nexus Lifecycle向開發(fā)人員和安全專家提供有關(guān)安全漏洞,許可風(fēng)險(xiǎn)和體系結(jié)構(gòu)質(zhì)量的開源組件智能。尋求完全集成的通用容器管理注冊表以及最精確的組件智能的組織,可以使用Nexus平臺來滿足不斷增長的容器化和開源治理的需求。