微服架构基础设施环境平台搭建 -(一)基础环境准备

微服架构基础设施环境平台搭建 -(一)基础环境准备

通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、测试、发布的自动部署,形成一套完整的自动化运维、发布的快速DevOps平台。


本文为了搭建Kubernetes集群而准备的服务器以及针对服务器基础环境配置。

文章的操作过程大部分参照【基于青云LB搭建高可用的k8s集群

微服架构基础设施环境平台搭建 系列文章


微服架构基础设施环境平台搭建 -(一)基础环境准备
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
微服架构基础设施环境平台搭建 -(三)Docker+Kubernetes集群搭建
微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台
微服架构基础设施环境平台搭建 -(五)Docker常用命令
微服架构基础设施环境平台搭建 -(六)Kubesphere 部署Redis服务 & 设置访问Redis密码
微服架构基础设施环境平台搭建 -(七)Kubesphere pod内安装vim&ping命令

一、采用的技术架构

序号技术框架说明
1Kubernetes
2KubesphereKubernetes编排器,管理平台
3Dockers
4HarborDocker私有仓库
5GitLab源码库
6Jekins自动编译、测试、发布平台
7Spring Cloud AlibabaSpring Cloud Alibaba微服体系架构
8NacosApi网关、服务注册发现配置管理中心
9Sentinel限流溶断安全中心
10Seata分布式事务管理框架
11Redis分布式缓存服务
12ElasticSearch/Solr数据检索服务
13Mysql结构化数据存储
14Grafana监控平台
15Nginx服务代理、Web服务

二、微服架构基础设施平台网络规划

序号IPHostName操作系统K8s角色说明
1192.168.1.141ks-m1CentOS7_x64控制节点Kubernetes Master
2192.168.1.142ks-m2CentOS7_x64控制节点Kubernetes Master高可用节点,如果不需要高可用,可不部署此服务器
3192.168.1.143ks-m3CentOS7_x64控制节点Kubernetes Master高可用节点,如果不需要高可用,可不部署此服务器
4192.168.1.144ks-n1CentOS7_x64工作节点Kubernetes Worker
5192.168.1.145ks-n2CentOS7_x64工作节点Kubernetes Worker
6192.168.2.146ks-harborCentOS7_x64工作节点Harbor服务+NFS文件服务

三、部署架构

在这里插入图片描述

四、修改主机名和hosts文件

1. 修改主机名(各服务器分别修改主机名)

使用hostnamectl命令修改主机名,执行该命令后立即生效,代码如下

#在192.168.1.141上执行如下:
[root@localhost ~]# hostnamectl set-hostname ks-m1

其余的机器也使用hostnamectl命令修改主机名,示例如下:

## 在192.168.1.142上执行如下:
[root@localhost ~]# hostnamectl set-hostname ks-m2

#在192.168.1.143上执行如下:
[root@localhost ~]# hostnamectl set-hostname ks-m3

#在192.168.1.144上执行如下:
[root@localhost ~]# hostnamectl set-hostname ks-n1

#在192.168.1.145上执行如下:
[root@localhost ~]# hostnamectl set-hostname ks-n2

#在192.168.2.146上执行如下:
[root@localhost ~]# hostnamectl set-hostname ks-harbor

2. 修改hosts文件 # 添加机器ip与主机名映射

[root@localhost ~]# vim /etc/hosts
192.168.1.141  ks-m1
192.168.1.142  ks-m2
192.168.1.143  ks-m3
192.168.1.144  ks-n1
192.168.1.145  ks-n2
192.168.2.146  ks-harbor

五、 关闭防火墙、selinux、关闭交换分区(每台服务器都执行)

# 关闭防火墙
systemctl stop firewalld.service
# 禁止防火墙开机启动
systemctl disable firewalld.service
# 永久关闭selinux 注:重启机器后,selinux配置才能永久生效
sed -i 's/enforcing/disabled/' /etc/selinux/config
# 临时关闭selinux   执行getenforce   显示Disabled说明selinux已经关闭
setenforce 0
# 永久关闭交换分区swap 注:重启机器后,才能永久生效
sed -ri 's/.*swap.*/#&/' /etc/fstab
# 临时关闭交换分区swap
swapoff -a

六、免密登录(每台服务器都执行)

# 生成密钥对
ssh-keygen -t rsa   ## 一路回车即可
# 进入.ssh目录,如果目录不存在则创建
cd ~/.ssh
# 将公钥导入至authorized_keys
cat id_rsa.pub >> authorized_keys
# 修改文件权限
chmod 700 ~/.ssh
chmod 600 authorized_keys

在ks-m1上执行以下命令,使主节点能免密访问其他俩从节点:

