开源分布式存储工具longhorn部署
k8s 如果需要用到存储,对于云产品一般都是采用云厂商提供的存储驱动,自建机房简单一点的会采用 nfs,nfs 有以下问题: 高可用性问题,一般都是单台机器在跑,高可用完全依靠物理机器的 RAID,非常不云原生 性能问题,NFS 本身性能不算好,外加一个集群都在使用,网卡速度是个瓶颈longhorn 是个开源的存储引擎,简单来说就是它把 k8s 每个节点的磁盘空间搜集起来,组成一个大池子,然后分配个各个 pod 使用。并通过多副本的方式做高可用。longhorn 好像是 openSUSE 家的吧,和 rancher 一个公司。 官方文档官方安装说明:https://longhorn.io/docs/1.6.1/deploy/install/install-with-kubectl/ 官方安装要求:https://longhorn.io/docs/1.6.1/deploy/install/#installation-requirements 官方的检查依赖项脚本: 1curl -fsSL...
单节点Kubernetes更换ip地址
如果是个多节点的集群,更换一台 master 节点的 ip 有个更简单的办法,那就是先把这台机器下线,然后再扩容一台新的 master,安全无副作用,如果是单节点更换 ip 地址(如果旧 ip 不用回收,那么可以直接在网卡上再绑定一个 ip 地址,不用对 k8s 进行修改) 和 kubeadm之单节点master升级高可用master 有点类似 首先更换操作系统 ip 地址略 准备123456789# 备份配置文件cp -r /etc/kubernetes{,-bak}# 查看证书绑定的ip或域名for i in $(find /etc/kubernetes/pki -type f -name "*.crt");do echo ${i} && openssl x509 -in ${i} -text | grep 'DNS:';done# 删除需要重新生成的证书rm -rf...
使用Docker部署一套用于学习的Elasticsearch集群
一般来说,学习 ES 都是自己先搭建几台虚拟机,然后在虚拟机里部署 ES 集群,这样做资源消耗比较大,一般的电脑都没有这么高的配置,我们可以使用 Docker 来快速部署一套 Elasticsearch 集群,这里以 3 节点集群为例: 准备 Docker 网络集群节点之间是通过 ip 进行交互的,所以需要固定一下 ip,固定 ip 之前需要先创建一个 Docker 私有网络,并固定网段 (网段不要和你的内网冲突) 1docker network create --subnet=172.16.0.0/24 elasticsearch-br0 集群版 Elasticsearch 需要生成证书默认生成 3 年证书,我指定生成了 100 年的证书, 生成到了 certs 目录下。 12345docker run --rm -it -v $(pwd)/certs:/tmp/certs elasticsearch:${ELASTIC_VERSION} bash -c \ 'echo -e "\n\n" |...
centos删除swap后无法启动
删除了 CentOS 的 swap 分区后,重启系统报错,提示 Warning: /dev/centos/swap does not exist,如图: 先挂载 /boot 分区, 不确定就一个一个挂载看看里面的文件对不对,正常情况下 /boot 分区大小在 1GB 以内 123mkdir /tmp/bootmount /dev/sda1 /tmp/bootcd /tmp/boot vi grub2/grub.cfg删除 rd.lvm.lv=centos/swap 这个配置, 然后: 1umount /tmp/boot 这样系统就可以正常启动了,但是还没完 /boot 里的文件都是自动生成的,每次更新内核或者手动执行 grub2-mkconfig, 会被覆盖掉,所以还需要修改原始的 grub 配置文件, vim /etc/default/grub 1234567GRUB_TIMEOUT=5GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g'...
docker官方私有仓库registry部署与使用
一般来说大家用容器镜像都选择 harbor,有个管理界面,还支持权限控制、漏洞扫描等,但是我公司有个客户的环境只允许通过跳板机登录 Linux 机器,没法使用浏览器,另外也只是需要一个简单一点的、好维护的仓库,找了一下,这个比较简单。如果需要更专业的私有镜像仓库,可以选择 harbor(免费)或者 jFrog 家的(收费) 生成 CA 证书12345678910# 私钥openssl genrsa -out ca.key 4096# 证书请求openssl req -utf8 -new -x509 -days 3650 -key ca.key -out ca.crt -subj '/C=CN/ST=Shanghai/L=Pudong/O=iuxt/OU=张理坤/CN=*.i.com/emailAddress=iuxt@qq.com'# 生成私钥openssl genrsa -out server.key 4096openssl req -utf8 -new -key server.key -out server.csr -subj...
Kubernetes同一个namespace共用镜像secret
配置一个全局的镜像拉取密钥, 后续拉镜像就不用每个 deployment 单独配置了。 在每个 namespace 下都有一个默认的 service account, 假设命名空间是 test 使用 kubectl get sa -n test 查看 查看 serviceaccount 信息 1kubectl describe sa -n test Image pull secrets 是此 namespace 下拉取镜像的秘钥 1.创建 secret 1kubectl create secret -p docker-registry registrykey --namespace=test --docker-username=<harbor_user> --docker-password=<harbor_password> --docker-server=<harbor_url> 2.配置进 service account 1kubectl patch serviceaccount default -p...
解决MySQL 5.7在Redhat 9中启动报错:libncurses.so.5和libtinfo.so.5缺失问题
采用二进制安装 MySQL 服务的时候, 之前在 CentOS 7 系统中,直接 yum 安装依赖包就可以正常运行,但是到了 RHEL 9 系统下, 会报错找不到 libncurses.so.5, 根据经验需要查找一下这个库属于哪个包: 1yum provides libncurses.so.5 找不到这个包 不考虑版本,再次搜索 1yum provides libncurses.so.* 发现可以找到 6.2 的版本, 安装这个包 1yum install ncurses-libs 查看这个 rpm 包包含的文件: 1rpm -ql ncurses-libs | grep libncurses.so 此时需要做一个软链接(前提是此版本可以向后兼容,至少在 MySQL 5.7 这里运行是没问题的。) 1ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5 修改完成,报另一个错误了: 同样的方法, 再创建一个软链接: 1ln -s /usr/lib64/libtinfo.so.6...
MySQL基于GTID的主从复制
没开启 GTID 的 MySQL 数据库增加从库请看:优雅地给正在运行的MySQL添加从库 自动同步连接主库 (方法一)适用于 master 也是新建不久的情况,如果你的 master 所有的 binlog 还在,可以安装 slave,slave 直接 change master to 到 master 端。原理是直接获取 master 所有的 GTID 并执行。 优点:简单方便。不需要备份主库再在从库还原。缺点:如果 binlog 太多,数据完全同步需要时间较长。如果旧的 binlog 已经被清理了,则不能正常同步。 在从库执行: 1234567CHANGE MASTER TOMASTER_HOST='10.0.0.11',MASTER_USER='root',MASTER_PASSWORD='Vb6CAEJqqtcmKndiAkEl',MASTER_PORT=3306,MASTER_CONNECT_RETRY=10,MASTER_AUTO_POSITION=1; master_auto_position=1...
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。 12345678C:\Users\iuxt>wsl --versionWSL 版本: 2.1.5.0内核版本:...
Hexo博客更换url结构后配置自动跳转
因为修改过博客的链接规则, 原来的链接是 https://zahui.fan/xxx/ 修改成了 https://zahui.fan/posts/xxx/ 或者删除了部分标签,造成了搜索引擎内之前收录的一些链接都变成了 404,不利于 SEO 如果是 hugo,可以查看这篇文章:Hugo博客批量更换url结构 在 hexo 中我们可以使用 hexo-generator-alias 对文章进行跳转。 安装 hexo-generator-alias1npm install hexo-generator-alias --save GitHub 地址: https://github.com/hexojs/hexo-generator-alias 全局配置比如 tags、category 等这种不存在对应的 markdown 文件, 可以配置在全局配置 _config.yml 中: 123456alias: # 访问 https://zahui.fan/index.html 跳转到 https://zahui.fan/ index.html: / # 访问...