1. 使用nfs共享存储搭建的pvc(此次都放在一个vpc下);
  2. harbor使用nodePort方式部署,不使用ssl;
  1. 准备工作:

    • 准备好harbor用的pvc

    • 安装好helm,添加好可用源;

    • 因为使用的nfs创建的pvc,要给足权限,要不数据库的pod创建时会报错;

      chmod -R 777 /data/nfs-harbor/
    • 创建好harbornamespace,以后的所有资源都创建在这个命名空间里(包括harbor用的pvc);

      kubectl create namespace harbor
  2. 下载harbor包:

    #添加harbor的helm仓库
    helm repo add harbor https://helm.goharbor.io #下载最新的harbor包
    helm pull harbor/harbor
  3. 解压tgz包,修改values.yaml文件

    #values.yaml文件很长,只需要修改一部分
    
    expose:
    type: nodePort #修改为nodePort
    tls:
    enabled: false #不使用ssl,修改为false
    ......
    externalURL: http://10.1.129.121:30002 #修改为其中一个node节点的IP+端口,以后harbor使用这个URL访问
    ......
    persistence:
    enabled: true
    resourcePolicy: "keep"
    persistentVolumeClaim:
    registry:
    existingClaim: "nfs-pvc-harbor" #修改为之前创建好的pvc
    storageClass: ""
    subPath: "registry" #修改为对应名字,以后的数据存在此目录中
    accessMode: ReadWriteOnce
    size: 5Gi
    chartmuseum:
    existingClaim: "nfs-pvc-harbor" #修改为之前创建好的pvc
    storageClass: ""
    subPath: "chartmuseum" #修改为对应名字,以后的数据存在此目录中
    accessMode: ReadWriteOnce
    size: 5Gi
    jobservice:
    existingClaim: "nfs-pvc-harbor" #修改为之前创建好的pvc
    storageClass: ""
    subPath: "jobservice" #修改为对应名字,以后的数据存在此目录中
    accessMode: ReadWriteOnce
    size: 1Gi
    database:
    existingClaim: "nfs-pvc-harbor" #修改为之前创建好的pvc
    storageClass: ""
    subPath: "database" #修改为对应名字,以后的数据存在此目录中
    accessMode: ReadWriteOnce
    size: 1Gi
    redis:
    existingClaim: "nfs-pvc-harbor" #修改为之前创建好的pvc
    storageClass: ""
    subPath: "redis" #修改为对应名字,以后的数据存在此目录中
    accessMode: ReadWriteOnce
    size: 1Gi
    trivy:
    existingClaim: "nfs-pvc-harbor" #修改为之前创建好的pvc
    storageClass: ""
    subPath: "trivy" #修改为对应名字,以后的数据存在此目录中
    accessMode: ReadWriteOnce
    size: 5Gi
    ......
  4. 安装harbor

    helm install harbor harbor/harbor -f values.yaml -n harbor
    
    #等一会查看pod创建是否成功,默认密码为admin/Harbor12345
    kubectl get pod -n harbor #使用之前配的URL即可登录harbor页面
  5. 配置harbor镜像仓库: /

    #修改docker添加http为信任仓库
    vim /etc/docker/daemon.json "insecure-registries": ["10.1.129.121:30002"] #重启docker
    systemctl restart docker #配置用户名密码
    docker login 10.1.129.121:30002 #测试推送
    docker push 10.1.129.121:30002/k8s.gcr.io/kube-apiserver:v1.23.1

