单节点Kubernetes更换ip地址
如果是个多节点的集群,更换一台 master 节点的 ip 有个更简单的办法,那就是先扩容一台新的 master,再把旧的 master 节点下线,安全无副作用,如果是单节点更换 ip 地址(如果旧 ip 不用回收,那么可以直接在网卡上再绑定一个 ip 地址,不用对 k8s 进行修改) 和 kubeadm之单节点master升级高可用master 有点类似 首先更换操作系统 ip 地址略 准备 重新签发证书 更新配置文件里的 ip 地址 这个时候 kubectl 可用了,修改 configmap 然后删除 pod 重建
使用 Docker 搭建集群版 Elasticsearch 学习环境
一般来说,学习 ES 都是自己先搭建几台虚拟机,然后在虚拟机里部署 ES 集群,这样做资源消耗比较大,一般的电脑都没有这么高的配置,我们可以使用 Docker 来快速部署一套 Elasticsearch 集群,这里以 3 节点集群为例: 准备 Docker 网络集群节点之间是通过 ip 进行交互的,所以需要固定一下 ip,固定 ip 之前需要先创建一个 Docker 私有网络,并固定网段 (网段不要和你的内网冲突) 集群版 Elasticsearch 需要生成证书默认生成 3 年证书,我指定生成了 100 年的证书, 生成到了 certs 目录下。 指定 IP 运行容器我这里将数据持久化到了 docker 卷中,通过 docker volume ls 可以查看。 elasticsearch1 elasticsearch2 elasticsearch3 初始化密码需要等待服务启动后才可设置初始化密码,命令只能生成一次。 部署 kibana准备 kibana.yml密码按照实际情况修改 准备 kibana.sh
使用 Docker 搭建单节点 Elasticsearch 学习环境
一般来说,学习 ES 都是自己先搭建几台虚拟机,然后在虚拟机里部署 ES 集群,这样做资源消耗比较大,一般的电脑都没有这么高的配置,我们可以使用 Docker 来快速部署 Elasticsearch,这里搭建单节点: 启动 Elasticsearch 初始化密码需要等待服务启动后才可设置初始化密码,命令只能生成一次。 部署 kibana准备 kibana.yml密码按照实际情况修改 准备 kibana.sh
centos删除swap后无法启动
删除了 CentOS 的 swap 分区后,重启系统报错,提示 Warning: /dev/centos/swap does not exist,如图: 先挂载 /boot 分区, 不确定就一个一个挂载看看里面的文件对不对,正常情况下 /boot 分区大小在 1GB 以内 vi grub2/grub.cfg删除 rd.lvm.lv=centos/swap 这个配置, 然后: 这样系统就可以正常启动了,但是还没完 /boot 里的文件都是自动生成的,每次更新内核或者手动执行 grub2-mkconfig, 会被覆盖掉,所以还需要修改原始的 grub 配置文件, vim /etc/default/grub 把这里和 swap 相关的 rd.lvm.lv=centos/swap 配置删除, 然后重新生成一下配置文件 关系是: 所以修改 grub 配置,只需要修改 /etc/default/grub 即可。
docker官方私有仓库registry部署与使用
一般来说大家用容器镜像都选择 harbor,有个管理界面,还支持权限控制、漏洞扫描等,但是我公司有个客户的环境只允许通过跳板机登录 Linux 机器,没法使用浏览器,另外也只是需要一个简单一点的、好维护的仓库,找了一下,这个比较简单。如果需要更专业的私有镜像仓库,可以选择 harbor(免费)或者 jFrog 家的(收费) 自签名证书 docker 信任证书将文件复制到每个 Docker 上 主机。您无需重新启动 Docker。 如果更换了默认端口,这里的文件夹也要加上端口,比如 /etc/docker/certs.d/hub.i.com:8000/ 部署服务 常用的 API假设镜像名为:hub.i.com/iuxt/test:latest 垃圾回收在 Docker Registry 配置文件 config.yml 中,启用删除功能: 执行垃圾回收操作 附:自签证书以及配置 OS 信任 CA 证书:制作和使用自签名证书快速签发证书小工具:https://github.com/iuxt/my_cert
Kubernetes同一个namespace共用镜像secret
配置一个全局的镜像拉取密钥, 后续拉镜像就不用每个 deployment 单独配置了。 在每个 namespace 下都有一个默认的 service account, 假设命名空间是 test 使用 kubectl get sa -n test 查看 查看 serviceaccount 信息 Image pull secrets 是此 namespace 下拉取镜像的秘钥 1.创建 secret 2.配置进 service account 至此在 test 下拉取镜像无需配置镜像拉取秘钥了
解决MySQL 5.7在Redhat 9中启动报错:libncurses.so.5和libtinfo.so.5缺失问题
采用二进制安装 MySQL 服务的时候, 之前在 CentOS 7 系统中,直接 yum 安装依赖包就可以正常运行,但是到了 RHEL 9 系统下, 会报错找不到 libncurses.so.5, 根据经验需要查找一下这个库属于哪个包: 找不到这个包 不考虑版本,再次搜索 发现可以找到 6.2 的版本, 安装这个包 查看这个 rpm 包包含的文件: 此时需要做一个软链接(前提是此版本可以向后兼容,至少在 MySQL 5.7 这里运行是没问题的。) 修改完成,报另一个错误了: 同样的方法, 再创建一个软链接: 然后 MySQL 就可以正常运行了。
MySQL基于GTID的主从复制
没开启 GTID 的 MySQL 数据库增加从库请看:优雅地给正在运行的MySQL添加从库 自动同步连接主库 (方法一)适用于 master 也是新建不久的情况,如果你的 master 所有的 binlog 还在,可以安装 slave,slave 直接 change master to 到 master 端。原理是直接获取 master 所有的 GTID 并执行。 优点:简单方便。不需要备份主库再在从库还原。缺点:如果 binlog 太多,数据完全同步需要时间较长。如果旧的 binlog 已经被清理了,则不能正常同步。 在从库执行: master_auto_position=1 从库自动找同步点 备份导入连接主库 (方法二)适用于拥有较大数据的情况。(推荐) 通过 master 或者其他 slave 的备份搭建新的 slave。原理:获取 master 的数据和这些数据对应的 GTID 范围,然后通过 slave 设置 master_auto_position=1,自动同步,跳过备份包含的 gtid。缺点:相对来说有点麻烦。 主库使用 mysqldump 导出 SQL 文件...
WSL新的网络模式-mirrored镜像网络
刚开始我用 Hyper-V 自定义内部网络网段和IP地址 配置 Hyper-V 并创建了几台虚拟机, 但是和 WSL 的网络不通, 解决方案可以是将 Hyper-V 虚拟机只接使用 WSL 的网络适配器。不过 2023 年 9 月的 WSL 更新添加了一些新的实验性功能,其中包括一些关于新的网络模式“镜像”。镜像网络带来了一些实用的特性,例如将 WSL 中的服务开放到局域网(之前是 NAT 网络,只有主机可以通过 localhost 访问)。更新日志中提到,镜像网络带来的新特性如下: IPv6 支持 在 Linux 中通过 127.0.0.1 访问 Windows 服务 通过局域网直接连接 WSL 对 VPN 更好的兼容性 多播支持 安装使用首先,这项特性需要 22621.2359 及以上版本的 Windows 11 以及 2.0 以上版本的 WSL。使用 wsl --version 命令可以检查是否符合需求,wsl --update 命令可以更新 WSL。 确认满足版本需求后, 在 windows 的个人文件夹下创建 .wslconfig 文件,内容如下: spar...
Hexo博客更换url结构后配置自动跳转
因为修改过博客的链接规则, 原来的链接是 https://zahui.fan/xxx/ 修改成了 https://zahui.fan/posts/xxx/ 或者删除了部分标签,造成了搜索引擎内之前收录的一些链接都变成了 404,不利于 SEO 如果是 hugo,可以查看这篇文章:Hugo博客批量更换url结构 在 hexo 中我们可以使用 hexo-generator-alias 对文章进行跳转。 安装 hexo-generator-alias GitHub 地址: https://github.com/hexojs/hexo-generator-alias 全局配置比如 tags、category 等这种不存在对应的 markdown 文件, 可以配置在全局配置 _config.yml 中: 文章配置配置在文章的 front-matter 中: abbrlink:就是文章本来的链接, 比如我的就是 https://zahui.fan/posts/57e7c794/ alias: 这个是关联的链接,配置成 /57e7c794/, 则访问 https://zahui.f...


