范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

云原生。大数据镜像仓库Harbor对接MinIO对象存储

  一、前言
  Harbor的部署之前使用的存储是NFS,虽然可以使用rsync+inotify做数据同步做解决单点问题,但是NFS效率/性能有限,没有对象存储那么强大,所以一般使用对象存储居多,这里选用 MinIO   对象存储软件,当然也可以使用Ceph  或者其它对象存储。都部署在k8s 集群上,k8s 基础环境部署可以参考我之前的文章:「云原生」Kubernetes(k8s)最完整版环境部署(V1.24.1)二、MinIO on K8S 部署
  MinIO 的介绍可以参考我这篇文章:高性能分布式对象存储——MinIO(环境部署)
  这里使用Helm 部署 MinIO ,关于 Helm 的介绍可以参考官方文档,部署步骤如下: 1)下载安装 MinIO 包mkdir -p /opt/k8s/bigdata/minio;cd /opt/k8s/bigdata/minio # 添加数据源 helm repo add bitnami https://charts.bitnami.com/bitnami # 下载 helm pull bitnami/minio # 解压部署包 tar -xf minio-11.9.2.tgz2)修改配置
  添加文件 minio/templates/storage-class.yaml  ,内容如下:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata:   name: minio-local-storage provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer
  添加 pv 配置  minio/templates/pv.yaml  {{- range .Values.persistence.local }} --- apiVersion: v1 kind: PersistentVolume metadata:   name: {{ .name }} spec:   capacity:     storage: {{ .size }}   accessModes:   - ReadWriteOnce   persistentVolumeReclaimPolicy: Retain   storageClassName: minio-local-storage   local:     path: {{ .path }}   nodeAffinity:     required:       nodeSelectorTerms:       - matchExpressions:         - key: kubernetes.io/hostname           operator: In           values:           - {{ .host }}  --- {{- end }}
  修改配置 minio/values.yaml  service:   type: NodePort   nodePorts:     api: "30900"     console: "30901"  # --- # 这里先部署单节点,后面会详细讲在k8s中部署分布式minio,这里的重点是Harbor对接minio mode: standalone  # --- statefulset:   replicaCount: 4  # --- persistence   enabled: true   storageClass: minio-local-storage   size: 1Gi   local:     - name: minio-pv-0       size: 1Gi       path: /opt/k8s/bigdata/minio/data       host: local-168-182-110
  【温馨提示】需要提前在对应的节点上创建对应的目录。 3)开始部署cd /opt/k8s/bigdata/minio helm install minio ./minio    --namespace=minio    --create-namespace
  notes NAME: minio LAST DEPLOYED: Sun Aug 28 09:13:06 2022 NAMESPACE: minio STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: CHART NAME: minio CHART VERSION: 11.9.2 APP VERSION: 2022.8.22  ** Please be patient while the chart is being deployed **  MinIO  can be accessed via port  on the following DNS name from within your cluster:     minio.minio.svc.cluster.local  To get your credentials run:     export ROOT_USER=$(kubectl get secret --namespace minio minio -o jsonpath="{.data.root-user}" | base64 -d)    export ROOT_PASSWORD=$(kubectl get secret --namespace minio minio -o jsonpath="{.data.root-password}" | base64 -d)  To connect to your MinIO  server using a client:  - Run a MinIO  Client pod and append the desired command (e.g. "admin info"):     kubectl run --namespace minio minio-client       --rm --tty -i --restart="Never"       --env MINIO_SERVER_ROOT_USER=$ROOT_USER       --env MINIO_SERVER_ROOT_PASSWORD=$ROOT_PASSWORD       --env MINIO_SERVER_HOST=minio       --image docker.io/bitnami/minio-client:2022.8.11-debian-11-r3 -- admin info minio  To access the MinIO  web UI:  - Get the MinIO  URL:     export NODE_PORT=$(kubectl get --namespace minio -o jsonpath="{.spec.ports[0].nodePort}" services minio)    export NODE_IP=$(kubectl get nodes --namespace minio -o jsonpath="{.items[0].status.addresses[0].address}")    echo "MinIO  web URL: http://$NODE_IP:$NODE_PORT/minio"
  查看 kubectl get pods,svc -n minio -owide
  webUI 登录
  http://local-168-182-110:30901
  账号密码: export ROOT_USER=$(kubectl get secret --namespace minio minio -o jsonpath="{.data.root-user}" | base64 -d) echo $ROOT_USER export ROOT_PASSWORD=$(kubectl get secret --namespace minio minio -o jsonpath="{.data.root-password}" | base64 -d) echo $ROOT_PASSWORD
  4)安装 mc 测试cd /opt/k8s/bigdata/minio wget https://dl.min.io/client/mc/release/linux-amd64/mc chmod +x mc ln -s /opt/k8s/bigdata/minio/mc /usr/bin/mc mc --help
  添加MinIO存储服务 mc config host add minio http://local-168-182-110:30900 admin Kgb4zZT1cU mc admin info minio # 并创建bucket harbor mc mb minio/harbor mc ls minio
  常用命令参数: ls       列出文件和文件夹。 mb       创建一个存储桶或一个文件夹。 cat      显示文件和对象内容。 pipe     将一个STDIN重定向到一个对象或者文件或者STDOUT。 share    生成用于共享的URL。 cp       拷贝文件和对象。 mirror   给存储桶和文件夹做镜像。 find     基于参数查找文件。 diff     对两个文件夹或者存储桶比较差异。 rm       删除文件和对象。 events   管理对象通知。 watch    监听文件和对象的事件。 policy   管理访问策略。 session  为cp命令管理保存的会话。 config   管理mc配置文件。 update   检查软件更新。 version  输出版本信息。5)卸载helm uninstall minio -n minio kubectl delete ns minio --force三、Harbor on K8S 部署
  1)创建stl证书mkdir /opt/k8s/bigdata/harbor/stl && cd /opt/k8s/bigdata/harbor/stl # 生成 CA 证书私钥 openssl genrsa -out ca.key 4096 # 生成 CA 证书 openssl req -x509 -new -nodes -sha512 -days 3650   -subj "/C=CN/ST=Guangdong/L=Shenzhen/O=harbor/OU=harbor/CN=myharbor-minio.com"   -key ca.key   -out ca.crt # 创建域名证书,生成私钥 openssl genrsa -out myharbor-minio.com.key 4096 # 生成证书签名请求 CSR openssl req -sha512 -new      -subj "/C=CN/ST=Guangdong/L=Shenzhen/O=harbor/OU=harbor/CN=myharbor-minio.com"      -key myharbor-minio.com.key      -out myharbor-minio.com.csr # 生成 x509 v3 扩展 cat > v3.ext <<-EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names  [alt_names] DNS.1=myharbor-minio.com DNS.2=*.myharbor-minio.com DNS.3=hostname EOF #创建 Harbor 访问证书 openssl x509 -req -sha512 -days 3650      -extfile v3.ext      -CA ca.crt -CAkey ca.key -CAcreateserial      -in myharbor-minio.com.csr      -out myharbor-minio.com.crt2)创建secretkubectl create ns harbor-minio kubectl create secret tls myharbor-minio.com --key myharbor-minio.com.key --cert myharbor-minio.com.crt -n harbor-minio kubectl get secret myharbor-minio.com -n harbor-minio3)下载 harbor 安装包cd /opt/k8s/bigdata/harbor helm repo add harbor https://helm.goharbor.io helm pull harbor/harbor tar -xf harbor-1.9.3.tgz4)配置 minio 存储persistence:   enabled: true   imageChartStorage:     disableredirect: true     type: s3     filesystem:       rootdirectory: /storage       #maxthreads: 100     s3:       # region描述的是服务器的物理位置,默认是us-east-1(美国东区1),这也是亚马逊S3的默认区域       region: us-west-1       bucket: harbor       # 账号,密码       accesskey: admin       secretkey: Kgb4zZT1cU       # 这里minio.minion是.       regionendpoint: http://minio.minio:9000       encrypt: false       secure: false       v4auth: true       chunksize: "5242880"       rootdirectory: /       redirect:         disabled: false     maintenance:       uploadpurging:         enabled: false     delete:       enabled: true6)安装 nfs (harbor 本身服务存储)
  harbor本身服务的存储这里使用nfs 1、所有节点安装nfsyum -y install  nfs-utils rpcbind2、在master节点创建共享目录并授权mkdir /opt/nfsdata # 授权共享目录 chmod 666 /opt/nfsdata3、配置exports文件cat > /etc/exports<> /etc/fstab mount -a6、创建nfs provisioner和持久化存储SC# 添加数据源 helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/  # 开始安装 helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner    --namespace=nfs-provisioner    --create-namespace    --set image.repository=willdockerhub/nfs-subdir-external-provisioner    --set image.tag=v4.0.2    --set replicaCount=2    --set storageClass.name=nfs-client    --set storageClass.defaultClass=true    --set nfs.server=192.168.182.110    --set nfs.path=/opt/nfsdata  # 查看 kubectl get pods,deploy,sc -n nfs-provisioner7)开始安装cd /opt/k8s/bigdata/harbor helm install myharbor-minio --namespace harbor-minio ./harbor    --set expose.ingress.hosts.core=myharbor-minio.com    --set expose.ingress.hosts.notary=notary.myharbor-minio.com    --set-string expose.ingress.annotations."nginx.org/client-max-body-size"="1024m"    --set persistence.persistentVolumeClaim.registry.storageClass=nfs-client   --set persistence.persistentVolumeClaim.jobservice.storageClass=nfs-client    --set persistence.persistentVolumeClaim.database.storageClass=nfs-client    --set persistence.persistentVolumeClaim.redis.storageClass=nfs-client    --set persistence.persistentVolumeClaim.trivy.storageClass=nfs-client    --set persistence.persistentVolumeClaim.chartmuseum.storageClass=nfs-client    --set persistence.enabled=true    --set expose.tls.secretName=myharbor-minio.com    --set externalURL=https://myharbor-minio.com    --set harborAdminPassword=Harbor12345
  notes NAME: myharbor LAST DEPLOYED: Sun Aug 28 11:27:47 2022 NAMESPACE: harbor-minio STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Please wait for several minutes for Harbor deployment to complete. Then you should be able to visit the Harbor portal at https://myharbor-minio.com For more details, please visit https://github.com/goharbor/harbor
  查看 kubectl get pods,svc,ingress -n  harbor-minio
  配置 /etc/hosts  ,如果有域名解析就可忽略192.168.182.110 myharbor-minio.com 192.168.182.111 myharbor-minio.com 192.168.182.112 myharbor-minio.com
  Harbor web:https://myharbor-minio.com
  8)Containerd 配置 Harbor
  以前使用docker-engine的时候,只需要修改/etc/docker/daemon.json就行,但是新版的k8s已经使用containerd了,所以这里需要做相关配置,要不然containerd会失败。证书(ca.crt)可以在页面上下载:
  创建域名目录 mkdir /etc/containerd/myharbor-minio.com cp ca.crt /etc/containerd/myharbor-minio.com/
  配置文件: /etc/containerd/config.toml  [plugins."io.containerd.grpc.v1.cri".registry]       config_path = ""        [plugins."io.containerd.grpc.v1.cri".registry.auths]        [plugins."io.containerd.grpc.v1.cri".registry.configs]         [plugins."io.containerd.grpc.v1.cri".registry.configs."myharbor-minio.com".tls]           insecure_skip_verify = true  #跳过认证           ca_file = "/etc/containerd/myharbor-minio.com/ca.crt"         [plugins."io.containerd.grpc.v1.cri".registry.configs."myharbor-minio.com".auth]           username = "admin"           password = "Harbor12345"        [plugins."io.containerd.grpc.v1.cri".registry.headers]        [plugins."io.containerd.grpc.v1.cri".registry.mirrors]         [plugins."io.containerd.grpc.v1.cri".registry.mirrors."myharbor-minio.com"]           endpoint = ["https://myharbor-minio.com"]
  重启containerd #重新加载配置 systemctl daemon-reload #重启containerd systemctl restart containerd9)测试验证# tag # ctr 有命名空间 namespace 来指定类似于工作空间的隔离区域。使用方法 ctr -n default images ls 来查看 default 命名空间的镜像,不加 -n 参数,默认也是使用default的命名空间。i:images ctr -n k8s.io i tag docker.io/bitnami/minio:2022.8.22-debian-11-r0 myharbor-minio.com/bigdata/minio:2022.8.22-debian-11-r0  # 推送镜像到harbor ctr --namespace=k8s.io images push myharbor-minio.com/bigdata/minio:2022.8.22-debian-11-r0 --skip-verify --user admin:Harbor12345  # --namespace=k8s.io 指定命名空间,不是必须,根据环境而定 # --skip-verify 跳过认证 # --user 指定harbor用户名及密码
  查看 minio :http://local-168-182-110:30901/
  成查看minio的harbor bucket是否存在docker目录。如果存在说明成。
  10)卸载helm uninstall myharbor-minio -n harbor-minio
  镜像仓库  Harbor   对接 MinIO   对象存储就到了,有疑问的小伙伴欢迎留言哦,后续会持续分享云原生和大数据相关的文章,请小伙伴耐心等待哦~

