环境
Master: 192.168.20.93
Node1: 192.168.20.94
Node2: 192.168.20.95
采用kubeadm安装
kubeadm为kubernetes官方推荐的自动化部署工具,他将kubernetes的组件以pod的形式部署在master和node节点上,并自动完成证书认证等操作。
因为kubeadm默认要从google的镜像仓库下载镜像,但目前国内无法访问google镜像仓库,所以已将镜像下好,只需要将离线包的镜像导入到节点中就可以了.\
开始安装
----所有节点操作:----
下载:
解压下载下来的离线包
原因:没有bzip2解压工具,安装后解压:
安装启动docker,关闭selinux,firewalld,后
配置系统路由参数,防止kubeadm报路由警告:
导入镜像:
安装kubelet kubeadm kubectl包:
Master节点操作:
开始初始化master:
kubernetes默认支持多重网络插件如flannel、weave、calico,这里使用flanne,就必须要设置--pod-network-cidr参数,10.244.0.0/16是kube-flannel.yml里面配置的默认网段,如果需要修改的话,需要把kubeadm init的--pod-network-cidr参数和后面的kube-flannel.yml里面修改成一样的网段就可以了。
部分会安装失败:
发现原来是kubelet默认的cgroup的driver和docker的不一样,docker默认的cgroupfs,kubelet默认为systemd,需要将kubelet的cgroup改为和docker的cgroup相同: "Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd""
重启reload
此时记得将环境reset一下
执行:
在重新执行:
完成后,将kubeadm join xxx保存下来,等下node节点加入集群需要使用
如果忘记了,可以在master上通过kubeadmin token list得到
此时root用户还不能使用kubelet控制集群需要,按提示配置下环境变量
对于非root用户
对于root用户
也可以直接放到~/.bash_profile
source一下环境变量
kubectl version测试:
安装网络,可以使用flannel、calico、weave、macvlan这里我们用flannel。
下载此文件
或直接使用离线包里面的
若要修改网段,需要kubeadm --pod-network-cidr=和这里同步
vim kube-flannel.yml
修改network项:
"Network": "10.244.0.0/16",
执行
node节点操作
使用刚刚kubeadm后的kubeadm join --xxx:
多次加入报错查看/var/log/message日志.
加入成功
在master节点上check一下:
kubernetes会在每个node节点创建flannel和kube-proxy的pod: