基于k8s搭建部署Nexus服务

【原文链接】基于k8s搭建部署Nexus服务

一、编写创建PV和PVC的配置文件

编写nexus-pvc-pv.yml文件,内容如下:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: sc-nexus3  # 自定义
  namespace: nexus  # 自定义,但需要与本文后面所有的命名空间保持一致
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  pv-nexus3 # 自定义
  namespace: nexus  # 自定义,与本文前后所有命名空间保持一致
  labels:
    pv: pv-nexus3 # 自定义
spec:
  capacity:
    storage: 50Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: sc-nexus3 # 前面创建的StorageClass的名字
  nfs:
    path: /root/data/nexus # nfs存储的实际路径
    server: 192.168.16.40  # nfs服务器的ip地址
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-nexus3 # 自定义
  namespace: nexus # 自定义,与本文前后所有命名空间保持一致
  labels:
    pvc: pvc-nexus3 # 自定义
spec:
  storageClassName: sc-nexus3 # 前面创建的StorageClass的名字
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi
  selector:
    matchLabels:
      pv: pv-nexus3 # PV中的label

二、编写Nexus部署配置文件

编写nexus-deploy.yml文件,内容如下:

kind: Deployment
apiVersion: apps/v1
metadata:
  name: nexus3 # 自定义
  labels:
    app: nexus3 # 自定义
  namespace: nexus # 自定义,与本文前后所有命名空间保持一致
spec:
  replicas: 1 # 副本的数量
  selector:
    matchLabels:
      app: nexus3
  template:
    metadata:
      labels:
        app: nexus3
    spec:
      containers:
        - name: nexus3
          image: sonatype/nexus3
          ports:
            - name: nexus3-8081
              containerPort: 8081 # 容器端口
              protocol: TCP
          resources:
            limits:
              memory: 6G
              cpu: 1000m
          imagePullPolicy: IfNotPresent
          volumeMounts:
          - name: data
            mountPath: /nexus-data # 数据路径挂载出来
      restartPolicy: Always
      volumes:
        - name: data
          persistentVolumeClaim:
            claimName: pvc-nexus3 # PVC的名字
            readOnly: false
---
kind: Service
apiVersion: v1
metadata:
  name: nexus3
  namespace: nexus
  labels:
    app: nexus3
spec:
  type: NodePort
  ports:
    - port: 8081
      targetPort: 8081
      nodePort: 30203 # 对外开发的端口,自定义
  selector:
    app: nexus3

三、部署

3.1 创建命名空间

执行如下命令,因为配置文件中设置的命名空间均为nexus,因此需要提前创建好,当然也可以直接在配置文件中配置

kubectl create namespace nexus

3.2 部署服务

将nexus-pvc-pv.yml文件和nexus-deploy.yml文件上传到k8s服务器的一个目录下比如nexus目录下,然后进入nexus目录,执行如下命令

kubectl apply -f ./

四、查看Nexus页面

在浏览器中使用k8s的集群的主节点的ip和配置文件中暴露的NodePort端口,比如这里:192.168.16.40:30203,即可打开页面,如下

然后使用admin账号登录,密码在 /nexus-data/admin.password 文件中,因为这里将/nexus-data 目录g挂载到nfs服务器了,因此可以通过nfs服务器中找到此文件,然后查看密码登录,如下:

然后点击【next】

然后重新设置密码

然后设置可以匿名访问,因为一般情况下Nexus可以允许匿名用户进行一些包的下载以及在代码中配置自动下载的

然后点击【finish】完成配置

然后退出admin登录,点击浏览,如下可以看到默认的一些仓库

然后使用修改后的密码登录,可以看到此处有上传操作

至此 Nexus部署完成。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

redrose2100

您的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值