pigx环境准备
# 一、本地开发环境问题
# 1、设置开发参数
因为开发微服务,需要启动的服务很多,因此推荐电脑配置的内存在16G以上
在IDEA 的应用面板设置 VM options: -Xms128m -Xmx256m
# 2、组件剥离,应用组件化部署
本地只保留当前开放应用到的服务模块,其他业务模块部署云服务器
# 二、ZeroTier 组网
ZeroTier 根服务器记录请求路径来做类似于DNS的解析。 主要功能,就是可以把多个不同网络的设备连接在一起,用来就像在一个局域网下 如下图
Zerotier 定义了几个专业名词:
- PLANET 行星服务器,Zerotier 根服务器
- MOON 卫星服务器,用户自建的私有根服务器,起到代理加速的作用
- LEAF 网络客户端,就是每台连接到网络节点。
# 初始化ecs centos7环境
新服务器可以执行这个脚本
curl -O http://pigx.vip/os7init.sh
sh os7init.sh pig4cloud
2
# 本地和ecs安装客户端
安装在 120.25.241.30 yemey
curl -s https://install.zerotier.com | sudo bash
Download – ZeroTier (opens new window) ZeroTier Central管理 (opens new window)
1、在zerotier管理中心中添加网络,并设置网络段,得到网络id
2、将本地添加到网络id中
ipconfig #可以看到加入网络id后,分配到的ip
3、ecs加入网络id
zerotier-cli join 8850338390fd1c5b #上图创建网络生成的16位ID
zerotier-cli leave 8850338390fd1c5b #上图创建网络生成的16位ID
2
192.168.192.30 yemey ecs
192.168.192.208 gmzx-WorkPc
# 安装部署MOON 卫星
# 配置 moon 服务
cd /var/lib/zerotier-one/
zerotier-idtool initmoon identity.public > moon.json
vim moon.json #在里面配置上公网的ip和默认端口9993,在ecs里面要放行udp
zerotier-idtool genmoon moon.json #生成密钥,为 000000d0e69cfdd5.moon
# 此ID 非常重要对应 唯一服务ID (在 zerotier 后台也能看到)
grep id /var/lib/zerotier-one/moon.json | head -n 1
lsof -i:9993 #查看端口是否启动
2
3
4
5
6
7
8
9
10
11
在ecs上需要放行的默认9993端口 udp协议
# 客户端连接 moon
- 此处请按照此步骤,若只执行 orbit 可能加入失败
mkdir /var/lib/zerotier-one/moons.d
cp 000000d0e69cfdd5.moon moons.d/ #拷贝密钥文件到目录里面去
systemctl restart zerotier-one
grep id /var/lib/zerotier-one/moon.json | head -n 1
zerotier-cli orbit d0e69cfdd5 d0e69cfdd5 #zerotier-cli orbit id id mac电脑上运行 , win上直接重启电脑
zerotier-cli listpeers
2
3
4
5
6
7
8
9
10
11
不同系统下的 ZeroTier 目录位置
Windows: C:\ProgramData\ZeroTier\One
Macintosh: /Library/Application Support/ZeroTier/One (在 Terminal 中应为 /Library/Application\ Support/ZeroTier/One)
Linux: /var/lib/zerotier-one
FreeBSD/OpenBSD: /var/db/zerotier-one
2
3
4
windows安装目录: C:\Program Files (x86)\ZeroTier\One\moons.d C:\ProgramData\ZeroTier\One\moons.d需要重启电脑
centos安装目录: /var/lib/zerotier-one/ 需要 zerotier-cli orbit id id
参考文章: pig4cloud微服务敏捷之组网 (opens new window)
ZeroTier跟moon搭建国内内网穿透_dingjianjin的博客-CSDN博客 (opens new window)
# 三、K3S
K3s | 轻量级Kubernetes | 物联网及边缘计算K8S解决方案 | Rancher (opens new window)
# 选择k3s的三大理由
# 完美适配边缘环境
k3s是一个高可用的、经过CNCF认证的Kubernetes发行版,专为无人值守、资源受限、偏远地区或物联网设备内部的生产工作负载而设计。
# 简单且安全
k3s被打包成单个小于60MB的二进制文件,从而减少了运行安装、运行和自动更新生产Kubernetes集群所需的依赖性和步骤。
# 针对ARM进行优化
ARM64和ARMv7都支持二进制文件和多源镜像。k3s在小到树莓派或大到 AWS a1.4xlarge 32GiB服务器的环境中均能出色工作。
# 工作原理
# 安装
服务器 | ip | 配置 |
---|---|---|
k3s-server | 192.168.56.160 | 2核4G |
k3s-agent01 | 192.168.56.161 | 1核2G |
k3s-agent02 | 192.168.56.162 | 1核2G |
curl -sfL https://get.k3s.io | sh -
# Check for Ready node, takes maybe 30 seconds
k3s kubectl get node
sudo k3s server &
# Kubeconfig is written to /etc/rancher/k3s/k3s.yaml
sudo k3s kubectl get node
# On a different node run the below. NODE_TOKEN comes from /var/lib/rancher/k3s/server/node-token
# on your server
sudo k3s agent --server https://myserver:6443 --token ${NODE_TOKEN}
2
3
4
5
6
7
8
9
10
11