kubernetes之使用docker快速部署harbor

harbor

Habor是由VMWare中国团队开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制 ,水平扩展,同步,AD/LDAP集成以及审计日志等

安装步骤

一. 手动部署

  1. 下载最新的docker-compose二进制文件
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o  /usr/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
  1. 下载harbor离线安装包
    (https://github.com/vmware/harbor/releases) 离线安装
wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.2.tgz
tar zxf harbor-offline-installer-v1.6.2.tgz
  1. 准备ca证书(建议大家购买一个便宜的域名,并去申请一个免费的ssl证书)

如果不想购买域名,那就自己手动生成ca证书吧,可以参考如下:

生成CA根证书
# mkdir /etc/pki/ca_test //创建CA更证书的目录

# cd /etc/pki/ca_test

# mkdir root server client newcerts  //创建几个相关的目录

# echo 01 > serial   //定义序列号为01

# echo 01 > crlnumber  //定义crl号为01

# touch index.txt  //创建index.txt

# cd ..

# vi tls/openssl.cnf  //改配置文件
default_ca     = CA_default 改为 default_ca     = CA_test
[ CA_default ] 改为 [ CA_test ]
dir             = /etc/pki/CA  改为  dir             = /etc/pki/ca_test
certificate = $dir/cacert.pem  改为 certificate   = $dir/root/ca.crt
private_key = $dir/private/cakey.pe 改为  private_key = $dir/root/ca.key

# openssl genrsa -out /etc/pki/ca_test/root/ca.key  //生成私钥

# openssl req -new -key /etc/pki/ca_test/root/ca.key -out /etc/pki/ca_test/root/ca.csr
//生成请求文件,会让我们填写一些指标,这里要注意:如果在这一步填写了相应的指标,
比如Country Name、State or Province Name、hostname。

# openssl x509 -req -days 3650 -in /etc/pki/ca_test/root/ca.csr -signkey /etc/pki/ca_test/root/ca.key -out /etc/pki/ca_test/root/ca.crt
//生成crt文件
生成server端证书
# cd /etc/pki/ca_test/server

# openssl genrsa -out server.key   //生成私钥文件

# openssl req -new -key server.key -out server.csr//生成证书请求文件,填写信息需要和ca.csr中的Organization Name保持一致

# openssl ca -in server.csr -cert /etc/pki/ca_test/root/ca.crt -keyfile /etc/pki/ca_test/root/ca.key -out server.crt -days 3650
//用根证书签名server.csr,最后生成公钥文件server.crt,此步骤会有两个地方需要输入y
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
生成客户端证书
如果做ssl的双向认证,还需要给客户端生成一个证书,步骤和上面的基本一致
# cd /etc/pki/ca_test/client

# openssl genrsa -out  client.key  //生成私钥文件

# openssl req -new  -key client.key -out client.csr  //生成请求文件,填写信息需要和ca.csr中的Organization Name保持一致

# openssl ca -in client.csr -cert /etc/pki/ca_test/root/ca.crt -keyfile /etc/pki/ca_test/root/ca.key -out client.crt -days 3650
//签名client.csr, 生成client.crt,此步如果出现
failed to update database
TXT_DB error number 2

需执行:
# sed -i ‘s/unique_subject = yes/unique_subject = no/‘ /etc/pki/ca_test/index.txt.attr

执行完,再次重复执行签名client.csr那个操作

免费ssl证书

这两个网址和腾讯云都提供免费的ssl服务

https://freessl.org/
https://www.trustocean.com/

  1. 安装harbor
# cd harbor
编辑配置文件
# vim harbor.cfg
1)定义hostname(如 harbor.yuankeedu.com)
2)定义ui_url_protocol为https
3)定义ssl_cert/ssl_key 放置好ssl证书,修改路径
4)定义harbor_admin_password
安装 # sh install.sh   //自动安装完成

修改后:

hostname = h.uedu.ml
ui_url_protocol = https
max_job_workers = 10
customize_crt = on
ssl_cert = /root/harbor/START-uedu-ml.pem
ssl_cert_key = /root/harbor/START-uedu-ml.key
secretkey_path = /data
admiral_url = NA
log_rotate_count = 50
log_rotate_size = 200M
http_proxy =
https_proxy =
no_proxy = 127.0.0.1,localhost,ui,registry
  1. 访问

    https://h.uedu.ml/
    admin 默认密码为 Harbor12345

  1. 创建项目

  1. 拉取公共镜像

    docker pull tomcat
    docker tag tomcat h.uedu.ml/aikerlinux/tomcat:latest //打标签为上传做准备

  2. 把tomcat镜像推送到harbor

    docker login https://h.uedu.ml
    输入用户名和密码
    docker push h.uedu.ml/aikerlinux/tomcat:latest

  3. 在kubernetes中使用harbor

以下操作在master上执行:
1)创建secret

 kubectl create secret docker-registry my-secret --docker-server=h.uedu.ml --docker-username=admin --docker-password=Harbor12345

