自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 c语言结构体和共用体

通过struct来定义 #include<stdio.h> void main() {int age;int year;int month;int day;} # 第二种,边定义 #include<stdio.h> void main() {int age;int year;int month;int day;} s1,s2;} # 第三种(无结构体名,只能定义一次) #include<stdio.h> void main() {struct {int age;

2025-03-18 14:14:26 349

原创 c语言指针

先定义后使用存储类型 数据类型 *指针变量名先有什么就是什么类型的先有指针的话,指针指向的地址的变量跟指针变量的数据类型一致先有变量的话,指针类型与变量保持一致*是一个说明符,不能被省略指针变量定义后,变量的值不确定,应用前必须先赋值# 整型指针float *q,int *p;int a = 5;p=&a;# p指向了a,p就是存储的a的地址*p=&a # 是错误写法,上面是正确写法p=2000 # 也是错误的,存储的是常量,指针变量存储是地址的变量指向一维数组元素的指针。

2025-03-13 14:47:44 902

原创 C语言函数

函数类型(也就是函数返回值的类型,默认是int类型)函数的参数的话,也要定义,数据类型当返回值的类型与函数的类型不一致时,以函数类型为准,也就是将返回值强制转换即可当函数类型缺省时,默认是int类型函数可以有多个return,但是起作用的话,只有一个return,遇到return函数就结束了如果没有return语句,遇到}自动返回主调函数c=max(a,b);int k;elsek=b;return k;

2025-03-11 20:00:07 229

原创 c语言字符数组

用来存放字符数据的数组是字符数组字符数组中一个元素存放一个字符一个元素占1个字节也可以用整型数组存放字符数据,但是浪费空间。

2025-03-07 13:54:04 715

原创 c语言数组

数据类型 数组名[元素个数];# 元素个数必须是整型常量表达式,最后的结果一定是整数,不能是小数# 数组名符合标识符的命名规则int a[6] # 定义了一个整型存储空间# 作为数组元素的时候,是变量数组不初始化,其元素值为随机数对static数组元素不赋初值的话,都补0可以给部分元素赋值当对全部元素赋初值的时候,可以不指定数组的长度,系统会自动的识别a[元素个数] ,下标的范围为从0到元素个数-1数组名是数组的首地址,是一个常量。

2025-03-07 13:29:25 301

原创 c语言数据类型

整型(int),实型(单精度(float),双精度(double)),字符型(char)整型数据赋给单,双精度变量时,数值不变,但是以浮点数形式存储到计算机中。char和short型自动转换为int型(小的存储量往大的存储量变)有符号数,符号位+数值位,存储的话,都是以补码的形式进行存储的。数的正负用高位字节的最高位来表示,0表示正数,1表示负数。n位符号位整数取值范围 -2^n-1 ~ 2^n-1-1。空类型,函数会有一个返回值,如果没有的话,就是void。原码的符号位0表示正数,1表示负数。

2025-03-06 10:39:48 725

原创 输入和输出

m.f m代表的是宽度,f代表的是小数点后的精度,m大于实际宽度的时候(小数点算一个宽度),左边补齐空格,如果m小于等于实际宽度的话,正常输出实际值。md 右对齐,输出m个宽度数,m大于实际的长度的话,左边补齐空格,大于m的话,正常输出。字符不可以,因为空格,回车,tab键都是有对应的字符,赋值给变量。d 带符号的十进制整数形式输出整数,正数不输出符号,int。s 以字符串形式输出,输出字符串的字符至结尾符’\0’为至。%x 不输出0x,但是带上%#x就输出0x。c 以字符形式输出,输出一个字符。

2025-03-06 10:10:57 374

原创 C语言基础

scanf函数,printf函数include 引入的函数数字,字母,下划线_ 构成,不能出现其他的数字不能开头严格区分大小写不能使用关键字(对于用户自定义的标识符规则),但是可以使用printf等,有歧义。

2025-03-05 21:39:21 662

原创 表达式基础

基本整形数据赋给长整型变量时,基本整形数据放在长整型变量低16位中,反之长整型赋给基本整形变量时,只将长整型数据的低16位送给基本整形变量,正数用0补全,负数用1来补全。字符型数据赋值给整型变量时,由于字符只占一个字节,整形占2个字节,因此字符型数据放在整型变量的低8位中,这样数据就不会发生改变了,高八位补0即可。逻辑非 为真结果就为假,运算的优先级高于上面的&&,|| ,因为是单目运算符。i++ 先使用i的值,然后增加+1,先用,后使用。表达式1为真执行表达式2,否则执行表达式3。

2025-03-05 21:38:19 768

原创 k8s存储卷和动态创建pv

