首页 > kubernetes(k8s) > kubernetes集群安装(kubeadm部署)
2019
05-10

kubernetes集群安装(kubeadm部署)

前期准备

首先我的 k8s服务器是由 一个 master01服务器和 2个 node节点组成(node1,node2)

另外呢还有一个(harbox)私有仓库(我们的镜像一般存储在这里会比较方便)

另外呢还有个软路由(Router)

基本设施如下:


开始吧

0.私有仓库Harbor安装请看这里 传送

1.构建Router机器(koolshare)

这个需要你有一台国外的服务器才能搞(我没有,所以我不搞)

2.构建master ,node1 ,node2

系统初始化(三台机器都要执行如系统初始化操作)

设置系统主机名以及 Host 文件的相互解析

安装依赖包

设置防火墙为 Iptables 并设置空规则(需要开启防火墙的可以走这一步)

关闭防火墙,清理防火墙规则,设置默认转发策略(推荐):

关闭 SELINUX 和 swap交换分区

调整内核参数,对于 K8S

生产如下

调整系统时区

关闭系统不需要服务

设置 rsyslogd 和 systemd journald

升级系统内核为 4.44

CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定,

例如: rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

关闭 NUMA

vim /etc/default/grub # 在 GRUB_CMDLINE_LINUX 一行添加 numa=off 参数

最终文件内容如下所示:

然后备份和生成新的

然后重启即可 reboot

(系统初始化到此结束….分割线———————–)

Kubeadm部署安装

kube-proxy开启ipvs的前置条件

安装 Docker 软件

安装 Kubeadm (主从配置) (注意下下面这个脚本,可能行么有对齐,自行调整 ,编辑器原因)

设置添加阿里YUM软件源

  • kubeadm 初始化工具
  • kubectl 命令行管理工具
  • kubelet 跟dokcer交互创建容器

初始化主节点

初始化之前,我们先导入一下镜像(kuberadm在初始化我们的云服务器之前会从google的云服务器pull镜像,这个镜像还是比较大的,而且速度比较慢,并且她还需要一个科学上网的东东存在,如果你有ssr这个科学上网东西,那没问题,要是你没有呢,所以我们事先已经打包好了这写要用到的镜像)

所需镜像打包下载地址:

链接:https://pan.baidu.com/s/1CxAdBMikFjCrb7iwGHsxsA
提取码:s8bx

下载之后传到服务器,解压

因为这里镜像较多,我们可以写个脚本来导入到docker中

导入完成

下面的配置针对的是主节点 k8s-master (子节点到上一步导入镜像完成后已截止,只待加入主节点命令)

将kuberadm的配置文件打印到默认的kuberadm-config.yaml文件中

编辑kubeadm-config.yaml文件

完整配置文件如下(主节点)

接下来通过指定yaml文件,进行初始化安装,以及自动颁发证书

安装完成后kubeadm的配置文件会放在此目录

安装完成后还有这几件事要做

到此主节点配置完成,我们使用命令查看一下节点

因为我们还没有加入到任何集群插件中去,所以显示NotReady

部署网络 flannel

为了等会看起来不乱,我们在家目录下创建一个install-k8s文件夹

解决办法如下

kube-flannel.yml

然后通过kubectl apply命令,依据yml配置文件创建出来

创建完成后可以通过以下命令查看这个插件是否创建成功

查看ifconfig

已经有了扁平化的网络状态,所以显示Ready

将子节点加入到主节点master,加入的命令请查看安装日志最后一条

cat kubeadm-init.log

那我们把这条命令复制到其他子节点运行一下

加入成功
现在这个节点状态还是NotReady ,原因是在当前节点flannel还没有运行成功,稍等一会

查看详细信息

可以看到这2个节点还在初始化过程当中

我们等待他运行成功

镜像加载失败了,还是手动给其他2个子节点导入flannel镜像吧

手动自行导入吧,这个没辙,很大几率下载不成功,除非你能科学上网

导入之后他会自动重启(k8s一个pod启动失败他会一直启动直到启动成功)

三个节点都已经运成功

::后期工作

因为 install-k8s目录下的一些配置文件和安装日志后期可能会用到,你最好放到/usr/local下防止不经意删除(建议)

到此,我们的k8s集群就安装成功了

最后编辑:
作者:shooter
这个作者貌似有点懒,什么都没有留下。