2 Kubernetes(K8S) 集群环境搭建

内容来源。1
本章节主要介绍如何搭建kubernetes的集群环境。

2.1 环境规划

2.1.1 集群类型

● Kubernetes集群大致分为两类:一主多从多主多从
一主多从:一个Master节点和多台Node节点,搭建简单,但是有单机故障风险,适合用于测试环境。
多主多从:多台Master和多台Node节点,搭建麻烦,安全性高,适合用于生产环境。

在这里插入图片描述

2.1.2 安装方式

● kubernetes有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包。

● ① minikube:一个用于快速搭建单节点的kubernetes工具。
● ② kubeadm:一个用于快速搭建kubernetes集群的工具。
● ③ 二进制包:从官网上下载每个组件的二进制包,依次去安装,此方式对于理解kubernetes组件更加有效。

● 我们需要安装kubernetes的集群环境,但是又不想过于麻烦,所以选择kubeadm方式。

2.1.3 主机规划

作用IP地址操作系统配置
Master192.168.18.100CentOS7.5,基础设施服务器2核CPU,2G内存,50G硬盘
Node1192.168.18.101CentOS7.5,基础设施服务器2核CPU,2G内存,50G硬盘
Node2192.168.18.102CentOS7.5,基础设施服务器2核CPU,2G内存,50G硬盘

2.2 环境搭建

本次环境搭建需要三台CentOS服务器(一主二从),然后在每台服务器中分别安装Docker(18.06.3)、kubeadm(1.18.0)、kubectl(1.18.0)和kubelet(1.18.0)。

2.2.1 主机安装

安装虚拟机过程中注意下面选项的设置:
● 操作系统环境: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

在这里插入图片描述

2.2.2 环境初始化

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

2.2.3 安装docker

2.2.4 安装kubernetes组件

2.2.5 准备集群镜像

2.2.6 集群初始化

2.2.7 安装网络插件


  1. 根据哔哩哔哩黑马程序员教程《Kubernetes(K8S) 入门进阶实战完整教程,黑马程序员K8S全套教程(基础+高级)》参考整理,链接: link↩︎

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