pv是一个从存储设备空间中逻辑划分创建出来的可持久化的存储对象,也就是磁盘中分出来一部分用于做成pv,就是一些硬盘等持久卷声明PVC,对pv存储资源的请求和和绑定,相当于是格式化吧,pod使用的一种存储卷的类型动态的创建pv,就是先创建一个底座,也就是提供存储的NFS,然后创建一个供应商,连接这个NFS,创建一个动态的存储类连接这个供应商,这样的话,就能创建pvc的时候,自动的创建pv了查看pod的uid。

2024-12-18 16:07:36 1304

原创 探针和pod生命周期

如果三个探针同时存在话,其他2个探针先会被禁用,直到pod满足startupprobe探针配置的条件,其他2个探针启动,如果不满足的话,按照规则重启容器。虽然容器是运行了,但是容器里面的业务还没有启动,就会导致这个pod虽然正常运行了,但是访问的页面还是404,这个时候就需要就绪探针了。这个探针只是在容器启动后按照配置满足一次后,不在进行后续的探测,只需要一次即可,其他2个探针在整个生命的周期中会一致进行检测的,execaction的方式,在容器中执行指定的命令,执行成功,退出码为0即可。

2024-12-18 08:57:32 864

原创 containerd镜像加速器

【代码】containerd镜像加速器。

2024-12-15 13:58:57 910

原创 vlan和vlanif

总而言之,就是这个三个类型 # access接口 只能允许一种vlan通过,比较vid(数据携带的vlan id ) 和 pvid # trunk接口 允许多种vlan通过,如果vid和pvid相同的哈,去掉标签,否则不去掉(vid在vlan 允许的情况下),不在话丢弃 # hybrid接口 允许多种vlan通过,可以自己控制是否去掉标签,在untag列表中,去掉标签,在tag列表中,携带标签发送,不在的列表中,丢弃交换机通信原理就是mac表广播域等。

2024-12-15 10:14:37 2064

原创 以太网链路详情

这个就是同网段通信的过程# 发送一个ping 包,会发送一个arp请求,然后交换机就学习 # 查询交换机 < Huawei > display mac-addressTotal matching items on slot 0 displayed = 2 # 主机上面也会有mac地址记录 PC > arp -a Internet Address Physical Address Type 1.1 .1.2 54 -89-98-80-0D-83 dynamic。

2024-12-12 15:01:44 924

原创 osi七层模型

osi七层模型应用层将数据变成data发送给传输层,打上tcp,udp ,段网络层,打上ip,包数据链路层,打上帧物理层,位,bit,将帧变成物理信号(光)进行传输中间网络传输的过程发送数据接收数据。

2024-12-09 16:23:53 831

原创 路由和静态路由详情

将报文从一个网段转发到目的网段的过程路由器依靠自身维护的一张路由表指导报文进行转发路由表的信息目的网络,标识目的网段掩码,与目的地址共同标识一个网段出接口,数据包去往离开被本路由器的接口下一跳,路由器转发到到达目的网段数据包所使用的下一跳地址这些都标识了ip报文的转发。

2024-12-09 16:22:54 1080

原创 ip地址详解

作用用于标识一个节点,或者网络设备的接口,网卡上面有地址用于ip报文在网络中寻址计算ip地址的长度为32bit,4个字节,总的长度为2^32,所以的话,不够用,每一个都有2个选择,总共有32位,ipv6,2^128次方,128比特,16个字节,完全够用点分十进制11000000 .10101000 .00001010 .00000001 二进制192.168.10.1 十进制,相乘有一个非常简单计算,用于简单的计算。

2024-12-09 16:21:46 903

原创 ospf协议详解

dr和bdr没有抢夺性,选举出来就不会被抢夺,因此的话,如果有DR的话,再来了一个设备的话,并且router id大的话,也是bdr,不会进行抢夺性。ospf 1 ospf2 这是2个不同的进程,可以有相同的区域,进程就是区分本地不同的应用,隔离作用,进程用于隔离不同的区域,也就是网络隔离的效果。以太网是主流的链路层协议,当2台设备是以太网互联的时候了,通常默认为是p2p的链路,简化ospf的工作,如果有多台设备的话,则还是使用广播类型。

2024-12-09 16:20:29 880

原创 linux搭建NFS服务和autofs自动挂载NFS

就是2边都开启RPC,NFS,一个作为服务器,一个作为客户端,然后服务端的RPC会记录NFS注册的这些端口,如果客户端的RPC连接过来了,有请求,然后服务端将之前记录的NFS信息告知客户端,这样就客户端就知道了。首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口,RPC就会记录下这些端口,并且RPC会开启111端口,等待客户端RPC的请求。客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口。

