本身容器技术以各种标准来约束,且技术栈较为收敛,整体可控可兼容。
1、容器编排调度
如K8S、Rancher、K3S、Mesos等等,像K8S生态的开源软件,均可完好支持,因为其基本上都基于Go技术栈,不存在运行不一致的问题。
2、容器运行时
如runc、kata、containerd等等,这部分不同的厂商会有部分自研或优化的内容,但开源版本兼容是他们的首要任务,所以也没有问题。系统厂商为了突出自己的OS特性特质,会对这方面做更多的优化:如openEuler推出的 isulad,龙蜥推出的kata3.0等,这些作为可选项供选择。
3、业务自身
除了本身容器基础镜像涉及到硬件架构的变更调整至对应的基础镜像外,其他无需调整。
4、容器镜像服务
这部分如Harbor等registry规范规定支持x86、arm等多架构版本镜像存储,且本身容器化部署后,也不存在兼容性问题,因此在使用无区别。
其他,主要是在使用中存在如cgroups限制策略(一般是增强功能特性)、在ARM下container-selinux bug(已修复)等的不同,使用时注意即可。