说明lafyun.com是基于开源云开发平台laf.js部署的云开发平台公开运行版。lafyun.com内测阶段是基于docker-compose部署的单机版。现在平台正式开放公测,集群版本需要基于kubernetes部署。环境准备Kubernetes的部署采用sealos一键部署。系统选择了centos7.9。最初AliyunLinux3.x反复测试,Kubernetes性能极不稳定。系统经常会因为OOM而崩溃或掉线,尤其是当Pod数量超过一百时。centos7.9非常稳定。kubernetes选择了v1.23.2,这个版本默认不支持docker,所以容器运行的时候使用containerd。安装sealos#installsealoswget-chttps://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos&&chmod+xsealos&&mvsealos/usr/bin#下载sealoskubenetespackagewget-chttps://sealyun.oss-cn-beijing.aliyuncs.com/28bdc92bd542d599b6ef021b8c2d7886-v1.23.2/kube1.23.2.tar.gz部署kubernetes,将以下节点的IP替换成服务器的内网IP,保证master的IP和节点可以相互通信连接后:#init&runtheclustersealosinit--userroot\--master172.17.xx.xx\--node172.17.xx.yy\--node172.17.xx.zz\--pkg-url/root/kube1.23.2.tar.gz\--versionv1.23.2\--podcidr10.160.0.0/12查看节点的运行状态,在master节点上运行:kubectlgetnode可以选择makethemasteraworkingnode:#markthemasterworkedasworkernodekubectltaintnodeYOUR_MASTER_NODE_NAMEnode-role.kubernetes.io/master-deploylaf.js直接参考laf.js仓库下/deploy/kubernetes目录下的配置开始。常见问题1.增加kubernetes默认单节点110个Pod的默认限制。在每个节点上执行以下操作:-编辑`/var/lib/kubelet/config.yml`并修改`maxPods`字段;-执行`systemctlrestartkubelet`使其生效;2.去掉api-server默认的qps限制,否则当Pod数量超过200时,api-server可能卡顿或响应超时,导致集群不可用:-编辑`/var/lib/kubelet/config.yml`,将`kubeAPIQPS`字段修改为`50`或更大的数字;-将`kubeAPIBurst`字段修改为`100`或更大的数字;-执行`systemctlrestartkubelet`使其生效;3、阿里云ECSDNS服务地址与默认Pod网段冲突,导致Pod无法访问外网:因为Sealos默认Pod网段为100.164.x.x/20,与阿里云默认冲突DNS服务地址100.x.x.x,因此无法访问外网域名,需要修改Pod的网段。所以我们在上面执行sealosinit的时候添加了--podcidr10.160.0.0/12选项,配置Pod网段为10.160.0.0/12,已经解决了这个问题。如果要修改Pod网段,请避免使用172.16.0.0/12网段,会和阿里云ECS内部网段冲突。作者Maslow(wangfugen@126.com),laf.js的作者。lafyun.com是一个开源的云开发平台,前端变成全栈,不需要服务器。
