ADD file via upload

This commit is contained in:
zhouqunjie 2024-10-21 17:15:00 +08:00
parent 32103a1bfe
commit 60babd1921
1 changed files with 44 additions and 0 deletions

View File

@ -0,0 +1,44 @@
**PCM arm环境部署流程总结**
10月12日
现场环境为银河麒麟V10(GFB)
预先准备的安装文档依赖底层环境为X86架构的centos操作系统所有很多工作都需要重新整理
我们尝试在阿里云服务器 创建一台按需计费的arm64 ubuntu系统虚拟机来模拟现场环境
首先需要安装K8S集群参考sealos官方的文档可以提供arm版本的二进制工具所以沿用sealos进行二进制安装的方式
sealos安装集群要求原操作系统没有docker环境现场有三台机器但是有两台已安装docker并不能调整所以使用另外一台没有安装docker的机器进行实验
10月14日
mysql现场本地有安装包可以提供安装包但是后期现场直接提供了mysql环境实施过程中仅用脚本导入了数据即可结合此次经验可以考虑将数据库也放到容器环境中但是要做好pvc部分的处理
sealos启动k8s集群的过程中出现了can't get ip address of node kylin-pc,error:no default route found in "/proc/net/route" or "/proc/net/ipv6_route" node="kylin-pc"检查了一下服务器的名称为kyin-PC,这里查询后发现**k8s不支持机器名称为大写**调整虚拟机名称为kylin-pc之后此报错依旧存在此时经过网络搜索排查初步怀疑是机器的路由配置存在问题但问题没有解决
10月15日
重新调整思路开始排查docker 进程发现apiserver和cm和scheduler启动的日志报错都是提示
exec /pause:permission denied此时怀疑是镜像打包的系统版本和现场环境的版本差异导致镜像应用不兼容 找舒总帮忙协调找一个同样版本的系统镜像搭建模拟环境,然后给舒总看了相关的报错之后,舒总提示在麒麟的系统重有一个安全相关的设置要关闭,通过执行**sudo setstatus softmode -p关闭系统安全限制**后续验证其实就是将系统界面设置里面的防火墙关闭即可不然在镜像中会提示二进制无法执行。然后sealos安装集群正常往下走。
10月16日
发现sealos安装流程可以正常走完apiserver、cs和schedule但是在执行网络插件cilium安装的过程中出现报错"Envoy; Binary "cilium-enovy" cannot be executed" error="signal: aborted(core dumped)" subsys=envoy-manager此时咨询舒总推测是**应用版本和系统内核不兼容**这个问题在长沙办公室同版本镜像装在PC机器上可以重现出来。
然后尝试将k8s版本降低同时网络插件从cilium换成了calico中途还是会出现coredns容器起不来的情况中间过程尝试用gfb镜像在阿里云操作发现经常会死机所以放弃使用。
10月17日
联系舒总看是否可以联系到麒麟云的同事提供一个容器云的安装包来部署K8S集群中途发现需要使用rpm命令来安装工具包而现场环境不支持rpm命令所以放弃。
因为K8S集群还存在问题无法搭建所以中途考虑使用纯docker的方案也把容器暂时跑起来运行了。但是结合业务场景提供不了太多支持。
10月18日
长沙办公室GFB系统安装完成在上文提到的关闭防火墙操作执行之后1.25版本的集群安装没有出现问题。然后在这个系统中的所有素材打包发往现场。用这个包在安装之后发现所有的pod都能够启动状态为running网络插件中的calico-node的pod可用数一直为0查看calico-node一直报错kubelet Readiness probe failed calico/node is not ready: BIRD is not ready:Error querying BIRD:ubable to connect to BIRDv4 socket:dial unix /var/run/calico/bird.ctl: connection refused或者是二进制文件找不到总之是网络相关的配置有问题然后发现calico-server的镜像没有pod也没有起来以为是打的包有问题所以又重新怀疑到网络问题调整dns发现没有效果。
10月19日
找到阳哥帮忙来查看一下起初以为是因为calico没有识别到网卡需要在calico的cm中去配置网卡识别规则来重新识别改动cm之后没有效果所有其他pod的报错日志都是Error from server: no preferred addresses found; known addresses: []然后查看kubelet日志其中报错can't get ip address of node error:no default routes阳哥提醒再检查一下路由发现果然没有配置默认路由然后**配置了一个同网段不存在的地址作为默认网关**此时所有的pod都正常启动可以运行了。
后续pcm服务的部署过程相对比较顺利其中一个点事pcm-kubernetes的配置文件中服务名的配置需要和集群名称一一对应这个配置规则当时没有注意到后续需要把规则调整一个服务要可以代理多个集群**服务的名称不应该和集群名称相关联**。
至此所有的服务也业务部署流程基本完成PCM平台在arm64的麒麟系统中部署基本形成一套完整的素材。过程中遇到了很多问题总结起来可以提高效率的地方
**1. 在得知现场环境的版本之后,如果有条件第一时间搭建对应的模拟环境,方便后续的问题复现以及排查
2. 目前团队对于网络方面的储备略有不足,需要多加学习
3. 有些安装繁琐或者对系统版本要求多但是可以通过容器化的东西可以考虑转到容器中运行例如mysql等**