容器集群手动添加ECS内核过低,要求3.18+, 但是目前的ECS不提供新内核的升级,需要自己手动升,出问题不管?
- acs-test
关于内核的要求是这样的,centos > 3.18 ubuntu > 3.13
所以 ubuntu 14.04 和 centos+升级内核 都是可以的
因为在centos的默认的3.10的内核对docker的overlay存储驱动支持存在一些问题,到3.18的内核overlay存储才比较稳定,ECS不让升级内核是因为担心内核可能不兼容,而容器服务使用的内核经过了我们的兼容性测试,你可以通过这些方法使用:- 添加节点的时候选择自动添加的方式,这个会自动替换数据盘到我们做的系统,就无需关心升级内核
- 通过脚本升级elrepo 4.4的内核,这个内核经过了我们的兼容性测试,脚本如下:
yum update -y
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum install -y linux-firmware
yum install -y perl
wget http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/elrepo-kernel-lt/kernel-lt-4.4.6-1.el7.elrepo.x86_64.rpm
wget http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/elrepo-kernel-lt/kernel-lt-devel-4.4.6-1.el7.elrepo.x86_64.rpm
wget http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/elrepo-kernel-lt/kernel-lt-headers-4.4.6-1.el7.elrepo.x86_64.rpmrpm -i kernel-lt-4.4.6-1.el7.elrepo.x86_64.rpm
yum remove kernel-{firmware,headers,devel} -y
rpm -i kernel-lt-headers-4.4.6-1.el7.elrepo.x86_64.rpm
rpm -i kernel-lt-devel-4.4.6-1.el7.elrepo.x86_64.rpm
rm -f kernel-lt-headers-4.4.6-1.el7.elrepo.x86_64.rpm kernel-lt-devel-4.4.6-1.el7.elrepo.x86_64.rpm kernel-lt-4.4.6-1.el7.elrepo.x86_64.rpmecho "exclude=kernel*" >> /etc/yum.conf
mkinitrd -f --allow-missing --with=xen-blkfront --preload=xen-blkfront --with=virtio_blk --preload=virtio_blk --with=virtio_pci --preload=virtio_pci --with=virtio_console --preload=virtio_console /boot/initramfs-4.4.6-1.el7.elrepo.x86_64.img 4.4.6-1.el7.elrepo.x86_64
grub2-set-default 'CentOS Linux (4.4.6-1.el7.elrepo.x86_64) 7 (Core)'或者使用最新的Centos 7.3,最新的Centos 7.3合并了一些overlay的bugfix:
在添加节点的时候指定 --override-kernel-check参数就可以添加
还有最简单的办法,如果系统盘上没有数据的话,可以直接替换系统盘。