部署Nexus3
---
apiVersion: apps/v1
kind: Deployment
metadata:
annotations: {}
labels:
k8s.kuboard.cn/name: nexus3
name: nexus3
namespace: devops
resourceVersion: '8544084'
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s.kuboard.cn/name: nexus3
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
k8s.kuboard.cn/name: nexus3
spec:
containers:
- image: 'sonatype/nexus3:3.41.0'
imagePullPolicy: IfNotPresent
name: nexus3
ports:
- containerPort: 8081
hostPort: 8081
name: web
protocol: TCP
- containerPort: 8083
hostPort: 8083
name: web2
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: volume-2h6rn
persistentVolumeClaim:
claimName: nexus
---
apiVersion: v1
kind: Service
metadata:
annotations: {}
labels:
k8s.kuboard.cn/name: nexus3
name: nexus3
namespace: devops
resourceVersion: '8405188'
spec:
clusterIP: 10.107.90.23
clusterIPs:
- 10.107.90.23
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: web
port: 8081
protocol: TCP
targetPort: 8081
- name: web2
port: 8083
protocol: TCP
targetPort: 8083
selector:
k8s.kuboard.cn/name: nexus3
sessionAffinity: None
type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations: {}
labels:
k8s.kuboard.cn/name: nexus3
name: nexus3
namespace: devops
resourceVersion: '8545439'
spec:
ingressClassName: nginx
rules:
- host: nexus.bianminchang.com
http:
paths:
- backend:
service:
name: nexus3
port:
number: 8081
path: /
pathType: Prefix
Nexus3 概念
- Nexus是一个强大的 Maven 仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。 如果使用了公共的Maven仓库服务器,可以从Maven中央仓库下载所需要的构件(Artifact),但这通常不是一个好的做法。
- 正常做法是在本地架设一个Maven仓库服务器,即利用Nexus私服可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。
- Nexus在代理远程仓库的同时维护本地仓库,以降低中央仓库的负荷,节省外网带宽和时间,Nexus私服就可以满足这样的需要。
- Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。
- Nexus支持WebDAV与LDAP安全身份认证。
- Nexus还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。
为什么要构建Nexus私服?
- 如果没有Nexus私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服中拥有项目所需的所有构件。
nexus私服的优点:
1)加速构建; 2)节省带宽; 3)节省中央maven仓库的带宽; 4)稳定(应付一旦中央服务器出问题的情况) 5)控制和审计; 6)能够部署第三方构件; 7)可以建立本地内部仓库 8)可以建立公共仓库
Nexus3 的使用
主页
配置管理-邮件通知