C罗真的做对了吗?乔治娜翻身上位很励志,伊莲娜离开C罗啥都不是说到C罗乔治娜伊莲娜相信很多球迷朋友不会陌生,C罗是球迷眼中的超级球星,是绿茵场上的王者,1985年出生的C罗如今37岁了,依然是绿茵场上最亮的仔,37岁对很多足球运动员来说都已经意大利递补参加世界杯?国际足联终于发声,仅一种可能北京时间2022年5月25日,针对意大利可能递补参加卡塔尔世界杯的说法,国际足联官方终于发声了,那就是基本不可能。国际足联理事会成员伊芙丽娜克里斯蒂林表示,只有在欧洲球队被逐出世界少走弯路!生活中的13个小窍门1专注全神去工作,不要一心二用。分心走神造成工作失误也是一笔损失。2外出出差或者旅游,不要选择靠近路边一侧的宾馆酒店。隔音效果不好,没有一个相对安静的舒适环境。3不要心血来潮去买各气温每升1,心脏危险一分!5个健康要点送给大家最近天气越来越热了一种危险的疾病也悄悄赶到了有既往数据表明夏天气温超过30后最高温每升高1急诊科的心脑血管疾病患者就会增加17。3夏季心脏最怕4件事准确接收心梗信号出现下列这些表现单机王炸石头T8Plus超大吸力震动拖地AI避障价格不到3k大家好,我是air04,本次和大家分享的是我的第54台扫地机石头科技最新推出的T8Plus集尘版。石头T8Plus可以算作是T7sPlus的换代产品,跟T7sPlus一样拥有结构光鼾友在睡眠中憋气断气会有生命危险吗?睡觉中打呼噜憋气断气可能有生命危险,上述症状就是医学上所说的睡眠呼吸暂停的症状。很多人都有睡觉打呼噜的毛病,这不仅会影响到周围人的睡眠,对自己本身的健康来说也是一个威胁。然而绝大多1米91!冠军!中国跳高诞生新女神,年仅19岁腿长惊人北京时间5月26日,外训中的中国女子跳高名将陆佳雯传来喜讯,她成功拿下了一个冠军(并列),成绩是1米91,这是值得认可的一个成绩了。说起跳高,很多人想起的就是张国伟,因为网红张国伟中国女排今日出征!16人名单官宣!王艺竹入围,吴梦洁无缘5月25日消息,新一届中国女排出征2022年世界女排联赛的大名单已经确认,袁心玥丁霞领衔16人出征,陈佩妍吴梦洁许嘉楠和王逸凡4名队员无缘大名单,她们另有比赛任务。按照日程安排,2郭艾伦再受冷落,男篮亚洲杯宣传海报,中国队代表人物是王哲林随着男篮亚洲杯举办时间的临近,昨天亚洲杯管委会正式对外公布了比赛宣传海报,每个参赛国家都有一名代表性人物登上宣传海报,而这一次代表中国男篮的是来自上海队的王哲林。个人感觉王哲林虽然一司机用瓶装饮料支撑方向盘自动驾驶开进了沟里虽然越来越多的车配备了辅助驾驶功能,甚至有不少车企还宣称达到了L2L3级自动驾驶,但就目前的水平而言,开车上路还是始终要把方向盘窝在自己手里,否则很容易也酿出祸事。近日,一汽车博主华为将发布新重磅产品,世界最大电网工程投产!哪些公司能受益?市场主线早盘上证指数窄幅震荡,涨跌家数上涨少跌多,指数下探至3137点迅速拉回到前高后再次回落继续震荡蓄能状态,关键在于震荡过后出中枢的方向,如果向上走关注压力位3190点附近或之
基金放大镜抓住消费胜负手还看白酒?张坤萧楠刘彦春等五大金刚持仓透玄机记者杜萌春节期间,全国各地多处景区重现热闹的烟火气,消费复苏已经成为2023年的关键词之一。作为长坡厚雪的赛道之一,消费板块自去年11月份以来已经积累了一定的涨幅。如何把握住202每日汇市人民币中间价单日调升22基点报6。7604,1月全月总计上调2042基点北京商报讯(记者廖蒙)1月31日,央行授权中国外汇交易中心公布,2023年1月31日银行间外汇市场人民币汇率中间价为1美元对人民币6。7604元,前一交易日中间价报6。7626元,V观财报博纳影业2022年预亏最多7400万,主营亏损计提减值准备中新经纬1月31日电博纳影业公布2022年业绩预告,预计2022年度归属于上市公司股东的净亏损3700万元7400万元,上年同期为盈利3。63亿元扣除非经常性损益后的净亏损1。17泓澄投资13只基金2022年10只跌超20最深跌幅24中国经济网北京1月31日讯(记者康博)从2022年业绩表现看,百亿私募北京泓澄投资管理有限公司(简称泓澄投资)公开披露的13只基金均遭遇亏损,其中有10只跌幅在20以上。跌幅最大的河源今年力争引进110个以上超亿元先进制造业项目河源紧抓制造业当家关键点,扶持现有企业做大做强,夯实高质量发展产业根基。图为某制造业企业工人正在认真工作通讯员供图羊城晚报全媒体记者李海婵通讯员陈殷报道力争全市引进超亿元先进制造业元气森林要卖掉北海牧场?伊利蒙牛新希望谁会接盘?文微信公号食悟(IDfoodgnosis)春节前,元气森林旗下独立运作的乳品品牌北海牧场,股东突然发生变更,一家注册地在中国香港的壳公司取代元气森林子公司。最近元气森林有点被神话了金融大势多重利好叠加,今年寿险行业能企稳回升吗?过去营销员只负责拉人头,这种粗犷的销售模式在未来的客户群里面已经不可能了,寿险代理人要真正转型成为一对一的需求分析和需求销售。一家头部寿险公司总经理近日表示,希望通过五年的时间,让建设数字强省!来看2023年河南省数字经济发展新目标大河网讯推动数字产业化产业数字化数字化治理数据价值化互促共进,加快建设数字强省!1月30日,河南省发展改革委发布了2023年河南省数字经济发展工作方案(简称方案),对基础支撑核心产2023年,医药行业十大金股展望!回顾一下春节前的行情,还是比较给力的,上证指数自去年12月23日左右见底,到春节假期休市前1月20日,累计上涨了约7。44个百分点。其中疫情防控新十条政策以及与经济发展货币政策相关鞍本重组四统一融入央企管控格局新本钢一键式炼钢重组是起点,整合融合才是关键。正如鞍钢集团总法律顾问鞍本整合融合推进工作组组长计岩所言,如果整而不合合而不改,鞍本重组所带来的规模优势将无法转化成为协同聚合优势,再三星GalaxyS23标准版遭全方位缩水不出意外,在2月1日(明天),三星就将发布最新的GalaxyS23系列手机,但从目前的爆料消息来看,S23的标准版似乎并不值得期待。早些时候,就曾有消息称S23标准版仅有UFS3。