当前位置: 首页 > news >正文

基于k8s搭建部署Nexus服务

文章目录

  • 一、编写创建PV和PVC的配置文件
  • 二、编写Nexus部署配置文件
  • 三、部署
    • 3.1 创建命名空间
    • 3.2 部署服务
  • 四、查看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部署完成。

相关文章:

  • 处理机调度【操作系统学习笔记】
  • 开源SPL,WebService/Restful广泛应用于程序间通讯,如微服务、数据交换、公共或私有的数据服务等。
  • 炔基聚乙二醇巯基 Alkyne-PEG-SH 炔基PEG硫醇
  • 写作纠错?用机器学习实现单词拼写修正器(附Python代码)
  • 【DjangoDRF+缓存 五万字总结】预计在2022.11月份会再次进行更新
  • 猿创征文|实战开发openGauss DataStudio的sql联想结构
  • VMware创建Linux虚拟机之(三)Hadoop安装与配置及搭建集群
  • 在halcon中使用模板匹配助手进行定位真的很好用!!!
  • 青少年python系列 7.函数
  • python入门——m个位置,每个位置有n种可能,求所有排列结果
  • C | 妙用异或
  • 采用uni-app开发的多端圈子社区论坛系统
  • Java语言特点
  • 读书笔记1|深度学习入门:Machine Learning Yearning
  • matplotlib+cartopy+geopandas,实现专业地图可视化
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【Amaple教程】5. 插件
  • Android组件 - 收藏集 - 掘金
  • es6--symbol
  • Git 使用集
  • Intervention/image 图片处理扩展包的安装和使用
  • js如何打印object对象
  • PHP 的 SAPI 是个什么东西
  • Python_网络编程
  • React的组件模式
  • 从零开始的无人驾驶 1
  • 面试遇到的一些题
  • 强力优化Rancher k8s中国区的使用体验
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 如何选择开源的机器学习框架?
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一些关于Rust在2019年的思考
  • mysql面试题分组并合并列
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • (1)(1.11) SiK Radio v2(一)
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (二)fiber的基本认识
  • (黑马C++)L06 重载与继承
  • (排序详解之 堆排序)
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .net访问oracle数据库性能问题
  • .NET构架之我见
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @SuppressWarnings(unchecked)代码的作用
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ JavaScript ] JSON方法