Sanfor实习工作记录-6、7月
6月12
工作内容:熟悉hydra项目代码。
遇到的问题:代码在本机环境运行不起来,需要在linux的gcc环境进行编译。
疑惑:正常的开发流程的环境是远程连接虚拟机的环境进行开发的吗,那是怎么debug的?之前自己做小项目都是本地开发完再部署环境。
收获:postman简单在学习了一下,了解了全局变量和后置引言。
6月13
工作内容:postman接口测试,更新API文档。
遇到的问题:mango的db_name和coll_name信息不清楚。(已解决)
6月14
工作内容: 使用helm下载,nebula-operator。
遇到的问题:coredns重复安装,导致服务域名无法解析。(已解决)
收获:恶补了计网的知识,DNS-应用层-解析域名、TCP和HTTP。
托管云全链路-离线及线上环境Nebula Graph集群部署文档
6月15
工作内容:使用nebula-operator部署nebula集群。
尝试解决办法1:将3个组件包括metad和graphd设置为3结果还是无法解决。
尝试解决办法2:看到这篇博客nebula-operator安装部署的集群使用java-client数据写入一段时间就挂掉 - 提问题·用户问答 / 使用问题 - NebulaGraph 社区 (nebula-graph.com.cn),扩大容器的cpu和存储为原来的两倍结果仍然不行。
目前做法:把各个组件的replicas设置为1了。
收获:k8s需要了解的概念很多,大概了解了kubectl常见的命令,里面很多yaml文件的配置,不了解每个配置项的很容易出问题。
6月16
工作内容:Nebula Console还要配置go的环境所以使用NebulaGraph Studio可视化工具,在nebula起pod,连接 Nebula Graph 集群。
遇到的问题:
参考:连接 Nebula Graph 数据库 - Nebula Graph Database 手册 (nebula-graph.com.cn)
第一步填充 deployment/helm/values.yaml 下的 persistent.storageClassName,如果没有 PV 需要提前创建。
第二步Studio安装位置:/root/tanzu/nebula-studio-3.4.2/
第三步 使用helm进行安装。
问题 :studio连接不上数据库,请求错误: 500 Internal Server Error(已解决)
Graph集群向外暴露的端口
输入信息后进行连接,连接不上。
pod的日志信息(看不出来什么问题)
kubectl exec -it podname – sh
重新启动studio的pod解决问题:
6月19日
工作内容:使用kubectl 部署三个nebula节点
Argo CD 入门教程 – 云原生实验室 - Kubernetes(https://icloudnative.io/posts/getting-started-with-argocd/)问题:将replicas设置为3,有pod无法启动
在各个节点的运行状况:
查看退出状态码为139:
6月20日
工作内容:调研部署3个节点出现的pod状态异常的bug。
集群yaml文件目录:/root/gandalf/apps_v1alpha1_nebulacluster.yaml
当一个 pod 的退出状态码为 139 时,通常表示该 pod 是由于收到了 SIGSEGV 信号而崩溃的。SIGSEGV 信号通常是由于访问了无效的内存地址或者试图执行未授权的操作而引起的。
一文详解云上自动化部署集群管理工具 Nebula Operator (nebula-graph.com.cn)
GitHub - vesoft-inc/nebula-operator: Operation utilities for Nebula Graph
github文档里nebula镜像的版本为3.1.0,修改镜像版本
6月21日
工作内容:继续查阅资料解决pod CrashLoopBackOff的解决办法。
https://juejin.cn/post/6997662552880611341再次排查operator安装是否正确:前置依赖没有问题
同样有问题
6月25日
继续解决bug
https://discuss.nebula-graph.com.cn/t/topic/2660
6月27日
继续解决bug
学习k8s的satatefulset configmap & secret ingress的相关概念
简单操作了解nebula的图数据库的基本语法分布式图数据库 NebulaGraph 的 Index 实践 (nebula-graph.com.cn)下面是nebula的社区,star很多,很活跃。
‘crashLoopBackOff’ 的搜索结果 - NebulaGraph 社区 (nebula-graph.com.cn)
在nebula社区做的提问。
k8s使用nebula operator离线安装nebula graph集群时,storaged和metad两个组件创建多个副本之后,pod会一直出现crashLoopBackOff情况,pod退出状态码为139。 - 提问题·用户问答 / 使用问题 - NebulaGraph 社区 (nebula-graph.com.cn)
6月28日
等待社区回复,完善简历微服务项目,用jmeter对读写分离后的redis做压力测试,学习慢sql优化准备添加到项目当中。
6月29日
工作内容:解决了bug,问题是nfs重复,以后创建集群的时候,先创建pvc,k8s是会驱动去创建pv的。
总算解决掉实习项目的bug了,k8s学了很多,其实和springcloud很像的还是,只不过容器层面确实觉得k8s很方便,后面打算将自己的小项目用k8s来管理,试着自己部署一下(未完成)。
图数据库学习路径 - siwei.io
创建完pvc,再去创建集群。
pvc的模板代码:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-08
namespace: nebula
spec:
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 4Gi
apps_v1alpha1_nebulacluster.yaml
模板代码:
apiVersion: apps.nebula-graph.io/v1alpha1
kind: NebulaCluster
metadata:
name: nebula
namespace: nebula
spec:
graphd:
resources:
requests:
cpu: “500m”
memory: “500Mi”
limits:
cpu: “1”
memory: “4Gi”
replicas: 1
image: vesoft/nebula-graphd
version: v3.2.1
service:
type: NodePort
externalTrafficPolicy: Local
logVolumeClaim:
resources:
requests:
storage: 2Gi
storageClassName: nfs-client
metad:
resources:
requests:
cpu: “500m”
memory: “500Mi”
limits:
cpu: “1”
memory: “4Gi”
replicas: 1
image: vesoft/nebula-metad
version: v3.2.1
dataVolumeClaim:
resources:
requests:
storage: 2Gi
storageClassName: nfs-client
logVolumeClaim:
resources:
requests:
storage: 2Gi
storageClassName: nfs-client
storaged:
resources:
requests:
cpu: “500m”
memory: “500Mi”
limits:
cpu: “1”
memory: “4Gi”
replicas: 3
image: vesoft/nebula-storaged
version: v3.2.1
dataVolumeClaim:
resources:
requests:
storage: 2Gi
storageClassName: nfs-client
logVolumeClaim:
resources:
requests:
storage: 2Gi
storageClassName: nfs-client
reference:
name: statefulsets.apps
version: v1
schedulerName: default-scheduler
imagePullPolicy: Always
7月3
工作内容:熟悉ArgoCD配置流程,分析如何编写脚本部署到argocd上。
Argo CD 入门教程 – 云原生实验室 - Kubernetes https://www.bilibili.com/video/BV1uk4y1H7xs/?p=5&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=b16bc6370b4580d541ef490d09f1b6aa
新版 helm 模板编写指南 个人理解:先得将部署脚本提交到某个分支,或者直接写脚本生成nebula的helm chat的镜像,再在Argo当中配置helm chat的信息部署集群到某个k8s集群当中,问题首先是如何配置helm chat的镜像。
7月4
工作内容:了解helm chart制作流程。
自己的项目:nacos config读取不到nacos的配置信息。(已经解决)
组件版本问题:
CICD流程主要由千流平台+argocd协作完成;整体实现逻辑如下:
1、用户提交代码到git仓库
2、【千流平台】监听git仓库变更,触发ci流程(需要配置)
3、【千流平台】上传helm包到制品库(需要实现)
4、【argocd】监听helm制品库(需要配置)
5、【argocd】自动触发部署k8s
大概原理
1、【argocd】监听制品库中helm的变更,发生变更能够自动根据helm部署到k8s
2、所以【流水线】需要实现变更helm配置,并发布到制品库;(helm的变更主要是:docker镜像版本的变更)
3、所以【流水线】还需要实现docker镜像的构建,并针对每次构建产生不同版本的docker镜像
资源:
https://10.109.66.164:31080/ UGJ4mk1Hp3xSsftv
http://10.65.232.14/index.php/category/rongqijishu/
Helm Chart编写流程:
7月5
工作内容:继续了解helm chart的配置文件信息。
在 K8S 上使用 NFS 作为存储后端 http://10.65.232.14/index.php/2021/10/14/12878/
7月6
继续了解helm chart的配置文件信息。
主要就是deployment和svc的配置,然后value.yaml属于要改的属性文件。
1 | Synced To 1.0.0-feature-add-metrics-20230619-10 (1.0.0-feature-add-metrics-20230619-10) |
7月7日
工作内容:继续熟悉helm chart的配置文件信息。
7月10日
工作内容:将要配置的信息和资源都整理一下,写个文档。
7月11日
尝试一下直接使用nebula官网的helm chart是否可以配置集群。
sentinel的流量控制和熔断降级,以及和openFeign的整合已经成功。
seata分布式事务在学还没学完……
3.0.2 启动参数 - 千流知识库 - Sangfor文档管理
7月12日
系统的学习一下helm
Seata-AT模式
7月13-7月20日
系统的学习了一下k8s,将项目进行完善(在sso微信扫码登陆的基础上完善了qq扫码登陆的功能,shardingJDBC完善了一主二从的数据库搭建结构)
编写helm chart将项目进行完善