赞
踩
内容来源。1
本章节主要介绍如何搭建kubernetes的集群环境。
● Kubernetes集群大致分为两类:一主多从和多主多从。
● 一主多从:一个Master节点和多台Node节点,搭建简单,但是有单机故障风险,适合用于测试环境。
● 多主多从:多台Master和多台Node节点,搭建麻烦,安全性高,适合用于生产环境。
● kubernetes有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包。
● ① minikube:一个用于快速搭建单节点的kubernetes工具。
● ② kubeadm:一个用于快速搭建kubernetes集群的工具。
● ③ 二进制包:从官网上下载每个组件的二进制包,依次去安装,此方式对于理解kubernetes组件更加有效。
● 我们需要安装kubernetes的集群环境,但是又不想过于麻烦,所以选择kubeadm方式。
作用 | IP地址 | 操作系统 | 配置 |
---|---|---|---|
Master | 192.168.18.100 | CentOS7.5,基础设施服务器 | 2核CPU,2G内存,50G硬盘 |
Node1 | 192.168.18.101 | CentOS7.5,基础设施服务器 | 2核CPU,2G内存,50G硬盘 |
Node2 | 192.168.18.102 | CentOS7.5,基础设施服务器 | 2核CPU,2G内存,50G硬盘 |
本次环境搭建需要三台CentOS服务器(一主二从),然后在每台服务器中分别安装Docker(18.06.3)、kubeadm(1.18.0)、kubectl(1.18.0)和kubelet(1.18.0)。
安装虚拟机过程中注意下面选项的设置:
● 操作系统环境:CPU(2C) 内存(2G) 硬盘(50G)
● 语言选择:中文简体
● 软件选择:基础设施服务器
● 分区选择:自动分区
● 网络配置:按照下面配置网络地址信息
网络地址:192.168.109.100(每台主机都不一样,分别为100/101/102)
子网掩码:255.255.255.0
默认网关:192.168.109.2
DNS:223.5.5.5
主机名设置:按照下面信息设置主机名
master节点: maser
node节点: node1
node节点: node2
1) 检查操作系统的版本
#此方式安装kubernetes集群要求centos7.5或以上版本
cat /etc/redhat-release
2)主机名解析
为了方便后面集群节点的直接调用,在这配置一下主机名解析,企业中推荐使用内部DNS服务器
#主机名解析 编辑三台服务器 /ets/hosts文件,添加下面内容
192.168.211.100 master
192.168.211.101 node1
192.168.211.102 node2
3)时间同步
kubernetes要求集群中的节点时间必须精确一致,这里使用chronyd服务从网络同步时间。
企业中建议配置内部的时间同步服务器
下面展示一些 内联代码片
。
#启动chronyd服务
[root@master ~]# systemctl start chronyd
#设置开机自启动
[root@master ~]# systemctl enable chronyd
#启动几秒钟就可以用date进行验证
[root@master ~]# date
2022年 07月 12日 星期二 14:23:41 CST
4)禁用iptables和firewalld服务
kubernetes和docker在运行中会产生大量的iptables规则,为了不让系统规则跟它们混淆,直接关闭系统的规则
#关闭filewalld服务
[root@node2 ~]# systemctl stop firewalld
[root@node2 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
#关闭iptables服务
[root@node2 ~]# systemctl stop iptables
Failed to stop iptables.service: Unit iptables.service not loaded.
[root@node2 ~]# systemctl disable iptables
Failed to execute operation: No such file or directory
5)禁用selinux
selinux是linux系统下的一个安全服务,如果不关闭它,在安装集群中会产生各种奇葩问题
#查看状态
[root@node2 ~]# getenforce
Enforcing
#修改/etc/selinux/config文件,将selinux为disabled,修改完后需要重启linux
[root@node2 ~]# vim /etc/selinux/config
6)禁用swap分区
swap分区指的是虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间虚拟成内存来使用
启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用swap设备
但是如果因为某些原因确实不能关闭swap分区,就需要在集群安装过程中通过明确的参数进行配置说明
#编辑分区配置文件/etc/fstab,注释掉swap分区一行,修改完后需要重启linux
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
#重新加载配置
sysctl -p
#加载网桥过滤模块
modprobe br_netfilter
#查看网桥过滤模块是否加载成功
lsmod | grep br_netfilter
8)配置ipvs功能
在kubernetes中service有两种代理模型,一种是基于iptables,另一种是基于ipvs的。ipvs的性能要高于iptables的,但是如果要使用它,需要手动载入ipvs模块。
#1安装ipset和ipvsadm yum -y install ipset ipvsadm #2添加需要加载的模块写入脚本文件 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 EOF #3为脚本添加可执行权限 chmod +x /etc/sysconfig/modules/ipvs.modules #4执行脚本文件 /bin/bash/ /etc/sysconfig/modules/ipvs.modules #5查看对应模块是否加载成功 lsmod | grep -e ipvs -e nf_conntrack_ipv4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。