惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
D
Docker
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
博客园 - 【当耐特】
N
Netflix TechBlog - Medium
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Recent Announcements
Recent Announcements
GbyAI
GbyAI
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
Engineering at Meta
Engineering at Meta
L
LangChain Blog
A
About on SuperTechFans
M
MIT News - Artificial intelligence
B
Blog

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19)
使用 Helm 安装 harbor
微信公众号 · 2019-08-30 · via 陈少文的网站

Please enable Javascript to view the contents

前提准备,(1)已经安装 Helm ,参考 Helm 安装 ,(2)集群有默认的动态存储可用,参数 使用StorageClass提供PV动态存储

1. 使用 Helm 安装 Ingress

Ingress 由 Ingress 和 Ingress Controller 两部分组成。

在 Kubernetes 中,Ingress 对象描述路由规则;Ingress Controller 通过与 Apiserver 交互,将 Ingress 规则写入 Nginx Pod 中。

Helm 2 使用:

1
helm install --name nginx-ingress --set "rbac.create=true,controller.service.externalIPs[0]=192.168.10.2" stable/nginx-ingress

Helm 3 使用:

1
helm install nginx-ingress --set "rbac.create=true,controller.service.externalIPs[0]=192.168.10.2" stable/nginx-ingress

查看服务:

1
2
3
4
kubectl get svc
NAME                            TYPE           CLUSTER-IP      EXTERNAL-IP    PORT(S)                      AGE
nginx-ingress-controller        LoadBalancer   10.109.17.54    192.168.10.2   80:31006/TCP,443:31184/TCP   30m
nginx-ingress-default-backend   ClusterIP      10.106.94.214   <none>         80/TCP                       30m

这里采用 externalIP 方式对外暴露服务,nginx-ingress-controller 会在 192.168.10.2 节点(可以配置多个节点)上暴露 80/443 端口。

2. 使用 Helm 安装 Harbor

  • 下载 harbor-helm 安装包
1
2
git clone https://github.com/goharbor/harbor-helm.git
git checkout 1.1.0
  • 创建独立的命名空间
kubectl create namespace harbor
  • 修改必要的参数
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
git diff
--- a/values.yaml
+++ b/values.yaml
@@ -25,8 +25,8 @@ expose:
     commonName: ""
   ingress:
     hosts:
-      core: core.harbor.domain
-      notary: notary.harbor.domain
+      core: core.harbor.chenshaowen.com
+      notary: notary.harbor.chenshaowen.com
     # set to the type of ingress controller if it has specific requirements.
     # leave as `default` for most ingress controllers.
     # set to `gce` if using the GCE ingress controller
@@ -95,7 +95,7 @@ expose:
 # the IP address of k8s node
 #
 # If Harbor is deployed behind the proxy, set it as the URL of proxy
-externalURL: https://core.harbor.domain
+externalURL: https://core.harbor.chenshaowen.com

也可以不修改,配置 hosts 进行访问。

  • 安装 Harbor
helm install --name harbor -f values.yaml . --namespace harbor

通过执行 kubectl get pod -n harbor 命令,等待所有 Pod 正常启动。

  • 查看
1
2
3
kubectl get ingress -n harbor
NAME                    HOSTS                                     ADDRESS   PORTS     AGE
harbor-harbor-ingress   core.harbor.domain,notary.harbor.domain             80, 443   7m15s
  • 配置域名,进行访问

需要将域名的 DNS 指向服务器地址。打开页面 https://core.harbor.chenshaowen.com ,输入默认的账号密码 admin : Harbor12345 ,就可以正常使用了。

3. 推送镜像

  • 登陆仓库
1
2
3
4
docker login core.harbor.chenshaowen.com
Username: admin
Password:
Error response from daemon: Get https://core.harbor.chenshaowen.com/v2/: x509: certificate signed by unknown authority

提示证书问题,有两种解决办法:

  1. 在 Docker 中添加受信任的证书

执行命令,获取证书,并将证书内容拷贝到配置目录:

1
kubectl get secrets/harbor-harbor-ingress -n harbor -o jsonpath="{.data.ca\.crt}" | base64 --decode
  1. 添加 –insecure-registry 仓库地址

以 OS X 为例,在 [Preferences] - [Daemon] 中添加不安全的仓库 core.harbor.chenshaowen.com 即可。

  • 打标签,推送镜像
1
2
3
4
5
6
docker tag sonarqube:7.1 core.harbor.chenshaowen.com/library/snoarque:7.1
docker push core.harbor.chenshaowen.com/library/snoarque:7.1
The push refers to repository [core.harbor.chenshaowen.com/library/snoarque]
195b3d541b37: Pushed
8fb1d730c37c: Pushing [=============>                                     ]  48.57MB/177.1MB
1e09c232b1a9: Pushed
  • 查看镜像


微信公众号