首页 > 技术文章 > 容器化环境选择

longtds 2020-10-19 19:58 原文

系统选泽、运行时选择、编排规划、网络选泽

系统选择(CentOS VS Ubuntu)

注:操作系统均为服务器版本,包含但不限于CentOS和Ubuntu

共同点:

  • 开源和免费的社区支持的操作系统
  • 基于Linux内核

不同点:

  • CentOS在国内有良好的群众基础,Ubuntu则稍微不足
  • Ubuntu对软件支持版本较高,CentOS一般保持低稳定版
  • Ubuntu默认内核版本为较高稳定版,CentOS保持低版本,比如:Ubuntu18.x对应4.x,Centos7.x对应3.x
  • Ubutnu支持更多更多的软件源,CentOS需要自主扩展
  • Ubuntu更新更为频繁

如何选择

  • 高版本的Linux内核对容器做了更好的优化,并且支持很多新特性
  • Ubutnu18.x对容器的支持更好
  • CentOS7.x需要升级内核到最新稳定版以更好支持容器
  • 新发布的CentOS8对容器也有了较好支持
推荐:Ubuntu18.x、Ubuntu19.x、CentOS7.x+Linux内核最新稳定版、CentOS8

容器运行时代表

runc:docker-ce

  • 版本18.06+
  • 存储driver:overlay2(性能好)或者direct-lvm(控制容量)
  • 共享宿主机内核

runv:katacontainer

  • 让容器自带内核
  • 提高容器安全
  • 特殊的应用可以通过nodeselector调度到特定runv节点
推荐:kubernetes节点分区,通用docker-ce,部分katacontainer,通过nodeselector调度到特定runv节点

编排规划

单机

  • docker-compose
  • docker

集群:kubernetes

  • 版本选择:release后三个版本
  • 使用自动化部署工具: kubeadm、rancher等
  • 生产必须高可用
  • 计算节点:低配多节点、高配少节点
  • 节点存储:500GB~1TB(镜像和容器零时文件),10GB×110
  • 节点网络:至少1Gbps,推荐10Gbps

网络

单机

  • bridge
  • host(共享宿主机网络)
推荐:应用依赖容忍度高的选择docker-compose,应用强依赖,比如:前置应用未启动就会挂掉的情况,选择脚本+docker的方式

集群

  • overlay: flannel(简单,典型网络:vxlan)
  • bgp: calico(性能好,功能全,典型网络:三层路由)
推荐:物理网络flannel或者calico,虚拟网络calico

个人看好kube-ovn的发展

推荐阅读