2024-12-09 13:35:55 481

原创 centos7搭建FTP详细讲解

被动模式(Passive Mode):客户端向服务器的21端口发送命令,服务器向客户端提供一个数据端口,客户端通过该端口进行数据传输。在防火墙环境下,被动模式更为常用。主动模式(Active Mode):客户端向服务器的21端口发送命令,服务器再通过客户端指定的端口(通常为20端口)回传数据。该模式下,客户端需要对外网开放端口。2个通道,21端口为控制通道,用于传输控制命令,用户身份验证,命令请求等。20端口或者是动态的端口,通常是服务器与客户端协商确定,用于传输文件的。

2024-12-08 23:15:43 533

原创 ceph存储池

生产中,上面的2个方式都没有使用,因为这些东西没有可控性一般是基于应用进行快照,基于RBD快照,基于文件系统快照,基于对象存储备份或者是双活编写一个profiledefaultecdemok=3m=2w=8 # 一个编码块可以允许8个数据块# 故障域为5的话,就是切成块分布在5个OSD上面即可,就不会报错了# ecdemo 纠删码的名称# k=3 3个数据块,m=2 就是2个纠删块# 创建纠删码池# 这样的话,就不会报错了,创建的5个数据块,会分布在5个不同的OSD上面即可。

2024-12-06 20:54:49 431

原创 ceph安装P版本

gitlab地址 https://github.com/ceph/ceph,选择版本,然后src/cephadm/下面有个cephadm.py文件即可。不能是其他ceph的osd,或者是本集群中已经移除的OSD的盘,重新加入集群,重新加入时,可以将数据擦除在加入集群,总而言之,就是磁盘必须是干净的。三个节点,每个节点有一个系统盘,10G的硬盘三块作为osd的硬盘,每个节点配置2C4G,使用一张NAT网卡即可。不能是逻辑卷的成员盘,不能是逻辑卷的PV,曾经是可以的,但是新版本不行了。

2024-12-06 20:41:04 1130

原创 ceph基本概念

PG数量过多的话,1000个PG,都没有存储满,这样的话,如果要进行桶迁移的话(或者故障发生的时候),就需要大量的hash计算(每个桶都需要计算),大量的占用cpu,这样的计算没有意义,因为里面是空的吗,内容比较的少,PG过多的话,存储的对象就少一些。客户端访问的monitor的时候,得到了一个cluster map,然后得到了主osd发生了异常的变化,然后选举了一个备OSD变成了临时的主OSD(monitor选举出来的主OSD),然后进行写入即可,同步其他备节点。

2024-12-06 20:38:49 1400

原创 k8s 1.26安装

crictl是用于支持k8s容器运行时的接口,用于运行containerd中的容器和pod。也就是说crictl与指定的容器运行时containerd和镜像服务端点通信,交互操作。上面的这些不会做的话,趁早别学k8s了,学不明白的。ctr是containerd的默认的工具。关闭防火墙和selinux和交换分区。修改主机名和免密登录。

2024-11-18 10:20:01 555 1

原创 k8s搭建1.23版本

【代码】k8s搭建1.23版本。

2024-11-17 17:01:26 1183 2

原创 k8s组件原理

pod创建和运行的过程中,kubelet会不断的向api server报告pod的状态信息,api server将这些状态更写入到etcd中保存,这样用户和其他组件可以通过api server查询pod的当前状态。不仅提供数据存储,还提供了监听机制,用于监听和推送变更,etcd的变化会通知api server,并通过watch api 向客户端输出。是所有组件的通信枢纽,就是接收,验证和处理集群内的各类请求,创建,更新,删除,同时将所有的数据和状态持久化到etcd中。通过后,存储pod数据到etcd。

2024-11-09 09:11:32 986

原创 ip地址详解

作用用于标识一个节点,或者网络设备的接口,网卡上面有地址用于ip报文在网络中寻址计算ip地址的长度为32bit,4个字节,总的长度为2^32,所以的话,不够用,每一个都有2个选择,总共有32位,ipv6,2^128次方,128比特,16个字节,完全够用点分十进制11000000 .10101000 .00001010 .00000001 二进制192.168.10.1 十进制,相乘有一个非常简单计算,用于简单的计算。

2024-11-02 14:35:35 848

原创 osi七层模型

osi七层模型应用层将数据变成data发送给传输层,打上tcp,udp ,段网络层,打上ip,包数据链路层,打上帧物理层,位,bit,将帧变成物理信号(光)进行传输中间网络传输的过程发送数据接收数据。

2024-11-02 14:13:11 1134

原创 dhcp和dns服务

