linux内核类型lagency,k8s 运维之:操作系统
RHEL 8作为 REDHAT 的下一代 Linux 系统,目前最新的版本为 8.2 Beta. 该系统更新了大量的组件,但是目前存在的如下问题,部署 kubernetes 时需要注意。nftables的兼容性问题docker-ce 的依赖兼容性问题最新版的 docker-ce 依赖 containerd.io >= 1.2.2-3 的版本,而 RHEL 又指定 containerd...
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。
更多推荐
所有评论(0)