![阿里云数字新基建系列:云原生操作系统Kubernetes](https://wfqqreader-1252317822.image.myqcloud.com/cover/614/35808614/b_35808614.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
5.1 “关在笼子里”的程序
5.1.1 代码
我们使用Go语言写了一个简单的Web服务器程序app.go,这个程序监听2580这个端口。通过HTTP协议访问这个服务的根路径,服务会返回“This is a small app for kubernetes...”字符串。
![](https://epubservercos.yuewen.com/662223/19118077608013506/epubprivate/OEBPS/Images/39947_73_02.jpg?sign=1739013588-daYO4I6BurLBGAr24bPwAAzXyJ8rL3M5-0-6d07caa52b10b68d2f9353dac3c63345)
![](https://epubservercos.yuewen.com/662223/19118077608013506/epubprivate/OEBPS/Images/39947_74_01.jpg?sign=1739013588-zt4NFhjisvBNlLvn8KWmwjOTuSJD7Yz7-0-6b7c9f51fbebc607e8949d4ba0aa11b9)
使用go build命令编译这个程序,会产生一个可执行文件app。这是一个普通的可执行文件,它在操作系统里运行,会依赖系统里的库文件。
![](https://epubservercos.yuewen.com/662223/19118077608013506/epubprivate/OEBPS/Images/39947_74_02.jpg?sign=1739013588-mXNobIMt3rmUMnRghTnrbfgp1EZ0wtih-0-48d783f08b07d67e21b8c8c7a518b0bb)
5.1.2 “笼子”
为了让这个程序不依赖于操作系统自身的库文件,我们需要制作容器镜像,即隔离的运行环境。
Dockerfile是制作容器镜像的“菜谱”,包括了制作镜像的两个步骤:下载一个Centos基础镜像,以及把app这个可执行文件放到镜像中。
![](https://epubservercos.yuewen.com/662223/19118077608013506/epubprivate/OEBPS/Images/39947_74_03.jpg?sign=1739013588-Djkq4EcFUD3xFGsqeXywWP4p6vRfPJAj-0-a6480072f013af728509192689bb8f01)
5.1.3 地址
制作好的镜像存在本地环境中,我们需要把这个镜像上传到镜像仓库里去。这里的镜像仓库相当于应用商店。我们使用阿里云的镜像仓库,上传之后镜像地址是:
![](https://epubservercos.yuewen.com/662223/19118077608013506/epubprivate/OEBPS/Images/39947_74_04.jpg?sign=1739013588-O4X7n28TlXjn6ZCp689BpqQ8BWw6ebrc-0-e531140fe94cd77e5937d9231daf3d44)
镜像地址可以拆分成四个部分:仓库地址/命名空间/镜像名称:镜像版本。
显然,上面的镜像地址在阿里云杭州镜像仓库,使用的命名空间是kube-easy,镜像名:镜像版本是app:latest。至此,我们有了一个可以在Kubernetes集群上运行的“关在笼子里”的程序。