使用kubeadm方式安装kubernetes 1.10.0
环境准备
docker安装部署
所需docker安装包,请点击17.03自行下载使用。
基础镜像准备
本次演示 kubernetes 所依赖的各个镜像列表如下:
所需镜像,请点击images自行下载。
系统配置
根据官方文档中limitations小节中的内容,对各节点系统做如下设置:
安装kubeadm和kubelet
下面在各节点安装kubeadm和kubelet
初始化master准备
#说明:
(1)kubeadm 等相关 rpm 安装后会生成 /etc/kubernetes 目录,而 kubeadm init 时候又会检测这些目录是否存在,如果存在则停止初始化,所以要先清理一下。
参考官网tear down部分内容。
(2)初始化以前记得一定要启动 kubelet。
(3)安装ebtables包
新版本直接 init 会提示 ebtables not found in system path 错误,所以还得先安装一下这个包在初始化
(4)修改kubelet配置文件
(5)关闭系统Swap
Kubernetes 1.8开始要求关闭系统的Swap,如果不关闭,默认配置下kubelet将无法启动。可以通过kubelet的启动参数--fail-swap-on=false更改这个限制。
说明:因为这里本次用于测试的主机上还运行其他服务,关闭swap可能会对其他服务产生影响,所以这里修改kubelet的启动参数--fail-swap-on=false去掉这个限制。
注意⚠️如果碰到一下错误:
解决方法:
使用kubeadm init初始化集群
#使用kubeadm初始化集群,在Master Node上执行下面的命令:
#说明
我们选择flannel作为Pod网络插件,所以上面的命令指定–pod-network-cidr=10.244.0.0/16
#执行时的WARNING
#执行时如有:
#整个初始化流程
#关键内容说明
如果你需要重新做 kubeadm init ,那么我们最好把上次初始化和容器服务全部清理掉,具体步骤:
master节点验证
#查看一下集群状态
#解决方法:
#再次查看集群状态
#查看集群节点
#命令行验证
查看当前Network
kubeadm init成功之后,此时的master node上k8s的核心组件均正常启动,而且是多以container的形式启动。
不过这些核心组件并不是跑在pod network中的(没错,此时的pod network还没有创建),而是采用了host network。以kube-apiserver的pod信息为例:
#查看kube-apiserver的容器id
#查看对应的pause容器的network属性
安装flannel pod网络
查看master中所有pod的状态
向Kubernetes集群添加/删除Node
关于这部分操作,请点击参考Node操作
参考文档
centos7使用kubeadm安装kubernetes 1.11版本多主高可用