- 博客(249)
- 收藏
- 关注
原创 使用 ssh-keygen 和 ssh-copy-id 配置 SSH 密钥实现免密登陆
SSH 提供两种认证方式,密码认证和密钥认证,一般我们买来的 VPS 都是密码认证。密码的缺点是很容易被暴力破解,而且密码需要记忆,使用起来麻烦。密钥的好处是,你只需要一对密钥文件:公钥和私钥,公钥相当于门锁,装在 VPS 上,私钥相当于钥匙,放在本地计算机上,登录的过程就像是用钥匙去开锁,有钥匙的人才能打得开,不仅安全,而且方便。此外,公钥可以复制到其它主机和账户,这就像是你装了很多同样门锁。本篇教程将讲解在本地终端使用ssh-keygen和给 VPS 配置 SSH 密钥的方法以及使用ssh。
2024-12-02 20:13:54
438
原创 nginx 代理部署
CENTOS RPM 安装后, Nginx 默认配置文件在:/etc/nginx/nginx.conf, 在 http 指令块中新增代理配置。#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP。#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP。#https证书配置, 需要加签server_name 中的域名。#请按客户需求添加, 不需要暴露的域名不要添加。#请按客户需求添加, 不需要暴露的域名不要添加。#https服务,默认由客户提供证书。
2024-10-12 09:57:53
80
原创 helm安装、使用、实践
Helm 是管理 Kubernetes 的应用管理工具相当于centos的yum,python中pip,node中的npm.几个概念ChartHelm的应用包,采用tgz格式。类似于Yum的RPM包,其包含了一组定义Kubernetes资源相关的YAML文件。也称为应用Chart。RepoistoryHelm的应用仓库,Repository本质上是一个Web服务器,该服务器保存了一系列的Chart应用包以供用户下载,并且提供了一个该Repository的Chart包的清单文件以供查询。
2024-10-12 09:55:39
1061
原创 K8S线上集群排查,实测排查Node节点NotReady异常状态
上面两项参数表示每隔5秒kubelet去检测Pod的健康状态,如果在40秒后依然没有检测到Pod的健康状态便将其置为NotReady状态,5分钟后就将节点下所有的Pod进行驱逐。分析到这里,似乎有点方向了,导致Node节点变成NotReady状态是和Pod的健康状态检测有关系,正是因为超过默认时间了,K8S集群将Node节点停止服务了。文章中所描述的是本人在项目中线上环境实际解决的,那除了如何解决该问题,更重要的是如何去排查这个问题的起因。......
2024-10-10 10:26:38
897
原创 Linux scp 详解
2.如果远程服务器防火墙限制或默认端口(22)被占用,则需要指定端口,反之,一般情况下可以不需要-P(P大写)来指定端口号。#scp -P 端口号 登录远程服务器用户@远程服务器IP:/文件夹名/拷贝文件名 /目标文件夹名。# scp -P 端口号 /文件夹名/文件名 登录远程服务器用户@远程服务器IP:/目标文件夹。scp(secure copy):linux系统远程拷贝文件命令;1.远程服务器登录用户如果没有对应文件夹的操作权限,则会失败。一、从远程服务器复制文件到本地。
2024-10-10 10:26:25
724
原创 k8s 二进制集群部署
只2017年开始,断断续续的接触k8s也是有几个年头了,从1.11开始到现在马上都1.20了,真快呀!之前就有想整理下所有技术的想法,毕竟已经35岁的人,闯荡江湖已经12个年头了。是该总结下了,这行说实话干不了几年了。话不多说,等专门写一篇感慨的文章。开整!这块我不会讲的太多,毕竟k8s一个很大的体系,不是一两句话或者两三句话就可以说清楚的。可能说的太深了我也未必能说的清楚,主要是说不清楚吧。但是简单的我还是要说下,主要是应对面试吧。但是说实话理论这事儿干的深了很重要的,在排错的时候,如果有理论加持会事半功
2024-10-10 10:25:42
740
原创 K8S-INGRESS原理,部署及应用
Ingress解决的是新的服务加入后,域名和服务的对应问题,基本上是一个ingress的对象,通过yaml进行创建和更新进行加载。来保护 Ingress。的服务)配置成外网能够访问的URL,流量负载均衡,及SSL,并提供域名访问的虚拟主机等,客户通过访问URL(API资源服务的形式,例如:caas.one/kibana)进入和请求Service,一个Ingress控制器负责处理所有Ingress的请求流量,它通常是一个负载均衡器,它也可以设置在边界路由器上,或者由额外的前端来帮助处理HA方式的流量。
2024-10-10 10:25:03
1675
原创 MySql主从不同步原因分析及解决方案
binlog日志中查询到opp_strack表的更新操作,然后对比主从库opp_strack表中字段“1683”的数据,我这边得到的数据是不一致的,发现从库opp_strack中被插入进来三条数据,冲掉了主库的id值,然后将从库中的三条数据删除掉。昨天zabbix突然发送告警信息,告警说是mysql的slave停掉了,登录到数据库从库,进去看mysql的进程是正常的,然后去看下mysql的error日志。2,根据上图的提示,查询到的异常数据出现在opp_strack表中。再次查看从库状态,恢复正常即解决。
2024-10-10 10:15:17
4429
原创 web服务器
web服务器HTTPD(apache web服务器)默认端口: 80 443 面试必问问题子配置文件-----------------------冲突了子配置文件生效自己写个文件elinks 172.16.10.30 交互式elinks --dump 172.16.10.30 显示在终端上http: 超文本传输协议: hyper text tranfer protocolhtml:超文本标记语言:hyper text mark langue。
2024-10-10 10:13:59
59
转载 漫画 | Linux之父:财务自由以后,我失眠了!
而我的Linux则是完全开放的, 我1991年的时候,在赫尔辛基理工大学听过一次理查德·斯托曼的演讲, 鼓吹什么自由软件运动,他说要搞一个GNU操作系统出来,采用GPL协议。我可不会这么笨,我是个优秀的学生,每年都能得到奖学金,再加上我生日的压岁钱,我就买了一个叫做Sinclair QL的电脑。你看,它平时保存在软盘上,只要把软盘插入电脑,开机就能运行,它还能管理键盘,猫,显示器,磁盘,支持多任务.....
2024-10-10 10:12:33
1479
原创 DNS BIND之nsupdate介绍和使用
nsupdate是一个动态DNS更新工具,可以向DNS服务器提交更新记录的请求,它可以从区文件中添加或删除资源记录,而不需要手动进行编辑区文件。1.使用方法1)参数说明:-d 调试模式。-k 从keyfile文件中读取密钥信息。-y keyname是密钥的名称,secret是以base64编码的密钥。-v 使用TCP协议进行nsupdate.默认是使用UDP协议。
2024-10-10 10:11:36
1921
原创 docker /var/run/docker.sock: connect: permission denied
从上面的报错信息上我们知道,这句话的大致意思就是在我门试图通过socket去连接docker时权限不被允许。这是应为socket需要root用户才能访问,当前用户的权限不够,所以被禁止了。就是向组docker中添加用户user,-d就是删除该组中的用户。这是需要输入root用户的密码,输入即可正常操作了。这个时候我们就不会收到任何报错信息了。
2024-10-10 10:10:21
409
原创 lvm磁盘分区扩容
问题:Linux系统挂载到根目录的磁盘空间满了,如何扩容?可以查看磁盘和分区情况,可以发现磁盘vda下面的还有大部分空间没有使用。
2024-10-10 10:09:33
62
原创 mac启动mysql
运行brew service start mysql 可以后台启动mysql运行mysql.server start 前台启动mysql如果提示权限问题使用sudo指令,我的笔记本上如果不加此指令各种权限问题。
2024-10-10 10:08:25
69
原创 yum相关用法
--force --replacefiles可以无视rpm的冲突去强制替换(如两个rpm的安装路径相同了会有冲突)#--nodeps强制安装,无视环境缺少依赖的检查。
2024-10-10 10:07:54
43
转载 实现:mysql-5.7.42 到 mysql-8.2.0 的升级(rpm方式)
在升级之前,务必对当前的 MySQL 5.7 数据库进行完整备份,以防止数据丢失或损坏。2、安全性考虑:建议在测试环境中进行升级测试,以模拟真实场景并检测潜在问题。创建"mysql8.2.0-bundle"的文件夹,用于存放解压文件。已由mysql-5.7.42 升级到 mysql-8.2.0。3、备份数据库、my.cnf文件,停止mysql服务(重要)1、使用mysql-shell 检查工具检查兼容性。5、查看已安装的mysql-5.7.42有关的包。4、上传、解压安装包。6、升级、按顺序执行。
2024-10-09 09:21:23
209
原创 K8s Kubelet 垃圾回收机制
前言Kubelet 垃圾回收(Garbage Collection)是一个非常有用的功能,它负责自动清理节点上的无用镜像和容器。Kubelet 每隔 1 分钟进行一次容器清理,每隔 5 分钟进行一次镜像清理(截止到 v1.15 版本,垃圾回收间隔时间还都是在源码中固化的,不可自定义配置)。如果节点上已经运行了 Kubelet,不建议再额外运行其它的垃圾回收工具,因为这些工具可能错误地清理掉 Kubelet 认为本应保留的镜像或容器,从而可能造成不可预知的问题。
2024-10-09 09:20:04
2596
原创 MySQL 的read_only 只读属性说明
为了保证主从同步可以一直进行,在slave库上要保证具有super权限的root等用户只能在本地登录,不会发生数据变化,其他远程连接的应用用户只按需分配为select,insert,update,delete等权限,保证没有super权限,则只需要将salve设定"read_only=1"模式,即可保证主从同步,又可以实现从库只读。"两条命令,就可以确保数据库处于只读模式,不会发生任何数据改变,在MySQL进行数据库迁移时,限定master主库不能有任何数据变化,就可以通过这种方式来设定。
2024-10-09 09:18:06
636
1
原创 修改mysql locahost或者127.0.0.1弱密码问题
这将显示与 root 用户关联的主机、用户名以及加密后的认证字符串(密码)。列中存储的是经过哈希加密后的密码,而不是原始密码。
2024-10-09 09:16:38
1170
原创 MySQL GTID 主从复制错误修复方法
当出现复制错误时,可以设置跳过出错的事务来恢复同步,MySQL 提供了 sql_slave_skip_counter 参数来实现此功能。1 "show slave statusG" 找到发生复制错误的 GTID 事务号(示例只展示复制错误信息,其他信息省略),可以找到发生复制错误的 GTID 为:ab1b2733-2401-11e7-82fc-525400abbf4b:50。其实上面的报错信息已经提示了解决方法:在发生错误的 GTID 事务号上插入一个空的事务,来实现跳过此复制错误的效果。
2024-10-09 09:14:18
947
原创 如何在Linux命令行下发送和接收UDP数据包
众所周知,在传输层有两个常用的协议 TCP 和 UDP,本文介绍在 Linux 命令行下,如何使用 nc 命令发送或接收 UDP 数据包,这些命令的用法对调试 UDP 通信程序将有所帮助,本文适合初学者阅读。
2024-10-09 09:13:01
571
转载 Docker + Jenkins + Nginx实现前端自动化部署
前端自动化部署一直以来概念很清楚知道怎么回事,但是其中怎么操作没怎么研究过,虽然之前环境都搭起来了,但是也只是Jenkins构建项目成功,比如提交代码之后怎么触发自动构建,打包后的文件如何迁移到指定服务器的文件目录下,流水线如何搞等等这都是我之前想想头疼也只能头疼的问题。终于还是费了点心思搞了搞自动化部署,又花了大量时间来记录这个过程。
2024-10-09 09:12:33
545
原创 mysql清除主从复制关系
该语句将被用于干净的启动, 它删除master.info文件和relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件。使用场景:当原来的主从关系被破坏之后,从库经过重新初始化后直接连接会报 ERROR 1201的错误,运行reset slave后,重新配置主从连接就可以了。功能说明:删除所有的binglog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。删除所有的relay log(包括还没有应用完的日志),创建一个新的relay log文件;
2024-10-09 09:11:25
1522
原创 MySQL GTID 主从复制错误修复方法
当出现复制错误时,可以设置跳过出错的事务来恢复同步,MySQL 提供了 sql_slave_skip_counter 参数来实现此功能。1 "show slave statusG" 找到发生复制错误的 GTID 事务号(示例只展示复制错误信息,其他信息省略),可以找到发生复制错误的 GTID 为:ab1b2733-2401-11e7-82fc-525400abbf4b:50。其实上面的报错信息已经提示了解决方法:在发生错误的 GTID 事务号上插入一个空的事务,来实现跳过此复制错误的效果。
2024-10-09 09:11:06
1095
原创 Mysql服务启动失败 [Server] I/O error reading the header from the binary log.
Mysql的日志文件出错,很可能是你自己创建了一个与之前日志名相同的文件,但是Mysql知道文件已经不是原有的日志文件了。我的错误就是删除原有的日志文件,然后自己创建了一个同名的日志文件导致的。e.如果没有解决,继续查看错误日志(DESKTOP-IR5UPKH.err)里面的详细内容解决,一般是再删除index文件里没有的日志文件行,重启服务即可。c.打开同级目录下的日志索引文件: vim mysql-bin.index,并删除刚刚删除日志文件的那一行。d.保存并重启Mysql服务,问题解决。
2024-10-09 09:10:41
804
原创 MySQL主从切换测试
read_only | OFF | #值为OFF说明当前库可读写。#将server1配置修改为当前主节点主机名,server2配置修改为当前从节点主机名。ps -ef | grep mha #一般在kde-offline3节点。恢复方案:启动kde1节点mysql,作为从库向kde2节点同步数据。测试主从:停止kde1节点,mha服务将kde2节点提为主。如果未启动则需要手动执行mha服务启动。#连接数据库,配置向kde2节点同步。在kde-offline3节点)
2024-10-09 09:10:17
1124
原创 MySQL从主库恢复从库
例:scp -r /data/mysql_backup/13306/20231124/full_164044/ kde-offline2:/data/cp /data/mysql13306_bak20231124/my13306.cnf /data/mysql13306/ #覆盖。记录:7a2ffba6-7ab8-11ee-815f-fa163e25443d:1-2139088。例:/data/mysql_backup/13306/20231124/full_164044/
2024-10-09 09:09:39
439
原创 Mysql—修改用户密码(重置密码)
修改加密规则:mysql> alter user "root"@"localhost" identified by 'password' PASSWORD EXPIRE NEVER;如果执行以上的操作并没有解决,请再把default_authentication_plugin=mysql_native_password添加到配置中。上面修改密码是在5.7版本之前的。如果忘记密码,则跳过MySQL的密码认证过程。
2024-10-09 08:57:08
1687
原创 k8s ingress高级配置,动态修改上传文件大小限制参数client_max_body_size
通常情况下,service和pod的IP可以被集群网络访问。外部访问的所有流量被丢弃或转发到别处。ingress是允许入站连接到达群集服务的规则集合.可以为外部提供可访问服务的URL,流量负载均衡,可被终止的ssl连接,以及基于配置的虚拟主机。k8s ingress配置官网链接:https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/annotations.md。
2024-10-08 14:36:46
953
原创 Filebeat on k8s 日志采集实战操作
Filebeat是一个轻量级的开源日志文件和数据收集器,由 Elastic 公司开发,用于采集、解析和发送日志数据。在 Kubernetes 中,Filebeat通常用于采集容器日志,并将其发送到中央日志存储、分析或搜索工具,如 Elasticsearch、Logstash 或 Fluentd。以下是Filebeat在KubernetesFilebeat容器部署:首先,在Kubernetes集群中创建一个或多个Filebeat容器的Pod。这些Pod。
2024-10-08 14:36:32
931
原创 轻量级的日志采集组件 Filebeat 讲解与实战操作
Filebeat是一个轻量级的日志数据收集工具,属于Elastic公司的Elastic Stack(ELK Stack)生态系统的一部分。它的主要功能是从各种来源收集日志数据,将数据发送到Elasticsearch、Logstash或其他目标,以便进行搜索、分析和可视化。轻量级:Filebeat是一个轻量级的代理,对系统资源的消耗非常低。它设计用于高性能和低延迟,可以在各种环境中运行,包括服务器、容器和虚拟机。多源收集。
2024-10-08 14:36:18
1622
原创 【云原生】k8s 环境快速部署(一小时以内部署完)
如果执行安装时卡住或者直接安装失败,可以再安装(可支持重复执行安装),也可以卸载重新安装。去掉第一次连接ssh ask确认。版本,后续会兼容高版本。
2024-10-08 14:36:00
87
原创 创建pv,pvc
metadata:spec:capacity:hostPath:metadata:spec:resources:requests:
2024-10-08 14:35:44
99
原创 Kubernetes中部署ELK Stack日志收集平台
kubelet会在/var/log/pods和/var/log/containers下面建立软链接,指向/var/lib/docker/containers/$CONTAINERID目录下的容器日志文件。- dissect: #参考https://www.elastic.co/guide/en/beats/filebeat/current/dissect.html。创建一个软链接/var/log/pods指向数据盘挂载点下的某个目录(ln -s /data/var/log/pods /var/log/)
2024-10-08 14:35:25
1372
原创 解决The connection to the server localhost:8080 was refused - did you specify the right host or port?
admin来运行,需要admin.conf文件(conf文件是通过“ kubeadmin init”命令在主节点/etc/kubernetes 中创建),但是从节点没有conf文件,也没有设置 KUBECONFIG =/root/admin.conf环境变量,所以需要复制conf文件到从节点,并设置环境变量就OK了。主节点的admin.conf拷贝到从节点,设置环境变量。kubectl命令需要使用。
2024-10-08 14:35:10
60
原创 linux中docker报错:ERROR: Got permission denied while trying to connect to the Docker daemon socket。
从上面的报错信息上我们知道,这句话的大致意思就是在我门试图通过socket去连接docker时权限不被允许。这是应为socket需要root用户才能访问,当前用户的权限不够,所以被禁止了。就是向组docker中添加用户user,-d就是删除该组中的用户。这是需要输入root用户的密码,输入即可正常操作了。这个时候我们就不会收到任何报错信息了。
2024-10-08 14:34:56
2837
Paragon NTFS 让Mac系统读写NTFS的工具 v15.8.243
2022-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人