创建完成后,可以用以下命令查看:

 # kubectl get secret

2)定义一个pod 首先,需要在harbo私有仓库里推送一个httpd的镜像
,地址为h.uedu.ml/aikerlinux/httpd:latest

docker pull httpd
docker tag httpd h.uedu.ml/aikerlinux/httpd:latest
docker login https://h.uedu.ml
docker push h.uedu.ml/aikerlinux/httpd:latest

然后再定义一个部署http pod的yaml文件

[[email protected] ~]# vim httpd.yaml
apiVersion: v1
kind: Pod
metadata:
  name: httpd-pod
spec:
  containers:
  - image: h.uedu.ml/aikerlinux/httpd
    name: httpd-pod
  imagePullSecrets:
  - name: my-secret
  # kubectl create -f httpd.yaml
 #  kubectl describe pod httpd-pod  //查看pod创建过程的信息,可能会存在的问题

原文地址:http://blog.51cto.com/m51cto/2344830

时间: 2024-11-08 09:18:36

kubernetes之使用docker快速部署harbor的相关文章

docker 快速部署nacos注册中心

docker 快速部署nacos注册中心 拉去并启动docker-compose 服务 # git 拉去相关文件 git clone https://github.com/nacos-group/nacos-docker.git # 进入文件夹 cd nacos-docker/example # 运行docker-compose 服务 docker-compose -f standalone-mysql.yaml up # 关闭 容器服务命令 docker-compose -f standalo

运维人员的解放----Docker快速部署

Docker是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Application Container).(我个人还是喜欢称虚拟机) Docker应用容器相对于 VM 有以下几个优点: 启动速度快,容器通常在一秒内可以启动,而 VM 通常要更久 资源利用率高,一台普通PC 可以跑上千个容器,你跑上千个 VM 试试 性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源 因为VM 的 Hypervi

Docker 快速部署Zabbix-server

玩Docker有段时间了,最近需要多个地方快速部署zabbix监控,所以使用docker可以快速部署,省去繁琐的安装过程. 组成:mysql //可以使用现成的mysql或者自行docker搭建zabbix-server-mysql //zabbix-server后台程序zabbix-web-nginx-mysql //zabbix-server前台web程序,包含phpzabbix-agent //zabbix客户端 #安装mysql--省略-- #安装zabbix-server-mysql后

docker快速部署DNS,实现快速上线

```# 概念 Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.这里我将使用docker容器快速部署DNS域名解析服务器,并实现快速上线 # 环境介绍 1. DNS服务器主机:172.18.0.2 域名:dns.jkyst.xyz 2. 客户端机器:172.18.0.3 域名:client1.jkyst.xyz 3. 客户端机器:172.18.0.4 域名:clie

docker快速部署sql server 2017开发版

安装sql server开发环境太麻烦?通过docker快速搭建也可以完成,一串指令搞定. Download SQL Server Management Studio (SSMS) https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms https://download.microsoft.com/download/3/C/7/3C77BAD3-4E0F-4C6B-84DD-4279

使用Docker 快速部署 gitlab

安装 gitlab gitlab 是深受企业用户喜爱的基于 git 的代码管理系统.本文使用 Docker 方式安装 gitlab:这是一种快速高效的部署方式,相对于传统方式,这种部署可以有效的节省时间和过程. 环境:Ubuntu 16.04,虚机内存/CPU/存储请根据实际使用情况配置,一般4C/8G/200G足够 安装 docker: 18.06.1-ce 准备启动脚本 $ cat > gitlab-setup.sh << EOF #!/bin/bash # 注意:设置 gitlab

如何利用 docker 快速部署 Mysql 服务

docker 基础教程不再多说,这里只着重讲如何使用 docker 部署 mysql 服务 docker 拉取 访问 dockerhub,搜索关键词 mysql,我这里选择 mysql-server,然后执行拉取命令,注意可以选择tag版本,默认是latest. docker pull mysql/mysql-server:tag 等待拉取完成即可. docker Mysql-server 启动与配置 docker 部署的优势就在于其快速便捷,下面就进行几项步骤: 启动 docker 该容器命名

利用Docker快速部署Oracle环境

工作中需要频繁使用Oracle环境,但是每次搭建起来比较消耗时间,本想通过虚拟机模板的方式来快速安装oracle vm,但是每次改ip等环境也很耗时,因此想到docker中有没有已经做好的images,这样就能快速获得Oracle环境. [email protected] rac1:docker search oracle INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/wnameless/oracle-xe

使用Docker快速部署Storm环境

Storm的部署虽然不是特别麻烦,但是在生产环境中,为了提高部署效率,方便管理维护,使用Docker来统一管理部署是一个不错的选择.下面是我开源的一个新的项目,一个配置好了storm与mono环境的Docker镜像编排:storm-mono-docker. 这个项目得益于https://github.com/ptgoetz/storm-vagrant和https://github.com/wurstmeister/storm-docker:在此感谢他们的付出!项目使用的Docker镜像托管在 h