前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云原生大前端之使用 Helm 部署 Verdaccio,在 Kubernetes 上运行私有 NPM Registry

云原生大前端之使用 Helm 部署 Verdaccio,在 Kubernetes 上运行私有 NPM Registry

作者头像
为少
发布2021-05-27 19:03:51
1.5K0
发布2021-05-27 19:03:51
举报
文章被收录于专栏:黑客下午茶黑客下午茶

介绍

Verdaccio 是一个简单的,零配置所需的本地私有 npm registry。无需整个数据库就可以开始!Verdaccio 开箱即用,有其自己的小型数据库, 并具有代理其他注册中心的功能(例如:npmjs.org),并在此过程中缓存下载的模块。对于那些希望扩展其存储功能的用户,Verdaccio 支持各种社区制造的插件以挂接到 Amazon’s s3, Google Cloud Storage 等服务或创建自己的插件。

Verdaccio 是轻量级的私有 NPM 代理 registry。

提示:阅读本文需要你有一定的 kubernetes 使用基础。

Helm 部署

添加官方 Chart 仓库

代码语言:javascript
复制
helm repo add verdaccio https://charts.verdaccio.org

本地搜索查看一下刚添加的仓库

代码语言:javascript
复制
helm search repo verdaccio
# ...
# verdaccio/verdaccio     0.16.2          4.7.2           A lightweight private npm proxy registry (sinop...

直接将这个版本拉取到本地

代码语言:javascript
复制
helm pull verdaccio/verdaccio --version 0.16.2

设置 PVC,持久化数据

笔者这里是用公司内部 NFS 服务器做数据存储管理的

代码语言:javascript
复制
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: verdaccio-data
  labels:
    app: verdaccio-data
spec:
  storageClassName: ""
  capacity:
    storage: 500Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  mountOptions:
    - hard
    - nfsvers=4.1
  nfs:
    path: /home/nfs/verdaccio/data
    server: 10.1.1.28
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: verdaccio-data
spec:
  storageClassName: ""
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 500Gi
  selector:
    matchLabels:
      app: verdaccio-data

接下来是解verdaccio-0.16.2.tgz, 复制 Chart 中的 values.yaml 进行定制。

启用并定制 Ingress

笔者使用的是 Traefik v2.2,所以如下:

代码语言:javascript
复制
ingress:
  enabled: true
  # Set to true if you are on an old cluster where apiVersion extensions/v1beta1 is required
  useExtensionsApi: true
  paths:
    - /
  hosts:
    - npm.your-company.com
  annotations:
    ingress.kubernetes.io/ssl-redirect: "true"
    ingress.kubernetes.io/proxy-body-size: "0"
    kubernetes.io/ingress.class: "traefik"
    traefik.ingress.kubernetes.io/router.tls: "true"
    traefik.ingress.kubernetes.io/router.entrypoints: websecure
  tls:
    - secretName: your-company-cert
      hosts:
        - npm.your-company.com

configMap 配置

代码语言:javascript
复制
#....other
# 使用淘宝的cnpmjs镜像,加速
uplinks:
  npmjs:
    url: https://registry.npm.taobao.org/
# @company/* 的包直接从私有库中获取,其它的走 upstream
packages:
    '@company/*':
      # scoped packages
      access: $all
      publish: $authenticated
      proxy: npmjs
#....other

最终效果

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑客下午茶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • Helm 部署
    • 添加官方 Chart 仓库
      • 本地搜索查看一下刚添加的仓库
        • 直接将这个版本拉取到本地
          • 设置 PVC,持久化数据
            • 启用并定制 Ingress
              • configMap 配置
                • 最终效果
                相关产品与服务
                数据库
                云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档