上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
5.1 “关在笼子里”的程序
5.1.1 代码
我们使用Go语言写了一个简单的Web服务器程序app.go,这个程序监听2580这个端口。通过HTTP协议访问这个服务的根路径,服务会返回“This is a small app for kubernetes...”字符串。
使用go build命令编译这个程序,会产生一个可执行文件app。这是一个普通的可执行文件,它在操作系统里运行,会依赖系统里的库文件。
5.1.2 “笼子”
为了让这个程序不依赖于操作系统自身的库文件,我们需要制作容器镜像,即隔离的运行环境。
Dockerfile是制作容器镜像的“菜谱”,包括了制作镜像的两个步骤:下载一个Centos基础镜像,以及把app这个可执行文件放到镜像中。
5.1.3 地址
制作好的镜像存在本地环境中,我们需要把这个镜像上传到镜像仓库里去。这里的镜像仓库相当于应用商店。我们使用阿里云的镜像仓库,上传之后镜像地址是:
镜像地址可以拆分成四个部分:仓库地址/命名空间/镜像名称:镜像版本。
显然,上面的镜像地址在阿里云杭州镜像仓库,使用的命名空间是kube-easy,镜像名:镜像版本是app:latest。至此,我们有了一个可以在Kubernetes集群上运行的“关在笼子里”的程序。