![阿里云数字新基建系列:云原生操作系统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=1739604950-ESMX46cI9RXo8TCdU23h4xYldRP2nnxx-0-33903f7fc04639120505af179ee168f6)
![](https://epubservercos.yuewen.com/662223/19118077608013506/epubprivate/OEBPS/Images/39947_74_01.jpg?sign=1739604950-mbfoG4qecMd4yyUEDRmvCf465fPXWEdS-0-652446cae809d4d43534f19b5b3889e8)
使用go build命令编译这个程序,会产生一个可执行文件app。这是一个普通的可执行文件,它在操作系统里运行,会依赖系统里的库文件。
![](https://epubservercos.yuewen.com/662223/19118077608013506/epubprivate/OEBPS/Images/39947_74_02.jpg?sign=1739604950-x9QKeKMtMW6kQphGyESMpRdk7KFDXRpV-0-7f87e270864b2d686765ad04d1ad53d8)
5.1.2 “笼子”
为了让这个程序不依赖于操作系统自身的库文件,我们需要制作容器镜像,即隔离的运行环境。
Dockerfile是制作容器镜像的“菜谱”,包括了制作镜像的两个步骤:下载一个Centos基础镜像,以及把app这个可执行文件放到镜像中。
![](https://epubservercos.yuewen.com/662223/19118077608013506/epubprivate/OEBPS/Images/39947_74_03.jpg?sign=1739604950-ue2GGpJQXrKj6Jam0HV85e4GFZpoysbQ-0-eba0985ed283897edab2956641337ad0)
5.1.3 地址
制作好的镜像存在本地环境中,我们需要把这个镜像上传到镜像仓库里去。这里的镜像仓库相当于应用商店。我们使用阿里云的镜像仓库,上传之后镜像地址是:
![](https://epubservercos.yuewen.com/662223/19118077608013506/epubprivate/OEBPS/Images/39947_74_04.jpg?sign=1739604950-2rrkLkghRqGeFUOtmkI9VBL6jdF85q1h-0-dfcd03731c26ff9a6f28b3e5ff857c81)
镜像地址可以拆分成四个部分:仓库地址/命名空间/镜像名称:镜像版本。
显然,上面的镜像地址在阿里云杭州镜像仓库,使用的命名空间是kube-easy,镜像名:镜像版本是app:latest。至此,我们有了一个可以在Kubernetes集群上运行的“关在笼子里”的程序。