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