本文将介绍使用kubeadm进行kubernetes1.9.0版本的离线部署,1.9版本是2017年发布的最后一个版本。kubeadm是kubernetes官方推荐的自动化部署工具,他将kubernetes的组件以pod的形式部署在master和node节点上,并自动完成证书认证等操作。
环境介绍:
Master节点:
主机名:vm1
IP地址:192.168.115.5/24
Node节点:
主机名:vm2
IP地址:192.168.115.6/24
软件版本:
kubernetes:v1.9.0
docker:17.03
etcd:3.1.10
pause :3.0
flannel:v0.9.1
kubernetes-dashboard:v1.8.1
在开始之前我们需要将前文配置的1.5.2版本的k8s以及docker、etcd等软件进行卸载。
# yum -y remove kubernetes* docker* docker-selinux etcd
kubeadm默认要从google的镜像仓库下载镜像,我们要将下载好的镜像文件进行本地导入
下载链接: https://pan.baidu.com/s/1c2O1gIW
密码:9s92
MD5: b60ad6a638eda472b8ddcfa9006315ee
一、环境准备工作 (master和node节点上同步执行)
1、配置vm1和vm2节点ssh互信
# ssh-keygen
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@vm2
# scp -rp k8s_images vm2:/root
# ssh-keygen
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@vm1
2、关闭防火墙、selinux、配置内核参数
# systemctl stop firewalld && systemctl disable firewalld
# getenforce
Disabled
# echo "
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
" >> /etc/sysctl.conf
# sysctl -p
禁用selinux,主要为了允许容器可以访问主机文件系统和pod networks的需要。
设置内核参数主要是为了避免 RHEL/CentOS 7系统下出现路由异常。
Some users on RHEL/CentOS 7 have reported issues with traffic being routed incorrectly due to iptables being bypassed。
二、安装 17.03.2-ce版本的docker,并导入image文件。(master和node节点上同步执行)
# yum install bzip2
# tar -xjvf k8s_images.tar.bz2
# cd k8s_images
# yum -y localinstall docker-ce-*
# systemctl start docker && systemctl enable docker
# docker version
# cd k8s_images/docker_images/
# for i in $(ls *.tar);do docker load < $i;done
# cd ..
# docker load < kubernetes-dashboard_v1.8.1.tar
三、安装k8s 1.9.0版本软件包(master和node节点上同步执行)
# cd /root/k8s_images/
# rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm
# rpm -ivh kubernetes-cni-0.6.0-0.x86_64.rpm \
kubelet-1.9.9-9.x86_64.rp