跳到主要内容

使用kubeadm搭建 k8s

· 7 分钟阅读
月子喵

上次把内网的虚拟化清理掉了, 包括内网的一些服务全都没了, 这篇文章就记录一下 k8s 的搭建过程吧

![](./使用kubeadm搭建k8s/logo.svg) &
Preview

准备

先把服务器准备好, 搭建 k8s 最小化的集群, 一个 master 2 个 node

  • 机器
\\Master1Node1Node2
CPU2 核心2 核心2 核心
内存2G4G4G
磁盘30G 本地SSD30G 本地SSD30G 本地SSD

磁盘给的不多, 后面需要数据持久化的时候远程挂在 NFS 存储即可,性能也给的不多, 后期按需求添加

  • 系统 (Centos 7)

所有的均关闭了 SELinux, 防火墙

关闭 SELinux

在每一个节点上面运行以下命令, 以关闭 selinux

加载中.....

关闭防火墙

加载中.....

设置路由

加载中.....

设置转发

加载中.....

关闭 Swap 分区

加载中.....

安装

下面的所有步骤均按照 kubernetes 官方教程 操作, 且使用了代理, 未使用相关的国内镜像服务, 请在相关的 yum, docker 处做好 proxy

安装 DockerCE

先安装 yum-config-manager

加载中.....

添加仓库

加载中.....

安装 docker-ce

加载中.....

当前版本建议安装 18.09的版本, 但是因为我头铁, 所以选最新的

安装kubeadm

在每一个节点上运行以下命令, 添加 kubernetes 的仓库

加载中.....

安装 kubeadm

加载中.....

启动 kubeadm

加载中.....

初始化

Master 节点

运行

加载中.....

如果出现了类似这样的提示

加载中.....

参照 Container runtimes 修复, 过程如下

加载中.....

然后按照 Configure cgroup driver used by kubelet on control-plane node进行修改

编辑 /etc/default/kubelet文件添加

加载中.....

然后

加载中.....

亲测有效

如果发现镜像下载不下来

加载中.....

如果镜像拉取完成, 重新执行 init 操作, 完成之后如下

加载中.....

执行其中的

加载中.....

记录 Master 机器的这个信息以后要用到

加载中.....

Node 节点

在每个 node 节点上面运行上面 master 节点保存的 kubeadm join,如果出现了问题, 参考上面 master 的处理方式进行操作

加入到 Master 的集群里面

这里我遇到了一个问题, 我忘记修改 hostname 了, 导致三个节点的 hostname 为同一个, 虽然下 join 的时候不会报错, 但是get nodes 的时候除了 master 其他的都不会显示, 修改方式为 hostnamectl set-hostname <hostname>

上面的所有操作完成之后 kubectl get nodes 如下图

加载中.....

不过这个时候所有的节点都处在 NotReady的状态, 这时候还缺一个 网络插件, 这里我们安装flannel

在 Master 上面执行

加载中.....

等待完成之后 运行 kubectl get pods -A

加载中.....

可以看到 flannel 的组建都已经 Running, 这时候我们再查看一下 node 的状态

加载中.....

都已经 Ready,

致此, 基本安装已经结束