1. 创建证书(注意修改域名参数)

#创建目录保存证书文件
mkdir /data/harborsecret && cd /data/harborsecret
# 生成 CA 证书私钥
openssl genrsa -out ca.key 4096
# 生成 CA 证书
openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.domain.com" \-key ca.key \-out ca.crt# 生成私钥
openssl genrsa -out harbor.domain.com.key 4096
# 生成证书签名请求 CSR
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=*.harbor.domain.com" \
-key harbor.domain.com.key \
-out harbor.domain.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=harbor.domain.com
DNS.2=*.harbor.domain.com
EOF
# 创建 Harbor 访问证书
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.domain.com.csr \
-out harbor.domain.com.crt
# 将 crt 转换为 cert ,以供 Docker 使用
openssl x509 -inform PEM -in harbor.domain.com.crt -out harbor.harbor.com.cert

结果

2. 生成secret

# 创建 Namespace
kubectl create ns harbor
# 创建证书秘钥
kubectl create secret tls harbor-secret --key harbor.domain.com.key --cert harbor.domain.com.crt -n harbor

3. 导入镜像、helm

# 有外网用这个添加chart库
helm repo add harbor https://helm.goharbor.io
helm repo update
# 没有就只能手动导了
# 镜像地址
https://github.com/goharbor/harbor/releases  到github官网下载offline离线包,上传到所需安装的机器上,然后解压,docker  load -i xxxx
# chart地址
https://github.com/goharbor/harbor-helm

4. 创建storageclass

# 请看另一篇专栏 https://blog.csdn.net/qq_36200932/article/details/123056408

5. 修改文件

# 解压harbor-helm后,进入目录,修改values.yaml
ingress:
hosts:core: harbor.domain.comnotary: notary.domain.comsecretName: harbor-secret #上面创建得secret,也可不填,系统自动生成,为期1年
externalURL: https://harbor.domain.com  storageClass: "harbor-data" # 这个就填storagessclass name,有多个,全填harborAdminPassword: "harbor12345" #登录密码
# 保存退出,执行部署
helm install harbor -f values.yaml . -n harbor# 取消部署命令
helm uninstall harbor -n harbor

5. 启动测试

# 执行kubectl get ingress ,将这些地址添加到所有节点 /etc/hosts 文件中做一个域名映射

然后访问
**
**
下载 Harbor 证书
由于 Harbor 是基于 Https 的,故而需要提前配置 tls 证书,进入:Harobr主页->配置管理->系统配置->镜像库根证书

2、服务器 Docker 中配置 Harbor 证书
然后进入服务器,在服务器上 /etc/docker 目录下创建 certs.d 文件夹,然后在 certs.d 文件夹下创建 Harobr 域名文件夹,可以输入下面命令创建对应文件夹:

mkdir -p /etc/docker/certs.d/hub.7d.com

1
然后再 /etc/docker/certs.d/hub.mydlq.club 目录下上传上面的 ca 证书文件。

3、登录 Harbor 仓库
只有登录成功后才能将镜像推送到镜像仓库,所以配置完证书后尝试登录,测试是否能够登录成功:

如果提示 ca 证书错误,则重建检测证书配置是否有误。

docker login -u admin -p admin@123 hub.7d.com

服务器配置 Helm Chart 仓库

1、配置 Helm 证书
跟配置 Docker 仓库一样,配置 Helm 仓库也得提前配置证书,上传 ca 签名到目录 /etc/pki/ca-trust/source/anchors/:

