应用现代化

PKS 演示 — 容器映像仓库 Harbor

PKS 中包含了容器映像仓库 Harbor,Harbor 是一个用于存储和分发容器映像的企业级 Registry 服务器,支持一系列企业级运行环境必需的功能:

  • 基于角色的访问控制 (RBAC – Role Based Access Control):Harbor 按项目来组织管理容器映像,可以集成企业内部已有的 AD/LDAP 服务 (例如 Pivotal 的 UAA – User Account Authentication) ,用于用户身份鉴权管理。
  • 容器映像存储:开发人员可以通过推送 (Push) 或下拉 (Pull) 操作来上传或下载容器映像,支持多个 Harbor 服务器之间的镜像资源复制。
  • 可信容器映像服务Notary 是云原生计算基金会 CNCF (Cloud Native Computing Foundation) 的官方项目,为容器映像提供数字签名保护,以防止对于容器映像的恶意篡改。该功能打开之后,只有经过数字签名的映像才能被部署到 PKS 集群里去运行。
  • 安全漏洞扫描:Harbor 集成了安全漏洞扫描模块 Clair,来对容器映像的代码进行静态扫描,及时发现已知的安全漏洞 CVE (Common Vulnerabilities and Exposures)。

 

Harbor 中存储的容器映像按照项目 (Project) 来存放,基于角色的访问控制 RBAC 就是以项目作为控制粒度的。Harbor 中的项目分为两类:

  • Public Project :所有的用户都可以只读方式访问,适用于公用的容器映像。
  • Private Project :用户访问之前必需进行用户身份鉴权,符合 RBAC 规定的用户才可以访问。

 

当用户访问 Private Project 时,首先要创建一个 secret 对象,下面的例子就是创建一个名为 regcred 的 secret 对象,其中用加密的方式存放了访问 Harbor 的用户身份鉴权信息 (用户名和密码),这样可以避免在脚本中用明文方式引用用户密码,避免不必要的安全漏洞。

kubectl create secret docker-registry regcred –docker-server=<your-registry-server> –docker-username=<your-name> –docker-password=<your-pword> –docker-email=<your-email>

 

接下来请大家看一段关于 Harbor 的演示,主要包括了以下两个场景:

  • Harbor 对于容器映像的安全漏洞报告;
  • 只有经过数字签名的容器映像才能被正常地部署和运行。