kubernetes已经发布了1.8,今天需要在一个新机房部署k8s环境,于是决定尝试最新版本1.8,部署过程中故意和以前的部署步骤有些不同,故而出现了一些问题,并且发现k8s这有个新版本本身几个差异地方记录如下:
1.首先遇到的问题便是get-kub-binaries.sh执行之后,无法正常下载到新版的程序压缩包了,在1.7以前都不需要科学上网就可以下载的。我只好在设置好代理的服务器上执行它下载好,然后传到服务器上把client按照以前旧版本的路径规划解压到platform目录下,把server直接解压到server目录。
2.kubelet的启动参数中,--require-kubeconfig已经不用了,如果配置了会在日志中看到警告。并且,--experimental-bootstrap-kubeconfig已经去掉了experimental-这个单词。
3.新版本的kubelet启动时会严格判断swap是否开启,如果开启会报错,使用sfdisk -l查看一下哪个区分是swap分区,使用swapoff /dev/xvda2这样的命令把它关闭,或者直接swapoff -a关闭所有的swap分区,并且把/etc/fstab文件中指定swap那一行删除,使用swapoff 命令报错提示无法分配到内存。那是因为内存已经使用了太多,超过了物理内存,使用了swap,所以必需释放一些内存以便操作系统将swap中已经使用的转移到物理内存中,如果是docker启动了太多容器,systemctl restart docker就可以了。另外一种方式是在配置文件中指定--fail-swap-on为false,但是这样会影响k8s的调度决策算法。