本文将介绍如何搭建最简单的私有镜像仓库——Docker Registry
。
首先,你需要使用 docker pull 命令拉取镜像:
1 | # docker pull registry |
然后,我们需要做一个端口映射,对外暴露端口,这样 Docker Registry 才能提供服务。它的容器内端口是 5000,简单起见,我们在外面也使用同样的 5000 端口,所以运行命令:
1 | # docker run -d -p 5000:5000 registry |
本文将介绍如何搭建最简单的私有镜像仓库——Docker Registry
。
首先,你需要使用 docker pull 命令拉取镜像:
1 | # docker pull registry |
然后,我们需要做一个端口映射,对外暴露端口,这样 Docker Registry 才能提供服务。它的容器内端口是 5000,简单起见,我们在外面也使用同样的 5000 端口,所以运行命令:
1 | # docker run -d -p 5000:5000 registry |
1 | # 更新 |
全局的、为了代理不同后端 Service 而设置的负载均衡服务,就是 Kubernetes 里的Ingress 服务。
所以,Ingress 的功能其实很容易理解:所谓 Ingress,就是 Service 的“Service”。
假如我现在有这样一个站点:https://cafe.example.com
,其中https://cafe.example.com/coffee
对应的是“咖啡点餐系统”,而https://cafe.example.com/tea
对应的是茶水点餐系统
,这两个系统,分别由名叫coffee
和tea
两个Deployment
来提供服。
那么,我如何能使用 Kubernetes 的 Ingress 来创建一个统一的负载均衡器,从而实现当用户访问不同的域名时,能够访问到不同的 Deployment 呢?
上述功能,在 Kubernetes 里就需要通过 Ingress 对象来描述:
API
对象定义:
1 | apiVersion: batch/v1 |
在这个模板中,我们定义了一个Ubuntu
镜像的容器,他运行计算π
的程序,所以,这是一个计算π
的容器。
创建成功后,查看一下这个Job
对象:
//TODO:
可以看到,在这个Job
对象创建后,它的Pod
模板被自动加上了一个controller-uid=<一个随机字符串>
这样的Label
。从而保证了Job
与它所管理的Pod
之间的匹配关系。