TigerVNC 在 RHEL9 的安装和配置
安装 VNC 步骤记录初始化系统, 安装图形化. ( 我还安装的 虚拟化宿主机, 我需要所以就安装了. 12345678910111213141516171819# 更新系统软件包到最新sudo dnf update -y# 查看哪些可用的 Group, (方便sudo dnf grouplist# 安装 Server GUIsudo dnf groupinstall -y "Server with GUI"# 安装 KVM (按需sudo dnf groupinstall -y "Virtualization Host"# 安装 TigerVNC 服务sudo dnf install -y tigervnc-server# 关闭 SElinuxsudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config# 可以重启 或者 设置为 Permissivesudo setenforce 0# 关闭防火墙.sudo systemctl stop...
MySQL 计算内存用量
对于 MySQL,可以按以下示例计算 RDS for MySQL 数据库实例的大致内存使用量:Maximum MySQL Memory Usage = innodb_buffer_pool_size + key_buffer_size + ((read_buffer_size + read_rnd_buffer_size + sort_buffer_size + join_buffer_size) * max_connections) From repost: https://repost.aws/zh-Hans/knowledge-center/low-freeable-memory-rds-mysql-mariadb From MySQL Offical:5.7 https://dev.mysql.com/doc/refman/5.7/en/memory-use.html8.0 https://dev.mysql.com/doc/refman/8.0/en/memory-use.html 存储引擎的说明:https://dev.mysql.com/doc/ref...
SElinux问题排查
https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/9/html/using_selinux/analyzing-an-already-found-selinux-denial_troubleshooting-problems-related-to-selinux安装相关软件. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647root@ip-172-31-54-198:/var/mnt/docker_root# rpm-ostree install policycoreutils-python-utils setroubleshoot-serverChecking out tree 1873357... doneEnabled rpm-md repositories: fedora-cisco-openh264 updates fedora updates-archiv...
MySQL 主从复制
被问了一个数据库的问题, 主从复制需要 主库锁表 和 主库重启 吗? Setting Up Binary Log File Position Based Replication使用docker配置一遍, 测试一下记录了步骤, 有些东西还是 MySQL 的官方文档好用. 主库需要做的事情 需要有唯一的 server id. 这个可以设置 variables , 不需要重启. 12345678MySQL [(none)]> SHOW variables LIKE 'server_id';+---------------+-------+| Variable_name | Value |+---------------+-------+| server_id | 198 |+---------------+-------+1 row in set (0.001 sec) 创建一个用户用来让从库同步数据. 这个也不需要重启. 1234567891011121314151617181920212223242526272829303132333...
在 PVE 上使用 Ignition 文件启动 Fedora CoreOS
PVE 解决方案:https://forum.proxmox.com/threads/howto-startup-vm-using-an-ignition-file.63782/ CoreOS Butane Config Spec:https://coreos.github.io/butane/config-fcos-v1_5/ 之前使用使用了另一个方案 让 PVE coreos 可以直接使用 cloudinit 注入密钥。现在感觉也没有必要, 直接关闭 cloudinit 使用 ignition file 就可以了。 按照上面连接中的文档, 编辑 PVE VM 的配置文件, 将args 附加到QemuServer的配置文件里面即可。 1vim /etc/pve/qemu-server/101.conf 添加 args 的配置, 这个配置会直接被记录和传递给 qemu 。 1234567891011121314151617181920212223```shellagent: 1主要就是这一行, 直接添加这个就可以了args: -fw_cfg name=opt/com.coreo...
使用 Snapper 管理快照
Snapper是一个快照管理工具, 可以自动创建和定期清理文件系统快照. Snapper 默认配置文件在 etc/snapper/configs.日志在: /var/log/snapper.log 创建 Snapper 配置文件使用 Snapper 的方法是首先为需要自动快照的子卷创建snapper config. 12345# 创建快照snapper -c harbor_data create-config /mnt/btrfs/root/@harbor_data/# 列出所有配置snapper list-configs 管理快照Snapper 提供了自动管理快照的功能, 也可以手动管理. 通常的操作包括: 创建新的快照, 删除快照, 列出所有快照. 12345678910111213141516171819202122snapper -c harbor_data listType | # | Pre # | Date | User | Cleanup | Descriptio...
容器运行的NodeExporter出现异常的 CloseWait
1. 故障背景最近在对家里的 PVE(Proxmox VE)环境做功耗优化。为了省电,我通过 cpupower 命令限制了宿主机的 CPU 频率,并使用了节能模式。同时,为了防止监控组件占用过多资源,之前我已经在 NodeExporter 的 Docker 容器中配置了极低的 CPU 限制。 环境设置: 监控组件: NodeExporter (Docker 容器部署) -> Prometheus -> Grafana 宿主机功耗调整命令:12cpupower frequency-set -g powersavecpupower frequency-set -u 2GHz Docker 限制配置 (docker-compose.yml):1234deploy: resources: limits: cpus: '0.1' # 限制只使用 0.1 核 2. 问题现象晚上回家查看 Grafana 面板时,发现有三台 VM 的监控数据突然中断了(No Data)。 初步排查: 检查容器状态: 第一反应是 NodeExporter ...
Linux open()调用的理解
原本的问题最近看 OSTEP 的内容, 慢慢看, 搞了一点点代码, 还挺有意思的。一边写一边尝试回答后面的思考问题。 在自己的环境中发现程序会报错 read failed: Bad file descriptor. 2.编写一个打开文件的程序(使用 open()系统调用),然后调用 fork()创建一个新进程。 子进程和父进程都可以访问 open()返回的文件描述符吗?当它我并发(即同时)写入文件时, 会发生什么? 第一个版本的代码这第一个版本的代码是我提需求 Copilot 写的. 所以我并不理解其中的意思, 解释的也比较粗糙, 我即便提供给他报错的部分, 它还是坚信这个代码没有问题, 子进程可以访问父进程的文件描述符…… 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293...
Harbor 的升级记录
这次更新的目的是, 将原来的 LVM 切换成 btrfs (真香! 存储主要将两个部分迁移到 [[Linux_btrfs|btrfs]] 上。 docker daemon 的工作目录. harbor 的数据 日志和证书. 下载源代码从官方的项目下载这个版本的 offline 安装包.不用 online 的原因是 : online 还需要从 dockerhub 下载镜像, 国内实在一言难尽. https://github.com/goharbor/harbor/releases/tag/v2.9.4 12cd /opt/wget https://github.com/goharbor/harbor/releases/download/v2.9.4/harbor-offline-installer-v2.9.4.tgz 解压1tar zxvf ./harbor-offline-installer-v2.10.2.tgz 复制之前版本的配置文件1cp /opt/harbor-2.10.0/harbor.yml . 确认配置文件中的几个参数已经改为正确的路径, 其他位置不变: ...
GKE 专有集群创建BastionHost连接apiserver的方式
需求一个GKE集群使用了autopilot创建专有集群, 创建完成之后, 怎么在另一个VPC下的实例内使用 kubectl 管理集群.两个实例: instance-20240430-111240: 和 GKE 在相同的VPC内, 可以直接访问控制平面进行集群管理. instance-20240430-053004: 在另一个VPC内, 无法直接访问. 使用 Kubectl Proxy 直接暴露 Apiserver 端口 和GKE相同VPC内启动一个新的实例, 在实例中配置 kubectl 可以正常连接到控制平面. 使用 kubectl 命令创建 proxy 监听在本机的所有地址: 1root@instance-20240430-111240:~ kubectl proxy --address=0.0.0.0 --kubeconfig .kube/config --accept-hosts "^.*" & 在另一个VPC内的节点上, 使用kubectl 命令进行连接: 1root@instance-20240430-053004:~ ku...


