k8s安装脚本

135 阅读3分钟

下载源

# 1、安装wget  
yum install -y wget  
# 2、下载CentOS 7的repo文件  
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 或者

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 3、更新镜像源  
# 清除缓存:
yum clean all  
# 生成缓存:
yum makecache

免密登录各主机

# hosts
192.168.121.128 master01
192.168.121.129 master02
192.168.121.130 master03
192.168.121.131 node01
cat hosts >> /etc/hosts
# 生成ssh密钥
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
# 免密工具
yum install sshpass -y
pwd=1
for ip in $(cat hosts|awk '{print $1}');do 
    echo $ip
    sshpass -p $pwd ssh-copy-id -i ~/.ssh/id_rsa.pub root@$ip -o StrictHostKeyChecking=no
done

设置阿里源、修改主机名

for ip in $(cat hosts|awk '{print $2}');do 
    echo "####$ip#####"
    ssh -p22  root@$ip yum install -y wget
    ssh -p22 root@$ip "wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo"
    echo "##set hostname"
    ssh -p22  root@$ip "hostnamectl set-hostname $ip"
done

关机

for ip in $(cat hosts2|awk '{print $2}');do 
    echo "####$ip#####"
    ssh -p22  root@$ip "shutdown -h now"
done

设置linux内核参数

安装nginx

# No package nginx available.
# Error: Nothing to do

yum install epel-release -y 
yum install -y
nginx
nginx -s reload
# 修改index.html内容标记 

设置VIP 必须在一个网段,关闭防火墙

# 临时VIP
# 真实IP 192.168.121.133
ifconfig ens33:1 192.168.121.233 netmask 255.255.255.0 up
# 关闭 
ifconfig  ens33:1  192.168.121.233 down
# 持久化,开机设置
# vi /etc/sysconfig/network-scripts/ifcfg-ens33:1

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
#NAME=ens33
#UUID=48410a25-7b4a-47ab-9382-bc3f47bcd0e4
#DEVICE=ens33
ONBOOT=yes
DEVICE="ens33:1"
NAME="ens33:1"
IPADDR=192.168.237.5
NETMASK=255.255.255.0

# systemctl restart network
# 或service network restart


# 观察vip的mac地址
# vip的mac地址跟物理网卡的mac地址一致。
arp -a

image.png

lvs简介

lvs简介

lvs是一款实现了负载均衡调度服务器的软件,lvs项目由章文嵩博士创立
lvs全称为linux virtual server,linux虚拟服务器,为什么说是虚拟服务器?因为它本身并不工作,它只是把请求进行转发均衡
lvs目前在大公司中被广泛应用,跟keepalived结合起来使用居多
 
lvs三种工作模式
dr模式 直接路由模式
nat模式 网络地址转换模式
tun模式 隧道模式,用得比较少

lvs的dr模式
dr模式直接修改目的mac把请求传递给后端真实服务器,负载均衡器和真实服务器要在同一个局域网
drs模式下后端服务器也需要具有vip,后端服务器vip只是用来处理请求。负载均衡器vip用来提供服务
三台服务器都需要配置同一个vip,这个就比较麻烦了,容易造成ip冲突的问题。这个是dr模式的难点

dr模式下的响应流程
真实服务器直接响应给用户,不再通过负载均衡器。负载均衡器不是瓶颈
但负载均衡器、所有真实器都要配置vip,这个就比较麻烦了

dr模式下用户请求的响应流程
请求:用户 -> 负载均衡器lvs(237.49) -> 真实服务器集群
响应:真实服务器 -> 用户

lvs的nat模式
负载均衡服务器同时也是nat服务器
后端真实服务器以nat服务器为网关访问外网

nat模式下的响应流程
请求:用户 -> 负载均衡器lvs(237.49) -> 真实服务器集群
响应:真实服务器  -> 负载均衡调度器 -> 用户
负载均衡器的压力相对于dr模式会大点,但一般来说也能承担
后端真实服务器不用配置vip,不用担心ip冲突,这个是比较方便的

nat模式下
用户  -> 外网 -> 内网
负载均衡器是外网
真实服务器是内网
 
tun模式
隧道模式本人用得比较少,这边不做介绍

vip配置在lo虚拟网卡上

# 主机:192.168.121.132、192.168.121.132
# vip配置在lo虚拟网卡上
ifconfig lo:1 192.168.121.6 netmask 255.255.255.255 up
# 即使配置在lo本地环回网卡,也是会响应的,所以得抑制

# 配置arp抑制配置/etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2

# 加载命令
sysctl -p

# 负载均衡主机:192.168.121.134
ifconfig ens33:1 192.168.121.6 netmask 255.255.255.0 up
yum install ipvsadm -y
ipvsadm -A -t 192.168.121.6:80 -s rr
ipvsadm -a -t 192.168.121.6:80 -r 192.168.121.132:80 -g -w 1
ipvsadm -a -t 192.168.121.6:80 -r 192.168.121.133:80 -g -w 1

替换列表中所有空格

kubectl get pod -A -owide

sed 's/[ ][ ]*/ ,/g' pre_all_svc.txt > pre_all_svc.txt.bak