动态分配ip地址subnet 10.5.5.0 netmask 255.255.255.224 { # 定义了一个ip子网的网络地址和掩码!# dhcp服务器动态分配的Ip地址# 这个子网的dns服务器地址,客户端会用这个来解析域名# 客户端在主机明后自动的附加这个,形成一个完整的域名# 子网的默认 网关# 默认租约时间# 客户端请求最长达的租约时间,超过了这个时间就需要重新申请了# 静态的分配ip地址# 客户端上面的mac地址# 绑定到客户端上面的ip地址。

2024-11-01 09:47:12 564

原创 搭建harbor仓库

就是一个仓库,可以推送镜像,或者从这个里面进行下载。

2024-10-28 13:19:11 273

原创 httpd服务

文章目录1、搭建一个网络yum源2、基于域名访问的虚拟主机3、基于端口来访问+域名4、搭建个人网站5、加密访问+显示自定义网页内容1、搭建一个网络yum源[root@test01 conf.d]# cat repo.conf <virtualhost *:80> documentroot /var/www/html/ ServerName 10.104.43.154 alias /repo /var/www/html/repo # 使用alias指令来进行指定访问repo的时

2024-10-24 13:32:42 552

原创 nginx服务

动静分离,有些请求是需要后台处理的,也有一些请求是不需要后台处理的css,html,jpg等文件,不需要经过后台处理的成为静态文件,动静资源拆分好了话,根据静态资源做缓存操作,提高资源的响应速度。首先是server块中设置拒绝所有人的规则,然后在location下面设置了允许/这个路径下面,所有访问,因此的话,所有的Ip都能访问/网页的内容,覆盖掉了。正向代理,电脑有一个vpn就能进行访问外网了,电脑通过vpn到香港的服务器,然后再到美国的服务器,最后返回给香港,返回给电脑,代理客户端的。

2024-10-23 20:08:37 1066

原创 python安装第三包

【代码】python安装第三包。

2024-10-18 09:21:14 290

原创 samba服务搭建

linux和windows都能进行访问,跨系统的访问。需要用账号才能进行访问。

2024-10-14 20:34:23 205

原创 kubernetes资源原理解读

服务发起方的envoy通过pilot-agent获取的pilot地址,实现服务发现获取目标服务的实例列表,frontend 服务侧的 Envoy 通过 Pilot 的服务发现接口得到 forecast 服务各个实例的地址。pilot将配置内容下发给envoy,根据pilot指令,将路由,服务,监听,集群等信息转换为本地的配置,完成控制行为的落地。动态的创建pv,通过供应商自动的创建pv,动态存储类与供应商进行绑定,并且和pvc进行绑定后,就会自动的创建出pv。

2024-10-14 13:34:02 621

原创 shell脚本

【代码】shell脚本。

2024-10-12 19:06:58 223

原创 nfs服务搭建

首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口,RPC就会记录下这些端口,并且RPC会开启111端口,等待客户端RPC的请求。如此客户端就会获取NFS服务器端的端口信息,就会以实际端口进行数据的传输了。客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口。nfs的功能对应的端口的并不固定,客户端要知道NFS服务器端的相关端口才能进行数据传输。RPC就是用来统一管理NFS端口的服务,并且统一的对外的端口是111。

2024-10-12 18:46:40 329

原创 ftp服务搭建

当需要传输数据时、FTP客户端再动态的打开一个大于1024的端口(比如1032端口)连接到服务器的20端口,并再这两个端口之间传输数据。当数据传输完毕,这两个端口会自动关闭。当FTP客户端向服务端发送拆除连接的请求并确认后、客户端将端口与FTP服务的连接,客户端上动态分配的端口将自动释放。若FTP服务器在端口21侦听到该请求、则会在客户端1031端口和服务器的21端口之间建立一个FTP会话连接。客户端向服务器发送请求、同时客户端系统动态的打开一个大于1024的端口等待服务器连接。

2024-10-12 18:45:33 163

原创 ansible 语句+jinjia2+roles

tasks:角色所需要执行的所有任务文件都存放于此,包含一个主文件main.yml,可以通过include的方式引入其他任务文件,就是可以创建多个tasks任务,然后在main,yml里面进行引用。很多个主机都要搭建httpd服务,将一个httpd的配置文件拷贝到其余的主机上面,上面的ip地址都是一样的,所以的话,这个jinjia2模版文件会根据不同主机更改需要的内容。templates:用于存放角色相关的jinja2模版文件,当使用角色相关的模版时,如果没有明确指定模版的路径,则默认使用此目录中的模版。

2024-10-12 16:12:05 779

原创 sed、awk、grep

【代码】sed、awk、grep。

2024-10-11 10:33:28 426

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除