【K8S运维知识汇总】第5天5:交付dubbo-monitor到K8S集群

现在镜像构建出来了已经到harbor里了,发到k8s集群里了

在这里插入图片描述

发到k8s集群里,就需要资源配置清单,dubbo服务的提供者只需要一个deveploment类型的pod控制器
在这里插入图片描述

提供者最后可以在日志里看到dubbo服务端已经启动
在这里插入图片描述

交付了以后,zk有dubbo节点
在这里插入图片描述

需要一个zk的页面,这个页面就叫做监控者,方便查看哪些已经注册,哪些没注册
在这里插入图片描述

monitor就是个取数据用来展示,dubbo里的monitor有两个软件做的比较好dubbo-admin,dubbo-monitor
在这里插入图片描述

交付dubbo-monitor工具

在这里插入图片描述

在这里插入图片描述

下载一下
在这里插入图片描述

直接get到运维主机
在这里插入图片描述

直接解压
在这里插入图片描述

unzip到当前目录

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

先去修改dubbo_origin.properties
在这里插入图片描述
在这里插入图片描述

rpc接口是20880
在这里插入图片描述

保存退出后,可以发现dockerfile都准备好了
在这里插入图片描述

在这里插入图片描述

光用它的dockerfile还不行,还要给start.sh做一下改变
在这里插入图片描述

不改变,提供的dockerfile就起不来
在这里插入图片描述

对jvm进行了定义,这里用了2G,太丧心病狂了
在这里插入图片描述

按比例缩小一下
在这里插入图片描述

在这里插入图片描述

最重要的是在这里。这个就是sh,相当于entrypoint.sh,写了nohup就不能保持docker保持running状态
在这里插入图片描述

调整这句话,要在前台跑,exec下面所有内容删除
在这里插入图片描述

其实这条sed命令就可以搞定
在这里插入图片描述

在这里插入图片描述

为了规范一点,复制到/data/dockerfile下
在这里插入图片描述

在这里插入图片描述

把simple这个目录拷贝到/dubbo里
在这里插入图片描述

在这里插入图片描述

执行一个main方法
在这里插入图片描述

在这里插入图片描述

现在去build docker镜像
在这里插入图片描述

在这里插入图片描述

push到harbor仓库里,这个docker build和push是一对操作
在这里插入图片描述

这就是做好的docker-monitor的docker镜像
在这里插入图片描述

要用这个镜像,把docker发到k8s里,需要资源配置清单
在这里插入图片描述

做好一个镜像,准备资源配置清单,应用到k8s里
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

targetport是在docker里跑的端口,port是clusterip上跑的端口
在这里插入图片描述

问题是在ingress里
在这里插入图片描述

这两个port需要对上,port是service在clusterip上跑的端口,要和ingress上的port对上

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

先到浏览器看看
在这里插入图片描述

现在去交付dp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

infra里就起来了
在这里插入图片描述

看一下日志,重定向到file里,可能看不出来

在这里插入图片描述
在这里插入图片描述

ingress已经创建出来了,要访问页面,,就需要解析dns,不能随便解析,需要看ingress用的是什么域名
在这里插入图片描述

这样就出来了,解析的原理,指到vip,通过7层反向代理,给了ingress控制器,由ingress再去找service,service帮你找pod
在这里插入图片描述

链接的哪个zk,容器跑在了7.21这个主机上

在这里插入图片描述

dubbo-demo-service就是dubbo服务的提供者,provider2个

在这里插入图片描述

两个rpc接口
在这里插入图片描述

现在就把dubbo服务的monitor交付到k8s集群了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想在实体类中的serviceName字段中存储列表中的appName字段值,可以使用字符串类型的字段,并在字段上使用逗号等分隔符将不同的appName字段值分隔开。具体的实现步骤如下: 1. 在实体类中定义一个字符串类型的字段,用于存储多个appName字段值,如下所示: ``` private String serviceName; ``` 2. 在保存实体对象之前,遍历列表中的每个元素,将appName字段值拼接成一个字符串,并赋值给serviceName字段,如下所示: ``` List<Map<String, String>> list = // 获取包含appName字段的列表 StringBuilder sb = new StringBuilder(); for (Map<String, String> map : list) { String appName = map.get("appName"); sb.append(appName).append(","); } String serviceNames = sb.substring(0, sb.length() - 1); YourEntity entity = new YourEntity(); entity.setServiceName(serviceNames); // 保存实体对象到数据库中 ``` 在这个例子中,我们首先获取包含appName字段的列表,然后遍历列表中的每个元素,将它们的appName字段值拼接成一个字符串,最后将这个字符串赋值给实体对象的serviceName字段。 3. 在获取实体对象时,将serviceName字段的值分隔开,并将每个appName字段值存储到相应的字段中,如下所示: ``` YourEntity entity = // 从数据库中获取实体对象 String[] serviceNames = entity.getServiceName().split(","); List<String> appNames = Arrays.asList(serviceNames); ``` 在这个例子中,我们首先从数据库中获取实体对象,然后使用split()方法将serviceName字段的值按照逗号分隔开,得到一个字符串数组。最后,我们可以将数组中的每个元素赋值给一个列表,其中每个元素为一个appName字段值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值