- 博客(96)
- 收藏
- 关注
原创 【13】制作镜像以及重启实例
是 kubeadm 在初始化集群时创建的管理员配置文件,它包含了访问集群所需的所有信息:API server 的地址和端口,集群的证书信息,用户认证信息(证书、token等),将admin.conf放置到.kube里面。用上面的两个镜像重新创建实例之后,进到master节点,此时发现还是原来的集群在运行,可能是镜像保存了之前的状态。在master节点上成功部署了k8s的控制平面,在node节点上部署了worker节点的配置,不知道打包镜像重启之后集群的状态是什么样的。控制节点ip和控制节点名称。
2025-01-12 22:05:42
967
原创 【3】安装cyclictest和iperf
iperf3 是 iperf 的第三个版本,它支持多种网络性能测试,如带宽、延迟、丢包率等。这里我要测试两台设备之间的网络情况,所以我在两台计算机上都安装了iperf,但是一台作为host一台作为server。但是这个程序会一直运行,直到你手动中断程序,而且每秒生成一行输出也很烦人,所以可以选择把结果输出到一个文档里。选中node1作为server,这会启动 iperf 服务器模式,监听默认端口(5201)等待客户端连接。可以看到四核CPU每一个核的时延表现。这两台机器是可以互相ping通的。
2025-01-05 13:36:41
301
原创 [单master节点k8s部署]44.全链路监控(三)
这里还有对于pinpoint的jar包的操作在CMD中。这里写了eureka的服务产生的信息在pinpointUI中展示的名字为eureka.ms。此时可以看到pinpoint可以识别出所有的微服务。可以看到对于eureka服务,这个Dockerfile里面有写COPY pinpoint /pinpoint,而且还暴露了8888端口。所以可以看出来,通过编译这个dockerfile,会将pinpoint和微服务集成到一个镜像里面。图中的绿点是请求的次数,此时 点击inspector,可以看到具体的数据。
2024-12-30 15:11:02
272
原创 [单master节点k8s部署]43.全链路监控(二)
我最经常使用的加速网站是https://dockerpull.com。但是这次compose的时候发现很多镜像拉取失败,我访问这个网站,发现他的域名已经更改为https://cjie.eu.org。现在需要来监控之前安装的购物网站的微服务。复习一下之前的项目,有eureka微服务,gateway微服务,以及product,order,portal和stock四个微服务。同时访问portal.ctnrs.com,可以看到之前部署的购物网站。这里安装的是pinpoint-docker,可以从。
2024-12-29 16:00:22
911
原创 【形式化验证latency】4.运行及结果分析
解读完代码之后,需要进行运行分析,来验证latency是否符合要求。通信方式如同步或者异步也会产生影响:在 integration.software_distributed 的总线中,数据可能因为队列等待而延迟。
2024-12-27 15:17:46
736
原创 【形式化验证latency】3.AADL项目结构及语法(二)
从生成的diagram可以看到,这里定义了两种处理器,分别是generic_cpu和ima_cpu,generic_cpu 是一个非常抽象的处理器类型,定义了它的特性(需要总线连接),但没有进一步定义其内部结构或特定行为。这里需要用到funtional.aadl的内容,回忆一下,functional.aadl首先定义了三个抽象的对象,sensing,processing和actuating,然后定义了一个系统integration,并实例化了它。现在开始解释integration.aadl的代码。
2024-12-27 10:39:07
780
原创 【形式化验证latency】2.AADL项目结构及语法(一)
接着上一篇的内容,继续分析latency-case-study的项目结构以及语法。AADL定义了12种组件类型,分别是process(进程),thread group(进程组),thread(线程),data(数据),abstract(抽象)。硬件有:processor,memory,bus,device,virtual processor,virtual bus。系统组件有: system。
2024-12-26 21:40:19
747
原创 【形式化验证latency】1.安装OSATE
AADL(架构分析与设计语言)是一种用于嵌入式系统建模、分析和设计的标准化语言,特别适用于实时系统和安全关键系统的建模。AADL 提供了一种方式来描述系统的架构,包括硬件、软件组件、线程、进程、数据通信等。其设计目的是帮助开发人员对系统架构进行详细建模,以便在系统开发的早期阶段进行分析,预测性能、可靠性和可调度性等方面的行为。使用 AADL 进行建模和分析,需要一个支持 AADL 的开发环境。最常用的工具是。
2024-12-26 18:00:55
720
原创 [cloudsim] 安装cloudsim环境
CloudSim 是一个代码包,包含了一系列用于模拟云计算环境的类和接口。这个框架提供了工具和 API,使得用户能够创建和管理虚拟机、数据中心和用户任务等。用户可以下载 CloudSim 的源代码或二进制包,并在 Java 开发环境中使用它来进行云计算的模拟和研究。
2024-12-26 12:05:32
1071
原创 【2】ubuntu安装sysbench
在【1】中安装的unixbench是对|CPU的综合评分,没有对于内存的测试。经过一番调研,发现除了unixbench,还有Geekbench/sysbench和ubench的测试基准。对于云平台的性能基准测试见。
2024-12-23 14:57:48
1119
原创 【1】ubuntu安装uinxbench
即便像文件复制和脚本执行这样的测试,它们的结果也会受到 CPU 性能的显著影响(例如,文件复制需要 CPU 协调内存和磁盘操作)。shell脚本测试用于衡量在一分钟内,一个进程可以启动并停止shell脚本的次数,通常会测试1,2, 3, 4, 8 个shell脚本的共同拷贝,shell脚本是一套转化数据文件的脚本。这项测试用于典型的比较大量的操作系统进程创建操作。可以看到这里说没有安装3dinfo ,这个使用来进行图形化界面测试的,由于我们已经禁止了图形化测试,所以即使没有这个插件也是可以正常运行的。
2024-12-22 21:28:30
1142
原创 【deathStarBench】2.安装k8s集群
它不仅管理服务的启动和停止,还管理资源分配和隔离。使用 systemd 作为 cgroup 驱动程序可以将 Docker 的资源管理与系统的其他部分统一起来,避免资源管理和隔离方面的不一致。通过下面的命令修改驱动,并加入docker的镜像加速器,这里都是一些国内的公开镜像源和私有的阿里云镜像(有些可能不能使用了)。查看docker状态,如果是active并没有报错,则docker安装成功。由于修改了docker配置文件,所以要加载配置并重启docker。查看当前docker的驱动,发现为cgroups。
2024-10-21 20:18:06
500
原创 [单master节点k8s部署]42.全链路监控(一)
微服务架构将应用拆分成多个独立的服务,系统整体变得更加复杂。全链路监控可以帮助开发和运维团队理解和管理这种复杂性,追踪请求在不同服务之间的流转过程。通过全链路监控,可以识别整个调用链中的性能瓶颈。它能够显示每个服务的响应时间,帮助定位那些服务或操作导致了延迟,从而有针对性的进行优化。同时,全链路监控可以帮助快速定位故障源,并且帮助分析微服务之间的复杂依赖关系。通过监控各个服务的资源使用情况,可以更好地进行容量规划和资源分配,确保系统的高效运行。
2024-10-21 14:33:47
582
原创 [k8s理论知识]6.k8s调度器
为了高效的完成调度过程,调度器必须要频繁的查询集群的状态信息,如节点的资源使用情况,节标签、污点等等。informer Path的主要目的就是启动一系列的informer,用来监听etcd中的pod、node、service等与调度相关的API对象的变化,如果有调度需求,就将这个pod加入调度队列,这个调度队列是一个优先级队列。这包括两个步骤,第一,从所有集群的节点中,根据调度算法挑选出所有可以运行该pod的节点,第二,从第一步的结果中,根据调度算法挑选一个最符合条件的pod作为最终结果。
2024-10-20 14:51:57
787
原创 [k8s理论知识]5.docker基础(四)Dockerfile构建
查看95158的命名空间和容器60170的命名空间,发现是一样的。已知一个容器的pid 1为主进程,在我们的例子中是app.y,而docker exec实际上是把bin/bash进程放入了和容器相同的命名空间里面,所以当我们查看进程的时候,会有一个进程编号为17的进程。查看该PID的namespace,可以看到,一个进程的每种 Linux Namespace,都在它对应的 /proc/[进程号]/ns 下有一个对应的虚拟文件,并且链接到一个真实的 Namespace 文件上。可以看到容器进程的PID。
2024-10-18 21:28:05
1052
原创 [k8s理论知识]4.docker基础(三)镜像分层
上一节内容讲了Docker的文件系统的挂载和隔离,也讲了Docker镜像打包了一部分的操作系统,既操作系统的文件系统和配置文件。但是容器在宿主机上运行的时候只能使用宿主机内核,这也带来了一定的局限性,就是高版本的docker镜像无法运行在低版本的宿主机上。
2024-10-18 14:17:01
794
原创 [k8s理论知识]3.docker基础(二)隔离技术
容器其实是一种沙盒技术,其核心是通过约束和修改进程的动态表现,为其创建一个边界。这个边界确保了应用与应用之间不会相互干扰,同时可以方便在不同的环境中迁移,这是PaaS最理想的状态。程序是代码的可执行镜像,通常以二进制文件的形式存储在磁盘上。但是当程序被执行时,操作系统会将程序的数据加载到内存中,读取计算指令并指示CPU执行。CPU与内存协作进行计算,使用寄存器存放数值,内存堆栈保存执行的命令和变量,此外,程序还可能打开文件和调用IO设备。所有这些状态信息和数据信息的集合,构成了进程的动态表现。
2024-10-18 11:16:07
1322
原创 [k8s理论知识]2.docker基础(一)
PaaS项目被广泛接受的原因是他们提供了一种应用托管的能力。在PaaS出现之前,虚拟机和云计算已经是很普遍的技术和服务。主流做法是租用一批AWS或openstack的虚拟机,然后像管理物理服务器一样,通过脚本或手工方式在这些虚拟机上部署应用。然而,这种部署方式通常会遇到云端虚拟机和本地环境不一致的问题,导致部署过程复杂且容易出错。因此,当时云计算服务的核心竞争在于谁能更好的模拟本地服务器环境,提供更好的“上云”体验。PaaS项目的出现解决了这一问题。
2024-10-17 23:27:32
1082
原创 [单master节点k8s部署]41.部署springcloud项目
这个springcloud项目将采用maven进行打包部署。然后将该项目上传到k8s集群的master节点,并解压。将我们安装数据库的地址写入文件中:spring:eureka:instance:client:将这里的数据库信息修改为之前设置的信息。其实在每一个resource目录下有三个文件,分别是:application.yaml,application-fat.yaml和application-dev.yaml。
2024-10-16 00:05:15
1052
原创 [单master节点k8s部署]40.安装harbor
harbor 是私有镜像仓库,用来存储和分发镜像的。docker 还有一个官方的镜像仓库 docker hub,免费用户只能简单的使用,创建一个私有镜像仓库,存储镜像,付费用户才可以拥有更多权限,默认 docker pull 拉取镜像就是从 docker hub 上拉取,速度极慢, 不利于生产环境使用。部署harbor过程环境部署需要一台虚拟机或是物理机,安装docker。签发证书创建目录/data/ssl,然后在该目录下进行下列操作。生成CA证书。
2024-10-13 22:48:22
1249
原创 [单master节点k8s部署]39.安装mysql
通过下面的命令安装mysql。首先下载mysql的rpm包。这个包的作用是将 MySQL 的官方 YUM 仓库添加到系统中,随后通过yum install来安装mysql。设置权限,将的所有者和组设置为mysql确保 MySQL 服务可以读取和写入数据。随后进行mysql的初始化。执行以下命令。有的教程可能会叫你执行mysql --initialize,但是这条语句是mySQL5.7中的功能,我使用的是5.6,这条命令不被支持。
2024-10-13 21:27:39
597
原创 [单master节点k8s部署]37.微服务(一)springCloud 微服务
微服务架构的一个重要特点是,它与开发中使用的具体或无关。每个微服务都可以使用最适合其功能需求的语言或技术来实现。例如,一个微服务可以用Java编写,另一个微服务可以用Python、Go、Node.js等编写。微服务架构允许这种灵活性,因为每个服务都是独立的,负责处理特定的业务功能,且每个服务都有独立的开发、部署和执行环境。微服务之间通常需要通过某种通信机制进行交互,RESTful API是最常见的选择之一。
2024-10-12 16:52:29
861
原创 [单master节点k8s部署]36.ingress 配置https(三)
目前我们的tomcat服务在浏览器上通过http来访问。为了提升安全性,我们将配置TLS secret 证书,从而可以进行https访问。一对TLS密钥包括一个证书(trs.crt)和一个私钥,证书是公钥证书,用于加密数据并标识服务器,而服务器的私钥,用于解密通过公钥加密的数据,并用于签署服务器发送给客户端的数据。当我想要配置我的ingress 资源从而支持https访问时,Ingress Controller 需要一个证书和私钥来处理 TLS 握手和加密通信。
2024-10-12 09:59:11
549
原创 [单master节点k8s部署]35.ingress 反向代理(二)
查看ingress,发现他成功识别到了service tomcat-svc35。得到一个ingress资源,host为tomcat.lucky.com。config map失败。
2024-10-07 23:56:32
363
原创 [运维]7.ingress controller的API组迁移带来的权限问题
部署ingress controller pod后发现错误。这里是说没法列出networking.k8s.io 里的资源,也无法在discovery.k8s.io里的endpoints资源。原有的rbac设置,可以看到这里ClusterRole设置了apiGroups为extension。但是最新的ingress controller已经从extension的api资源组移动到了networking.k8s.io 的API资源组,所以这里的权限已经不再适用。
2024-10-07 23:22:40
326
原创 [运维]6.github 本地powershell登录及设置ssh连接/版本回退
当我在本地的git hub 进行修改后,需要推送到远程github仓库。当我运行了git add . git commit -m "ingress-controller image" 以后,运行git push origin main,发现由于网络原因无法连接到远程github仓库。此时开始设置ssh连接。-t是指定密钥类型的参数。在这里,-t rsa表示生成类型的密钥。- b表示输出的密钥长度为4096位,-C是为密钥添加注释的参数。是我为这个密钥添加的注释。
2024-10-07 22:47:05
816
原创 [运维]5.镜像本地存在但仍然从网络拉取的问题
发现这个问题和K8S的工作方式有关,Kubernetes 默认使用。并将deployment中的镜像名称改为以上名称,则pod创建成功。,Kubernetes 实际上会自动补全为。作为镜像仓库的前缀。
2024-10-07 20:43:51
863
原创 [单master节点k8s部署]34.ingress 反向代理(一)
ingress是k8s中的标准API资源,作用是定义外部流量如何进入集群,并根据核心路由规则将流量转发到集群内的服务。ingress和Istio工作栈中的virtual service都是基于service之上,更细致准确的一种流量规则。每一个pod对应的service是四层代理,也就是说处于通信网络结构的第四层(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)。
2024-10-07 13:26:38
1437
原创 master节点k8s部署]33.ceph分布式存储(四)
这里的元数据与cephFS的元数据不同,cephFS的元数据是固定的、结构化的,适用于文件系统操作。可以说,RBD是在RADOS上提供了接口技术,从而让RADOS对象看起来像一个独立的存储设备,符合RBD的全称 RADOS block device,变成了一个单独的块。cephFS也是用rbd(RADOS Block Device)存储,存储在ceph的数据池中,但是cephFS还有一个元数据池metadata,用来维护cephFS的目录结构,这些元数据也是以。(对象存储守护进程)。
2024-10-06 21:47:45
937
原创 [单master节点k8s部署]32.ceph分布式存储(三)
ceph rbd 块存储的特点,ceph rbd 块存储能在同一个 node 上跨 pod 以 ReadWriteOnce 共享挂载,ceph rbd 块存储能在同一个 node 上同一个 pod 多个容器中以 ReadWriteOnce 共享挂载,ceph rbd 块存储不能跨 node 以 ReadWriteOnce 共享挂载。然后在ceph集群中创建一个目录,并把ceph的根目录挂载到这个目录。其余的pvc创建和之前类似,通过创建在不同节点上的pod,可以看到不同node上的pod可以共享一个pv。
2024-10-06 20:42:54
1066
原创 [单master节点k8s部署]31.ceph分布式存储(二)
每个数据池可以用于存储不同类型的数据,以满足不同的需求。kubernetes 要想使用 ceph,需要在 k8s 的每个 node 节点安装 ceph-common,把 ceph节点上的 ceph.repo 文件拷贝到 k8s 各个节点/etc/yum.repos.d/目录下,然后在 k8s 的各个节点 yum install ceph-common -y。事实上master节点不是必须的,可以在ceph集群的任意节点安装ceph CLI,但为了方便管理和保持隔离,通常会保留一个专门的管理节点。
2024-10-06 13:55:06
895
原创 [单master节点k8s部署]29.Istio流量管理(五)
测试istio熔断管理。采用httpbin镜像和fortio镜像,其中httpbin作为服务端,fortio是请求端。这两个的配置yaml文件都在istio的samples/httpbin目录下,fortio的配置文件在samples-client目录下。启动httpbin和fortio的pod,fortio为用户提供了一个UI界面,但是fortio的服务默认是一个ClusterIP服务,因此需要修改,通过kubectl edit svc fortio来完成。
2024-10-05 22:11:04
836
原创 [单master节点k8s部署]28.Istio流量管理(四)
可以看到上面的service是TCP协议的,而这里的gateway是HTTP协议的。实际上,virtualService处理的是来自service的流量,因此这里的host名称应该和service名称对应,所以这里的host名称是:canary-svc34.default.svc.cluster.local。从内容上讲除了headers匹配,还有uri匹配,queryParams 匹配(参数匹配)、方法匹配(GET/POST),从规则上讲,有prefix匹配、exact匹配和regex匹配(正则匹配)。
2024-10-05 01:12:33
336
原创 [运维]4.bookinfo无法部署的问题
修改istio/samples/bookinfo/plateform/kube路径下的bookinfo.yaml文件,将里面的deployment的版本改为对应的镜像版本,从而成功部署。由于所有的镜像(review三个、details、ratings、productpage)都是1.19.1,后尝试重新下载镜像也不行。但是bookinfo的ratings和productpage无法运行,部署后显示crashLoopBackOff。
2024-10-04 17:09:10
452
原创 [k8s理论知识]1.runc容器管理工具
是一个 CLI 工具,用于根据 OCI 规范创建和运行容器。它是容器底层的核心组件,负责直接与 Linux 内核的 cgroups 和 namespaces 交互,以实现容器的隔离和资源限制。在容器生态系统中,runc是容器运行时containerd和dockerd的底层工具,被更高级的工具(docker和container)使用。runc是一个用来启动和管理容器的轻量级工具,它是开放容器项目(Open Container Initiative, OCI)的标准实现。
2024-10-03 13:08:11
609
原创 [运维]3.containerd无法使用fluentd的问题
一开始看的教程是使用dockerd的运行时配置fluentd,但是我使用的是containerd的容器运行时,这两个运行时存储日志的位置不一样,导致fluentd一开始什么日志都收集不到。如下是我fluentd的挂载配置,其中还包括一个configMap的挂载,这个configMap是帮助fluentd解析containerd日志的。containerd的挂载位置是/var/log/pods和/var/log/containers。修改fluentd的deployment文件,更改Mounts挂载的位置。
2024-10-03 13:01:30
429
1
原创 [运维]2.elasticsearch-svc连接问题
所以解决办法是,在kibana的deployment文件里增加下面环境变量(一开始只有ELASTICSEARCH_URL)定位到问题可能是kibana的默认elasticsearch服务的配置是elasticsearch:9200。这里说kibana试图连接到elasticsearch:9200。可以看到默认的hosts就是 [ "http://elasticsearch:9200" ]。发现在kibana内部可以成功解析elasticsearch-svc。
2024-10-02 22:15:26
456
原创 [k8s运维]1.执行yum install yum-uitls 发生错误
执行yum install yum-utils的时候,无法访问centos官网从而发生错误,可以把centos源转换为国内镜像源。首先,备份当前的 CentOS 源配置文件,以便在需要时可以恢复。现在可以再次尝试安装。
2024-09-29 10:52:50
201
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人