安装

使用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=0

2.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.yamlcalico.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?