在以前的文章中,我介绍了如何使用Azure Container Registry, IOT Edge, IOT Hub来构建智能边界: node
然而在中国的Azure上面,ACR尚未落地,IOT Edge处于预览阶段,那么咱们如何来构建IOT Edge环境昵?在中国部署和海外Azure上部署又有什么不一样昵?本文介绍如何使用开源的容器注册表Harbor和Azure IOT Edge构建边缘智能环境。 linux
咱们使用开源软件Harbor做为分发和保存咱们docker image的私有容器注册服务器。Harbor是由VMware开发,基于Apache 2 license受权的开源软件。Harbor提供了良好的性能,企业级的安全和身份管理,漏洞扫描和检测,基于角色的权限管理,图形化界面支持等高级特性,很是适合企业级用户使用。 git
配置DNS name github
$sudo apt-get update docker
$sudo apt-get install apt-transport-https \ ubuntu
ca-certificates curl \ api
software-properties-common 安全
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add – 服务器
$ sudo add-apt-repository \ 网络
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce
为了让当前用户也能够不使用sudo使用docker,运行如下命令:
sudo usermod -aG docker $USER
安装最新的docker-compose:
sudo curl -L
https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
登陆出系统,而后从新登陆,运行如下命令测试当前版本和docker:
$docker version
$docker-compose version
原始发布版本地址:https://github.com/vmware/harbor/releases
国内下载安装:
wget http://harbor.orientsoft.cn/harbor-v1.5.0/harbor-offline-installer-v1.5.0.tgz
$ tar -xzvf harbor-offline-installer-v1.5.0.tgz
A.建立一个cert目录:mkdir cert
B. 建立CA证书,请注意Common Name部分必须完整的写上你以前配置的DNS名称,不要乱写:
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout ca.key \
-x509 -days 365 -out ca.crt
C.生成签名请求证书:
openssl req -newkey rsa:4096 -nodes -sha256 -keyout stevenrepo.chinanorth.cloudapp.chinacloudapi.cn.key -out stevenrepo.chinanorth.cloudapp.chinacloudapi.cn.csr
D. 生成你的容器注册表的签名:
openssl x509 -req -days 365 -in stevenrepo.chinanorth.cloudapp.chinacloudapi.cn.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out stevenrepo.chinanorth.cloudapp.chinacloudapi.cn.crt
E.拷贝证书并更新系统证书
sudo cp ca.crt stevenrepo.chinanorth.cloudapp.chinacloudapi.cn.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
F.拷贝证书到Docker的证书目录,并从新启动Docker
sudo mkdir -p /etc/docker/certs.d/stevenrepo.chinanorth.cloudapp.chinacloudapi.cn
sudo cp ca.crt /etc/docker/certs.d/stevenrepo.chinanorth.cloudapp.chinacloudapi.cn/
sudo systemctl restart docker
修改hostname以及SSL证书地址:
对于容器注册表的存储部分,你可使用默认的文件系统,也能够将将全部的images放在Azure Storage上面,由于Azure Storage数据默认保存3份,是持久化的,即便万一harbor主机挂掉了,你的docker image也不会丢,配置存储在harbor.cfg的末尾部分:
registry_storage_provider_name设置为azure
registry_storage_provider_config设置你的帐号名称,密码,容器,须要注意的是:
registry_storage_provider_config = accountname: repodocker, accountkey: YOURPASSWORD, container: images, realm: core.chinacloudapi.cn
若是须要完整的azure配置信息,能够参考:
https://github.com/docker/docker.github.io/blob/master/registry/storage-drivers/azure.md
$ sudo ./install.sh
安装完成后,检查harbor服务是否都正常启动,若是有任何问题,请参考/var/log/harbor日志文件进行debug:
进入到portal.azure.cn找到你的虚拟机的网络,网络安全组,添加入站规则:
例如添加80端口以下,一次类推,添加80,443, 4443(可选)端口: