搭建的基础
- Linux: CentOS-7-x86_64-DVD-1810.iso
- Docker: docker-ce-18.03.1.ce
- kubernetes: kubernetes v1.16.7
参考博文:
https://blog.csdn.net/zzq900503/article/details/81710319
https://www.kubernetes.org.cn/6632.html
https://blog.csdn.net/fanren224/article/details/86348037
k8s和docker还有linux系统有版本对应关系,具体的可以在github上面看链接地址:https://github.com/kubernetes/kubernetes/releases在CHANGELOG里面有,大概在这个位置,这里选择kubernetes v1.16.7
注意:Kubernetes 是google的东西,几乎所有的安装组件和 Docker 镜像都放在 goolge 自己的网站上,要么克服网络问题,要么使用国内的镜像,例如阿里云的镜像。
安装方式
Kubernetes 的安装方式大体有三种,这里搭建选择的第三种
- yum安装,好处是简单,坏处是需要google更新yum源才能获得最新版本的软件,而且所有软件的依赖不能自己指定
- 二进制安装,好处是可以安装任意版本的kubernetes,坏处是配置繁琐
- kubeadm安装,好处是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,坏处是屏蔽了很多细节,如果需要完全深度自己diy,没法弄。
准备工作
k8s至少需要一个master和一个node才能组成一个可用集群,这里我们按照高可用最低的配置,准备3台服务器
安装docker
3台服务器安装了docker, 每台服务器docker安装好了,设置docker开机启动,然后进行下面的配置
安装docker的步骤这里就不赘述了,如果不会可以参考这篇博文:
CentOS7 从零开始搭建一个jdk+tomcat的docker环境
关闭服务器防火墙和selinux
这里只是为了方便安装,把防火墙关闭了,如果是生产环境,可以去查询下具体需要开哪些端口
关闭防火墙
# 查看防火墙状态firewall-cmd --state# 关闭防火墙systemctl stop firewalld.service # 禁止防火墙开机启动systemctl disable firewalld.service
禁用SELINUX
SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。所以我们这里把它关闭了。
# 查看selinux状态/usr/sbin/sestatus -v | grep SELinux# 临时关闭setenforce 0# 修改sulinux配置文件后重启,永久关闭,SELINUX=disabled vi /etc/selinux/config
创建k8s网络配置文件
这里k8s网络使用flannel,网络需要设置内核参数bridge-nf-call-iptables=1,需要系统有br_netfilter模块
# 查看服务器有无lsmod |grep br_netfilter,没有就要加一个,有就忽略lsmod |grep br_netfilter# 临时新增一个,重启后会失效modprobe br_netfilter
永久添加方法在/etc/新建rc.sysinit 文件
#!/bin/bashfor file in /etc/sysconfig/modules/*.modules ; do[ -x $file ] && $filedone
在/etc/sysconfig/modules/目录下新建文件如下
cat /etc/sysconfig/modules/br_netfilter.modules modprobe br_netfilter
配置脚本权限
chmod 755 br_netfilter.modules
创建网络配置文件
# 创建k8s配置文件vi /etc/sysctl.d/k8s.conf
在k8s.conf中写入如下配置
net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1
加载配置文件
sysctl -p /etc/sysctl.d/k8s.conf
设置kubernetes源
创建yum配置文件
# 创建kubernetes源文件vi /etc/yum.repos.d/kubernetes.repo
在文件中添加如下内容,阿里镜像使用第一个,google镜像使用第二个
[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kuber