内网服务器加入k8s集群上——创建虚拟局域网

该博客介绍了如何在公网服务器上利用L2TP/IPSec服务创建虚拟局域网,将内网的闲置服务器接入,以解决K8S集群资源瓶颈问题。步骤包括在公网服务器上安装并配置L2TP/IPSec,创建用户账户,设置静态IP,并在内网服务器上安装客户端,连接虚拟局域网,最后实现内网服务器间的通信和自动重连功能。
摘要由CSDN通过智能技术生成

    随着k8s集群上部署的项目增多,服务器cpu、内存已经达到瓶颈,经常卡顿。正需要给集群扩容时发现公司有5台16核32G的闲置服务器,都可以上外网但是没有公网ip,都是NAT内网环境,http也被ISP屏蔽。
现有集群部署在腾讯云上有公网环境的,于是让master节点当网关和路由创建虚拟局域网(vpn)完成互联,让公司的服务器加入集群。
这是简化的拓扑结构

一、环境准备:三台主机都安装centos7,实验内核版本 3.10.0-1160.15.2.el7.x86_64,所需资源文件 https://download.csdn.net/download/qq_32166165/15354166

   1、所有主机关闭防火墙、更新yum源
    

systemctl stop firewalld
systemctl disable firewalld
yum update -y


   2、分别设置主机名,如果配置好网络后再设置主机名比较麻烦

 hostnamectl set-hostname master
 hostnamectl set-hostname node1
 hostnamectl set-hostname node2

二、在公网服务器上安装vpn服务


   1、master节点上个安装 l2tp、ipsec 服务,直接用脚本一键安装,脚本会询问PSK、用户名、密码
 

chmod +x l2tp.sh
./l2tp.sh
####安装成功后提示############
Server IP: 1.15.132.93
PSK      : xxxxx
Username : xxxxx
Password : xxxxx
############################

2、启动l2tp、ipsec,如果生产环境没关闭防火墙,需要放通 500、4500、1701端口的udp流量
 

systemctl start ipsec
systemctl start xl2tpd
systemctl enable ipsec xl2tpd

3、添加远程连接账户,添加两个node账户用于服务器加入虚拟局域网,一个admin账户用户远程管理内网服务器。

l2tp -a
####输入帐号和密码######
l2tp -l
#######显示账户#########
+-------------------------------------------+
|            Username |            Password |
+-------------------------------------------+
|               node1 |          xxxxxxxxxx |
|               node2 |          xxxxxxxxxx |
|               admin |          xxxxxxxxxx |
+-------------------------------------------+

4、给两个node账户分配固定IP,如果不分配固定ip,node每次加入虚拟局域网ip随机,不方便k8s集群管理
 

vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client    server    secret    IP addresses
node1    l2tpd    xxxxxxxxxx       192.168.18.10
node2    l2tpd    xxxxxxxxxx       192.168.18.11
admin    l2tpd    xxxxxxxxxx       *

二、内网服务器连接vpn,加入虚拟局域网


1、node1、node2上安装客户端

yum install -y epel-release
yum -y install xl2tpd ppp

2、修改配置文件、并启动xl2tpd,不同服务器使用不同帐号。

vi /etc/xl2tpd/xl2tpd.conf

#################完整内容##################
[lac myvpn]
name = node1
lns = 1.15.132.93
pppoptfile = /etc/ppp/peers/myvpn.xl2tpd
ppp debug = no
#######################################

vi /etc/ppp/peers/myvpn.xl2tpd

#################完整内容##################
remotename myvpn
user "node1"
password "node1的密码"
unit 0
debug
kdebug 1
mtu 1000
nobsdcomp
nodeflate
noaccomp
nopcomp
novj
#######################################

vi /etc/ipsec.secrets
##################完整内容#################
%any 1.15.132.93 : PSK “服务器PSK”
##########################################

vi /etc/ppp/options.xl2tpd

################添加内容###################
lcp-echo-interval 30
lcp-echo-failure 10
##########################################

systemctl start xl2tpd
systemctl enable xl2tpd

3、拨号连接

sh -c 'echo "c myvpn" > /var/run/xl2tpd/l2tp-control'

4、测试虚拟局域网是否连通
   ① ifconfig 查看网卡信息,查看是否连接成功,如果没有ppp网卡,使用 tailf /var/log/messages 查看失败原因
   


② 检测客户端和网关之间是否能ping通


③检测客户端之间是否互通,在 192.168.18.10 上 ping 192.168.18.11
 

客户端之间不能ping通,使用 tracroute 跟踪路由
 

原因是使用了默认网关,需要添加静态路由,指定 192.168.18.0/24 网段的网关为 192.168.18.1 ,同样的node节点需要访问master eth0 192.168.1.50 也需要添加静态路由

route add -net 192.168.18.0/24 gw 192.168.18.1
route add -host 192.168.1.50 gw 192.168.18.1

此时网络联通,虚拟局域网部署完成
 

④编写shell脚本实现开机自动连接、掉线重连

vi /root/reconnect.sh
#####################################################################
#!/bin/bash
IP=192.168.18.1
while true  
do  
    ping -c 5 -q $IP > /dev/null  
    if [ $? -ne 0 ]; then  
		sh -c 'echo "c myvpn" > /var/run/xl2tpd/l2tp-control'
        sleep 10
        route add -net 192.168.18.0/24 gw 192.168.18.1
		route add -host 192.168.1.50 gw 192.168.18.1 
    fi  
    sleep 30  
done  
####################################################################

vi /etc/rc.d/rc.local

#########################末尾添加####################################
sh /root/reconnect.sh &
#####################################################################
chmod +x /root/reconnect.sh
chmod +x /etc/rc.d/rc.local

reboot重启后,等待30秒左右,如果网络正常代表可以重连


如果不在同一网段需要远程管理node服务器,可使用admin账户加入虚拟局域网进行访问。



连接成功后就可以远程通过192.168.18.0/24 网段 管理公司内部服务器
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值