# 配置主从互相免密登陆
cat ~/.ssh/id_rsa.pub | ssh root@ks-m2 'cat - >> ~/.ssh/authorized_keys'
cat ~/.ssh/id_rsa.pub | ssh root@ks-m3 'cat - >> ~/.ssh/authorized_keys'
cat ~/.ssh/id_rsa.pub | ssh root@ks-n1 'cat - >> ~/.ssh/authorized_keys'
cat ~/.ssh/id_rsa.pub | ssh root@ks-n2 'cat - >> ~/.ssh/authorized_keys'
cat ~/.ssh/id_rsa.pub | ssh root@ks-harbor 'cat - >> ~/.ssh/authorized_keys'

其它服务器参照上面命令依次每台服务器上执行免密登录命令

七、升级系统内核

在升级内核十分重要,低版本的内核下k8s集群不稳定,且对插件的兼容性不好,例如3.10版本的内核不支持网络插件Calico3.23版本等。
共有两种开机引导模式:bios和uefi,其中uefi引导模式下需要关闭安全引导,否则无法正常开机。

1、导入public key

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2、安装epel源

yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y

3、查看可用版本内核

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

4、选择安装lt最新版本

$ yum --enablerepo=elrepo-kernel install kernel-lt -y

5、查看系统上可以用的内核

说明:
首先需要确定Linux系统开机引导模式是BIOS还是UEFI,可以通过命令 [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS 来确定系统开机引导模式

  • 如果输出是BIOS就是BIOS;
  • 如果是 UEFI ,则是UEFI

执行命令:

[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

1)、BIOS模式执行下面命令:

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

2)、UEFI模式执行下面命令:

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/centos/grub.cfg

6、设置内核启动顺序

grub2-set-default 0

7、重新创建内核配置

1)、BIOS模式执行下面命令:

$ grub2-mkconfig -o /boot/grub2/grub.cfg

2)、UEFI模式执行下面命令:

$ grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

8、重启验证

内核升级完成后需要重新启动系统才能生效

1)、重启系统执行命令:

reboot

2)、查看系统内核执行命令:

uname -r

在这里插入图片描述

八、修改内核参数

1、加载br_netfilter模块

# 加载br_netfilter模块
modprobe br_netfilter
# 验证模块是否加载成功
lsmod | grep br_netfilter

2、修改内核参数

1)、修改配置文件

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF

说明
禁止使用swap空间,只有当系统OOM时才允许使用它
vm.swappiness = 0

2)、生效执行命令:

sysctl --system
# 或 
sysctl -p /etc/sysctl.d/k8s.conf

说明
以下3项为必须参数,其他参数可根据需要添加

  • net.bridge.bridge-nf-call-iptables:开启桥设备内核监控(ipv4)
  • net.ipv4.ip_forward:开启路由转发
  • net.bridge.bridge-nf-call-ip6tables:开启桥设备内核监控(ipv6)

九、配置yum源(采用阿里云repo源)

# 下载常用的软件
yum clean all && yum makecache  && yum repolist
yum install -y vim net-tools  bash-completion wget lrzsz     
# 配置国内阿里云docker的repo源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

十、配置安装k8s组件需要的阿里云的repo源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

十一、配置时间同步

方式一、采用ntpdate命令

# 安装ntpdate命令
yum install ntpdate -y
# 跟网络源做同步
ntpdate cn.pool.ntp.org
# 把时间同步做成计划任务
crontab -e
# 填入一下内容
* */1 * * * /usr/sbin/ntpdate   cn.pool.ntp.org
# 重启crond服务
service crond restart

方式二、chronyd

# 安装chronyd
yum install -y chronyd
# 启动chronyd及加入开机自启
systemctl start chronyd && systemctl enable chronyd 
# 修改/etc/chrony.conf配置文件,同步服务器地址为阿里云,增加一行(server ntp1.aliyun.com iburst,其余服务地址注释了)
server ntp1.aliyun.com iburst

十二、配置IPVS

yum install  -y ipvsadm ipset sysstat conntrack libseccomp  
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack ip_tables ip_set xt_set ipt_set ipt_rpfilter ipt_REJECT ipip "
for kernel_module in \${ipvs_modules}; do
  /sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1
  if [ $? -eq 0 ]; then
    /sbin/modprobe \${kernel_module}
  fi
done
EOF  
chmod 755 /etc/sysconfig/modules/ipvs.modules 
sh /etc/sysconfig/modules/ipvs.modules 
lsmod | grep ip_vs

说明
dummy0网卡和kube-ipvs0网卡:在安装k8s集群时,启用了ipvs的话,就会有这两个网卡。(将service的IP绑定在kube-ipvs0网卡上)

至此服务器的基础配置全部完成,下一篇将安装Docker的K8s集群

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老杜095

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值