安装
使用kubeadm安装指定版本的kubernetes(安装1.14.0,最新版本为1.14.1),本教程使用root用户安装
一、前置条件(所有节点)
已安装好docker
swap已关闭
centos7.2或以上
至少2C2G
二、配置(所有节点)
2.1 yum源
在/etc/repos.d/目录下创建文件kubernetes.repo,内容如下
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=02.2 加载br_netfilter模块
执行以下命令查看br_netfilter模块是否已加载
如果没有,则手动加载
备注:实践中发现,即使手动加载该模块后
lsmod | grep br_netfilter的输出还是为空,没关系,直接忽略
2.3 关闭selinux
2.4 关闭firewalld
2.5 iptables
创建文件/etc/sysctl.d/k8s.conf,内容如下
然后执行命令使其生效
三、安装kubelet、kubectl、kubeadm(所有节点)
查看kubernetes的版本信息,可以看到当前最新版本为v1.14.1
这里我们安装1.14.0,执行以下命令安装kubelet、kubectl、kubeadm
然后启动kubelet
注意:此时如果用命令systemctl status kubelet查看kubelet的状态,并不是active,没有关系
四、安装Master(master节点)
4.1 初始化master
首先执行以下命令下载所需镜像,如果成功的话会有如下输出,下载了如下的七个镜像:
然后执行以下命令初始化master,该命令会有很多输出,安装失败的话可以从输出中找到错误信息。如果安装成功,则会在最后打印出类似如下的信息:
4.2 使用kubectl
如果非root用户想使用kubectl工具,执行以下命令
如果是root用户想使用kubectl工具,执行以下命令(本教程使用root用户)
4.3 安装网络插件
这里我们使用网络插件calico,执行以下命令安装
如果提示说文件下载不下来,你可以手动把rbac-kdd.yaml与calico.yaml这两个文件先下载下来,然后再执行命令
4.4 验证master节点
在master上执行以下命令,查看master节点的状态,应当为Ready
五、安装Node(node节点)
在master上执行以下命令,获取bootstrap token,输出如下:
bootstrap token的过期时间一般为24小时,如果没有可用的token,则执行以下的命令创建一个
在master上执行以下命令获取--discovery-token-ca-cert-hash,输出如下
然后,在node节点上执行以下命令,将节点加入到集群中(注意:在执行此命令前,也需要先在node节点上安装好docker、kubelet、kubeadm)
最后,我们验证一下node节点是否成功加入到集群:在master上执行以下命令,应当看到node为Ready状态
六、去掉Master的污点
默认情况下,master节点上有一个污点,如下:
我们需要去掉这个污点,使用Pod能正常调度到master节点上。执行以下命令:
FAQ
Q: 节点长时间为NotReady状态?
A:执行命令kubectl get pod -o wide -n kube-system | grep calico-node查看节点上的calico-node是否为Running状态,如果一直是ContainerCreating状态,有可能是calico的镜像一直下载不下来。在节点上执行命令检查calico的镜像是否成功下载下来:
Last updated
Was this helpful?