$ cat /etc/pki/ca-trust/source/anchors/ca.crt
-----BEGIN CERTIFICATE-----
MIIC9TCCAd2gAwIBAgIRALztT/b8wlhjw50UECEOTR8wDQYJKoZIhvcNAQELBQAw
FDESMBAGA1UEAxMJaGFyYm9yLWNhMB4XDTIwMDIxOTA3NTgwMFoXDTIxMDIxODA3
NTgwMFowFDESMBAGA1UEAxMJaGFyYm9yLWNhMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEArYbsxYmNksU5eQhVIM3OKac4l6MV/5u5belAlWSdpbbQCwMF
G/gAliTSQMgqcmhQ3odYTKImvx+5zrhP5b1CWXCQCVOlOFSLrs3ZLv68ZpKoDLkg
6XhoQFVPLM0v5V+YzWCGAson81LfX3tDhltnOItSpe2KESABVH+5L/2vo25P7Mvw
4bWEWMyY4AS/3toiDZjhwNMrMb2lpICrlH9Sc3dAOzUteyVznA5/WF8IyPI64aKn
tl0gxLOZgUBTkBoxVhPj7dNNZu8lMnqAYXmhWt+oRr7t1HHp2lOtk2u/ndyV0kKL
xufx5FYVJQel2yRBGc/C1QLN18nC1y6u5pITaQIDAQABo0IwQDAOBgNVHQ8BAf8E
BAMCAqQwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEwEB/wQF
MAMBAf8wDQYJKoZIhvcNAQELBQADggEBACFT92PWBFeCT7By8y8+EkB2TD1QVMZm
NDpBS75q5s2yIumFwJrbY6YsHtRkN1Zx9jc4LiJFHC6r0ES3tbCDapsxocvzn7dW
XLNTtnSx0zPxNXZzgmTsamfunBd4gszdXMshJ+bKsEoTXhJEXVjZq/k0EZS8L4Mp
NZ7ciPqwAI1Tg+mFGp5UOvzxYLyW8nCLPykC73y3ob1tiO6xdyD/orTAbA6pIMc9
7ajTfwYj4Q6JPY/QAmu0S+4hJHs724IrC6hiXUlQNVVRW/d3k+nXbYttnnmPnQXC
RyK2ru7R8H43Zlwj26kQJo6naQoQ0+Xcjcyk5llPqJxCrk3uoHF0r4U=
-----END CERTIFICATE-----

如果下面执行的目录不存在,请用 yum 安装 ca-certificates 包。

执行更新命令,使证书生效:

update-ca-trust extract

1
2、添加 Helm 仓库
添加 Helm 仓库:

helm repo add myrepo --username=admin --password=admin@123 https://hub.7d.com/chartrepo/library

-username:harbor仓库用户名
-password:harbor仓库密码
-ca-file:指向ca.crt证书地址
chartrepo:如果是chart仓库地址,中间必须加 chartrepo
library:仓库的项目名称
查看仓库列表:

$ helm repo list
NAME            URL
myrepo          https://hub.7d.com/chartrepo/library

七、测试功能
1、推送与拉取 Docker 镜像
这里为了测试推送镜像,先下载一个用于测试的 helloworld 小镜像,然后推送到 hub.mydlq.club 仓库:

拉取 Helloworld 镜像

docker pull hello-world:latest

将下载的镜像使用 tag 命令改变镜像名

docker tag hello-world:latest hub.7d.com/library/hello-world:latest

推送镜像到镜像仓库

docker push hub.7d.com/library/hello-world:latest

删除之前镜像

docker rmi hello-world:latest
docker rmi hello-world:latest hub.7d.com/library/hello-world:latest

测试从 hub.7d.com 下载新镜像

docker pull hub.7d.com/library/hello-world:latest

2、推送与拉取 Chart
Helm 要想推送 Chart 到 Helm 仓库,需要提前安装上传插件:

helm plugin install https://github.com/chartmuseum/helm-push

然后创建一个测试的 Chart 进行推送测试:

helm create hello

打包chart,将chart打包成tgz格式

helm package hello

推送 chart 进行测试

helm cm-push hello-0.1.0.tgz myrepoPushing hello-0.1.0.tgz to myrepo...


