前言
《beego入门篇——上、中、下》三篇文章中,记录了beego的基本用法。假设已经完成了beego项目的代码,此时我们需要把项目部署到服务器上,本文就研究一下怎样在CentOS7环境里部署beego服务。
《beego入门篇——上、中、下》三篇文章中,记录了beego的基本用法。假设已经完成了beego项目的代码,此时我们需要把项目部署到服务器上,本文就研究一下怎样在CentOS7环境里部署beego服务。
大一点的项目,通常会依赖很多第三方包。Golang把所有的第三方包都放在GOPATH/src目录下,且每个包仅保留一个版本。如果两个项目依赖不同版本的第三方包,就会产生问题。
为了解决这个问题,go在1.5版本引入了vendor属性(默认关闭),并在1.6版本中默认开启了vendor属性。简单来说,vendor属性就是让go编译时,优先从项目源码树根目录下的vendor目录查找代码(可以理解为切了一次GOPATH),如果vendor中有,则不再去GOPATH中去查找。
但是vendor目录又带来了新的问题:
(1)vendor目录中依赖包没有版本信息。这样依赖包脱离了版本管理,对于升级、问题追溯,会有点困难。
(2)如何方便的得到本项目依赖了哪些包,并方便的将其拷贝到vendor目录下?
为了解决这些问题,开发者在vendor基础上开发了多个管理工具,比较常用的有godep、govendor、glide,以及官方的dep和gomod。
本文中,我们来了解一下godep、govendor和gomod,并重点学习gomod。
参考文档:
直观上看,用户可以使用kubectl、客户端库或者REST请求来访问K8S API。
而实际上,无论是kubectl还是客户端库,都是封装了REST请求的工具。
client-go作为一个客户端库,能够调用K8S API,实现对K8S集群中资源对象(包括deployment、service、ingress、replicaSet、pod、namespace、node等)的增删改查等操作。
源码地址:kubernetes/client-go
接口文档:kubernetes - GoDoc