赤水市住房和城乡建设局网站,自适应网站建设特点,上海 网站建设google,网站策划编辑如何做本章节主要介绍如何搭建kubernetes的集群环境
环境规划
集群类型
kubernetes集群大体上分为两类#xff1a;一主多从和多主多从。
一主多从#xff1a;一台Master节点和多台Node节点#xff0c;搭建简单#xff0c;但是有单机故障风险#xff0c;适合用于测试环境多主…本章节主要介绍如何搭建kubernetes的集群环境
环境规划
集群类型
kubernetes集群大体上分为两类一主多从和多主多从。
一主多从一台Master节点和多台Node节点搭建简单但是有单机故障风险适合用于测试环境多主多从多台Master节点和多台Node节点搭建麻烦安全性高适合用于生产环境 说明为了测试简单本次搭建的是 一主两从 类型的集群 安装方式
kubernetes有多种部署方式目前主流的方式有kubeadm、minikube、二进制包
minikube一个用于快速搭建单节点kubernetes的工具kubeadm一个用于快速搭建kubernetes集群的工具二进制包 从官网下载每个组件的二进制包依次去安装此方式对于理解kubernetes组件更加有效 说明现在需要安装kubernetes的集群环境但是又不想过于麻烦所以选择使用kubeadm方式 主机规划
作用IP地址操作系统配置Master192.168.109.101Centos7.5 基础设施服务器2颗CPU 2G内存 50G硬盘Node1192.168.109.102Centos7.5 基础设施服务器2颗CPU 2G内存 50G硬盘Node2192.168.109.103Centos7.5 基础设施服务器2颗CPU 2G内存 50G硬盘
环境搭建
本次环境搭建需要安装三台Centos服务器一主二从然后在每台服务器中分别安装docker18.06.3kubeadm1.17.4、kubelet1.17.4、kubectl1.17.4程序。
主机安装
安装虚拟机过程中注意下面选项的设置 操作系统环境CPU2C 内存2G 硬盘50G 语言选择中文简体 软件选择基础设施服务器 分区选择自动分区 网络配置按照下面配置网路地址信息 网络地址192.168.217.100 每台主机都不一样 分别为100、101、102
子网掩码255.255.255.0
默认网关192.168.217.2
DNS 223.5.5.5主机名设置按照下面信息设置主机名
master节点 master
node节点 node1
node节点 node2环境初始化
检查操作系统的版本
# 此方式下安装kubernetes集群要求Centos版本要在7.5或之上
[rootmaster ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)2 主机名解析
为了方便后面集群节点间的直接调用在这配置一下主机名解析企业中推荐使用内部DNS服务器
# 主机名成解析 编辑三台服务器的/etc/hosts文件添加下面内容
vim /etc/hosts192.168.217.100 master
192.168.217.101 node1
192.168.217.102 node2ping master
ping node1
ping node23 时间同步
kubernetes要求集群中的节点时间必须精确一致这里直接使用chronyd服务从网络同步时间。
企业中建议配置内部的时间同步服务器
# 启动chronyd服务
[rootmaster ~]# systemctl start chronyd
# 设置chronyd服务开机自启
[rootmaster ~]# systemctl enable chronyd
# chronyd服务启动稍等几秒钟就可以使用date命令验证时间了
[rootmaster ~]# date4 禁用iptables和firewalld服务
kubernetes和docker在运行中会产生大量的iptables规则为了不让系统规则跟它们混淆直接关闭系统的规则
# 1 关闭firewalld服务
[rootmaster ~]# systemctl stop firewalld
[rootmaster ~]# systemctl disable firewalld
[rootmaster ~]# systemctl status firewalld
# 2 关闭iptables服务
[rootmaster ~]# systemctl stop iptables
[rootmaster ~]# systemctl disable iptables5 禁用selinux
selinux是linux系统下的一个安全服务如果不关闭它在安装集群中会产生各种各样的奇葩问题
getenforce
# 编辑 /etc/selinux/config 文件修改SELINUX的值为disabled
# 注意修改完毕之后需要重启linux服务
vim /etc/selinux/config
SELINUXdisabled6 禁用swap分区
swap分区指的是虚拟内存分区它的作用是在物理内存使用完之后将磁盘空间虚拟成内存来使用
启用swap设备会对系统的性能产生非常负面的影响因此kubernetes要求每个节点都要禁用swap设备
但是如果因为某些原因确实不能关闭swap分区就需要在集群安装过程中通过明确的参数进行配置说明
# 编辑分区配置文件/etc/fstab注释掉swap分区一行
# 注意修改完毕之后需要重启linux服务
vim /etc/fstabUUID455cc753-7a60-4c17-a424-7741728c44a1 /boot xfs defaults 0 0/dev/mapper/centos-home /home xfs defaults 0 0
# /dev/mapper/centos-swap swap swap defaults 0 07修改linux的内核参数
# 修改linux的内核参数添加网桥过滤和地址转发功能
# 编辑/etc/sysctl.d/kubernetes.conf文件添加如下配置:
vim /etc/sysctl.d/kubernetes.confnet.bridge.bridge-nf-call-ip6tables 1
net.bridge.bridge-nf-call-iptables 1
net.ipv4.ip_forward 1# 重新加载配置
[rootmaster ~]# sysctl -p# 加载网桥过滤模块
[rootmaster ~]# modprobe br_netfilter# 查看网桥过滤模块是否加载成功
[rootmaster ~]# lsmod | grep br_netfilter8配置ipvs功能
在kubernetes中service有两种代理模型一种是基于iptables的一种是基于ipvs的
两者比较的话ipvs的性能明显要高一些但是如果要使用它需要手动载入ipvs模块
# 1 安装ipset和ipvsadm
[rootmaster ~]# yum install ipset ipvsadmin -y# 2 添加需要加载的模块写入脚本文件
[rootmaster ~]# 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 为脚本文件添加执行权限
[rootmaster ~]# chmod x /etc/sysconfig/modules/ipvs.modules# 4 执行脚本文件
[rootmaster ~]# /bin/bash /etc/sysconfig/modules/ipvs.modules# 5 查看对应的模块是否加载成功
[rootmaster ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv49 重启服务器
上面步骤完成之后需要重新启动linux系统
[rootmaster ~]# rebootgetenforcefree -m