使用Helm安装harbor的更多相关文章

  1. 通过helm 安装 harbor 不成功问题处理

    helm 安装 harbor 安装不成功处理过程 通过安装脚本 helm install c7n/harbor \ --set expose.ingress.hosts.core=harbor.ls. ...

  2. kubernetes实战(十):k8s使用Helm安装harbor

    1.基本概念 对于复杂的应用中间件,需要设置镜像运行的需求.环境变量,并且需要定制存储.网络等设置,最后设计和编写Deployment.Configmap.Service及Ingress等相关yaml ...

  3. 通过helm搭建Harbor

    文章转载自:http://www.mydlq.club/article/66/ 系统环境: kubernetes 版本:1.20.1 Traefik Ingress 版本:2.4.3 Harbor C ...

  4. 1.在 Kubernetes 在快速安装 Harbor

    网址:https://www.qikqiak.com/post/harbor-quick-install/ 安装 Harbor Harbor 支持多种安装方式,源码目录下面默认有一个安装脚本(make ...

  5. 安装harbor私有镜像仓库

    有朋友安装harbor的过程中遇到很多问题,为此写一篇最简单安装harbor的文档,希望能帮助所有刚开始接触harbor的新手.harbor的架构不做探究. 实验验环境:os --> cento ...

  6. kubernetes包管理工具Helm安装

    helm官方建议使用tls,首先生成证书. openssl genrsa -out ca.key.pem openssl req -key ca.key.pem -new -x509 -days -s ...

  7. kubernetes(k8s) helm安装kafka、zookeeper

    通过helm在k8s上部署kafka.zookeeper 通过helm方法安装 k8s上安装kafka,可以使用helm,将kafka作为一个应用安装.当然这首先要你的k8s支持使用helm安装.he ...

  8. 安装Harbor

    一.安装Harbor 1. Harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Dock ...

  9. debian8安装harbor

    这里的系统版本是debian8.8,harbor版本为1.1.2. 1.安装docker-ce 1.1.Install packages to allow apt to use a repositor ...

随机推荐

  1. 基础概念(2):怎么用cc来编译?

    怎么用cc来编译? 总结卡片: cc的使用可以很简单,指定要转换的程序文件就可以了,比如:cc hello.c. 按cc的规则(我这里是clang-llvm),程序文件以.c或.cpp为后缀. cc有 ...

  2. 【记录一个问题】android ndk中不支持pthread_yield()

    如题 使用这个函数报如下错误: error: use of undeclared identifier 'pthread_yield' pthread_yield(); 不得已,使用usleep(50 ...

  3. 关于启动bash提示‘bash: export: `//这是新的': not a valid identifier’的解决办法

    学习linux以来将centos改的也不少了,也不知道这个问题是由于那个修改来的.最近改bash的操作环境配置文件,用到了~/.bashrc这个文件,发现里面被我修改过. 那是当年安装fcitx输入法 ...

  4. golang中的原子操作atomic包

    1. 概念 原子操作 atomic 包 加锁操作涉及到内核态的上下文切换,比较耗时,代价高, 针对基本数据类型我们还可以使用原子操作来保证并发的安全, 因为原子操作是go语言提供的方法,我们在用户态就 ...

  5. golang中打印格式化的一些占位符

    package main import ( "fmt" ) func main() { var a byte = 255 // byte = uint8 rune = int32 ...

  6. Tomcat服务器和Servlet版本的对应关系

    Tomcat服务器和Servlet版本的对应关系 Servlet 程序从2.5版本是现在世面使用最多的版本(xml配置) 到了Servlet3.0后.就是注解版本的Servlet使用

  7. python3 requests的content和text方法

    text返回的是Unicode型的数据 content返回的是是二进制的数据. 也就是说,如果你想取文本,可以通过r.text. 如果想取图片,文件,则可以通过r.content >>&g ...

  8. 运用Spring Aop,一个注解实现日志记录

    运用Spring Aop,一个注解实现日志记录 1. 介绍 我们都知道Spring框架的两大特性分别是 IOC (控制反转)和 AOP (面向切面),这个是每一个Spring学习视频里面一开始都会提到 ...

  9. 学习Java第2天

    今天所做的工作: 1.学习Java语言变量的使用 2.学习Java语言的算数运算符及逻辑运算符 3.学习选择结构 4.编程检验学习成果 明天工作安排: 1.循环结构 2.字符串 3.数组 4.面向对象 ...

  10. Java 高效编程(Effective Java)中文第三版(补档)

    来源:sjsdfg/effective-java-3rd-chinese <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过, ...