首页 > 云计算 > Docker/K8 > kubernetes实践之五十六:云原生


1.基准代码
每个代码仓库(repo)都生成docker image保存到镜像仓库中,并使用唯一的ID管理,在Jenkins中使用编译时的ID。
2.依赖
显式得声明代码中的依赖,使用软件包管理工具声明,比如Go中的Glide。
3.配置
将配置与代码分离,应用部署到kubernetes中可以使用容器的环境变量或ConfigMap挂载到容器中。
4.后端服务
把后端服务当作附加资源,实质上是计算存储分离和降低服务耦合,分解单体应用。
5.构建、发布、运行
严格分离构建和运行,每次修改代码生成新的镜像,重新发布,不能直接修改运行时的代码和配置。
6.进程
应用程序进程应该是无状态的,这意味着再次重启后还可以计算出原先的状态。
7.端口绑定
在kubernetes中每个Pod都有独立的IP,每个运行在Pod中的应用不必关心端口是否重复,只需在service中指定端口,集群内的service通过配置互相发现。
8.并发
每个容器都是一个进程,通过增加容器的副本数实现并发。
9.易处理
快速启动和优雅终止可最大化健壮性,kuberentes优秀的Pod生存周期控制。
10.开发环境与线上环境等价
在kubernetes中可以创建多个namespace,使用相同的镜像可以很方便的复制一套环境出来,镜像的使用可以很方便的部署一个后端服务。
11.日志
把日志当作事件流,使用stdout输出并收集汇聚起来,例如到ES中统一查看。
12.管理进程
后台管理任务当作一次性进程运行,kubectl exec进入容器内部操作。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28624388/viewspace-2155964/ ,如需转载,请注明出处,否则将追究法律责任。