k8s使用helm安装harbor相关推荐

  1. Helm安装Harbor

    前言 文章中用到的harbor存储是hostpath,service的类型是ingress.根据harbor官网提示,需要提前创建pv和pvc,既然选择了hostpath,那么就需要将pod固定到某一 ...

  2. Kubernetes - - k8s - v1.12.3 使用Helm安装harbor

    1,Helm 介绍 核心术语: Chart:一个helm程序包 Repository:Charts仓库,https/http 服务器 Release:特定的Chart部署与目标集群上的一个实例 Cha ...

  3. k8s核心技术-Helm(安装和配置仓库)---K8S_Google工作笔记0045

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们来看看怎么来安装这个helm,注意安装v3的helm速度很快,但是 安装v3之前的版本很慢 ...

  4. 在kubernetes集群用helm离线安装harbor

    背景说明 在公司内部局域网环境kubernetes集群(未连接互联网)通过helm离线安装harbor 实施步骤 一.kubernetes集群安装helm(已安装的直接跳过此节) 1. 关于helm ...

  5. kubernetes之helm部署harbor

    安装 helm Helm致力于成为k8s集群的应用包管理工具,希望像linux 系统的RPM DPKG那样成功:确实在k8s上部署复杂一点的应用很麻烦,需要管理很多yaml文件(configmap,c ...

  6. 【网址收藏】k8s中helm方式安装postgresql及pgadmin

    k8s中helm方式安装postgresql及pgadmin 安装命令: $ helm repo add runix https://helm.runix.net/ $ helm install my ...

  7. K8S+Helm 安装 Jupyterhub

    准备配置文件 生成随机数 openssl rand -hex 32 # 8fc2826e9ce6930ec26c9fd541c0620b448a947357edbdf9647516af16bbc798 ...

  8. 【三】K8s安装-Harbor搭建

    一.硬件要求 硬件资源 最低配置 推荐配置 处理器 2 4 CPU 4 8 硬件 40 160 二.软件要求 软件 版本 描述 Docker-engine v17.06.1-ce 或更高版本 有关安装 ...

  9. 解决k8s helm安装tiller出现ImagePullBackOff,ErrImagePull错误

    使用helm安装tiller helm init --service-account=tiller --tiller-image=gcr.io/kubernetes-helm/tiller:v2.17 ...

最新文章

  1. ClassNotFoundException和NoClassDefFoundError的区别
  2. 全网独发gensim中similarities.Similarity用法
  3. 前端工程化(一)---工程目录搭建
  4. 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis
  5. linux下添加apt-get命令,Ubuntu Linux系统下apt-get命令整理
  6. 几万年前,有一只猴子大闹地府后删库跑路...
  7. php购物网站类的继承和多态,类的继承与多态
  8. UVa 1586 Molar mass 分子量 题解
  9. 02-CSS基础与进阶-day4__2018-08-31-21-33-03
  10. 一周第一次课(10月16日)安装linux
  11. 公安部4号令中关于电子邮服务器
  12. [分享]Professional Windows Phone 7 Game Development: Creating Games using XNA Game Studio 4
  13. htc G18 一键解锁,3键root
  14. CSDN和谐了我总结的白鹿原情色大盘点
  15. input隐藏变显示
  16. Probabilistic Matrix Factorization(概率矩阵分解)
  17. nginx/tengine限制流量如何配置
  18. 本文是关于前端开发基本流程的分享
  19. 直播预告更新 | 火爆全网的ChatGPT为什么这么强?
  20. Android保存图片和视频到本地并更新相册

热门文章

  1. [心得]让数据帮我说话
  2. Found several packages [runtime, main] in ‘/usr/local/Cellar/go/1.18/libexec/src/runtime;
  3. 新版本MySQL的安装教程,非免安装版本。超详细!!!
  4. pdf翻译成中文,怎样翻译比较好?
  5. 图片免费转pdf图片、图片免费转成word、图片免费转excel表格
  6. TiDB Server
  7. 网狐棋牌框架内核通信设计原理剖析
  8. keil创建工程没有atmel_keil创建工程步骤详解
  9. Proud kids最新测评:1对4的课堂效果怎么样?
  10. 【论文】龙王山小青椒 - 论文写作指导