RHEL 8 作为 REDHAT 的下一代 Linux 系统,目前最新的版本为 8.2 Beta. 该系统更新了大量的组件,但是目前存在的如下问题,部署 kubernetes 时需要注意。

nftables 的兼容性问题

docker-ce 的依赖兼容性问题

最新版的 docker-ce 依赖 containerd.io >= 1.2.2-3 的版本,而 RHEL 又指定 containerd.io <= 1.2.0, 所以安装的时候 yum install -y docker-ce 就会报错。

临时解决办法:

yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm

yum install -y docker-ce

或者

yum install -y docker-ce --nobest

这两种办法都是权宜之计,建议不要用在生产环境。

除了 docker,kubernetes 另外还支持 cri-o 和 containerd.io 这两种 runtime,

Ubuntu 内置了 containerd, RHEL 8 内置了 containerd.io-1.2.0。

CentOS 7 内核版本相对较低

CentOS7 发布于 2014年7月,距今超过5年。自带的内核的版本为3.10。

如果由于种种原因无法使用Debian、Ubuntu 等系统,那么 k8s 可以考虑安装在 CentOS7.5+ 的版本。

另一个考虑因素: 基础镜像操作系统的选择

alpine 引起小巧,成为很多开源软件镜像发布的基础操作系统。

那 golang、java、python、nodejs、php等语言开发的业务软件,基础镜像是否也可以直接考虑使用 alpine 呢?

建议考虑如下因素:

维护成本:各语言环境容器镜像最好是使用相同的基础系统

兼容性:该系统与各语言、扩展,支持良好,无底层不兼容的隐患

基础功能:openssl 1.1.1(支持TLS1.3、国密算法) 、python 3 等基础功能是否支持

由于 alpine 在支持 php 和 nodejs 的扩展时,未解决的 bug 还有很多,建议慎重考虑。

因此,基础镜像操作系统的选择,建议重点考虑的范围是 CentOS 8、 Debian 10、Ubuntu 18.04/20.04 。

总结

如果打算要在 RHEL 8 或是 CentOS 8 系统上安装 kubernetes,还是需要考虑兼容性问题。

目前来看,Ubuntu 18.04/20.04、Debian10 是相对比较务实的选择。

如果不能使用以上两个操作系统,那就考虑使用 CentOS 7 系统来安装 k8s。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