k8s集群搭建-准备
本章节主要介绍如何搭建kubernetes的集群环境
一、环境规划
1.1 集群类型
kubernetes集群大体上分为两类: 一主多从和多主多从
-
一主多从: 一台Master节点和多台Node节点,搭建简单,但是有单机故障风险(master故障时),适合用于测试环境
-
多主多从: 多台Master节点和多台Node节点,搭建麻烦,安全性高,适合用于生产环境

说明: 为了演示简单,本次搭建的是 一主两从 类型的集群
1.2 安装方式
kubernetes有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包
-
minikube:一个用于快速搭建单节点kubernetes的工具
-
kubeadm:一个用于快速搭建kubernetes集群的工具
-
二进制包:从官网下载每个组件的二进制包,依次去安装,此方式对于理解kubernetes组件更加有效
说明: 现在需要安装kubernetes的集群环境,不想过于麻烦,所以选择使用kubeadm方式
1.3 主机规划
| 作用 | IP地址 | 操作系统 | 配置 |
|---|---|---|---|
| Master | 192.168.28.134 | Centos7.9 基础设施服务器 | 2颗CPU 2G内存50G硬盘 |
| Node1 | 192.168.28.135 | Centos7.9 基础设施服务器 | 2颗CPU 2G内存50G硬盘 |
| Node2 | 192.168.28.136 | Centos7.9 基础设施服务器 | 2颗CPU 2G内存50G硬盘 |
二、虚拟机准备
本次环境搭建需要安装三台Centos服务器 (一主二从)
2.1 主机安装
安装虚拟机过程中注意下面选项的设置:
-
硬盘(50G)
-
操作系统环境: CPU (2C)
-
内存(2G)
-
语言选择:中文简体
-
软件选择:基础设施服务器
-
分区选择: 自动分区
-
网络配置: 按照下面配置网路地址信息
cd /etc/sysconfig/network-scripts vi ifcfg-ens33 网络地址: 192.168.28.134(每台主机都不一样 分别为134、135、136) 子网掩码: 255.255.255.0 默认网关: 192.168.28.2 DNS:223.5.5.5
三、基础环境准备
3.1 检查操作系统版本
# 此方式下安装kubernetes集群要求Centos版本要在7.5或之上 [root@master ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
3.2 主机名解析
为了方便后面集群节点间的直接调用,在这配置一下主机名解析,企业中推荐使用内部DNS服务器
#主机名解析 编辑三台服务器的/etc/hosts文件,添加下面内容 192.168.28.134 master 192.168.28.135 node1 192.168.28.136 node2
3.3 时间同步
kubernetes要求集群中的节点时间必须精确一致,这里直接使用chronyd服务从网络同步时间。企业中建议配置内部的时间同步服务器
#启动chronyd服务 [root@master ~]# systemctl start chronyd #设置chronyd服务开机自启 [root@master ~]# systemctl enable chronyd #chronyd服务启动稍等几秒钟,就可以使用date命令验证时间了 [root@master ~]# date
3.4 禁用iptables和firewalld
kubernetes和docker在运行中会产生大量的iptables规则,为了不让系统规则跟它们混淆,直接关闭系统的规则
systemctl stop firewalld systemctl stop iptables.service systemctl disable firewalld systemctl disable iptables.service
3.5 禁用selinux
selinux是linux系统下的一个安全服务,如果不关闭它,在安装集群中会产生各种各样的奇酶问题
# 编辑 /etc/selinux/config 文件,修改SELINUX的值为disabled # 注意修改完毕之后需要重启linux服务 SELINUX=disabled
3.6 禁用swap分区
swap分区指的是虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间虚拟成内存来使用
kubernetes要求每个节点都要禁用swap设备(以防性能影响)
但是如果因为某些原因确实不能关闭swap分区,就需要在集群安装过程中通过明确的参数进行配置说明
# 编辑分区配置文件/etc/fstab,注释掉swap分区一行 # 注意修改完毕之后需要重启linux服务 # /dev/mapper/centos-swap swap
3.7 修改linux的内核参数
# 修改linux的内核参数,添加网桥过滤和地址转发功能 # 编辑/etc/sysctl.d/kubernetes.conf文件,添加如下配置 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 # 编辑/etc/sysctl.d/k8s.conf cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF #重新加戟配置 [root@master ~]# sysctl -p [root@master ~]# sysctl --system # 加载网桥过滤模块 [root@master ~]# modprobe br_netfilter # 查看网桥过滤模块是否加成功 [root@master ~]# lsmod | grep br_netfilter
3.8 配置ipvs功能
在kubernetes中service有两种代理模型,一种是基于iptables的,一种是基于ipvs的
两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块
# 1 安装ipset和ipvsadm [root@master ~]# yum install ipset ipvsadm ipvsadmin -y # 2 添加需要加载的模块写入脚本文件(高内核采用nf_conntrack,否则采用nf_conntrack_ipv4) [root@master ~]# cat <<EOF > /etc/sysconfig/modules/ipvs.modules #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack_ipv4 modprobe -- nf_conntrack EOF #3 为脚本文件添加执行权限 [root@master ~]# chmod +x /etc/sysconfig/modules/ipvs.modules # 4 执行脚本文件 [root@master ~]# /bin/bash /etc/sysconfig/modules/ipvs.modules # 5查看对应的模块是否加载成功 [root@master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4
3.9 重启服务器
reboot
更多推荐

所有评论(0)