使用keepalived完成LVS高可用
有了 keepalived 可以不用执行 ipvsadm 了, 并且可以实现自动剔除节点,还可以两台 Director 做高可用。 手动配置 LVS 请看 内核级负载均衡 LVS DR模式 部署记录 另见:使用Keepalived来实现Nginx高可用 规划: 机器 IP VIP 10.0.0.8 director 10.0.0.40 realserver1 10.0.0.42 realserver2 10.0.0.43 网卡 interface eth0 单台 Director Serverkeepalived 配置: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950vrrp_sync_group GOP { group { VI_PRI_CONNECT VI_PRI_AUTH }}vrrp_instance...
Containerd的管理工具
如果你对 Docker 命令比较熟悉, 可以考虑使用 nerdctl 来管理 containerd,和 docker 命令类似:https://github.com/containerd/nerdctl 命令对比 命令 docker crictl(推荐) ctr 查看容器列表 docker ps crictl ps ctr -n k8s.io c ls 查看容器详情 docker inspect crictl inspect ctr -n k8s.io c info 查看容器日志 docker logs crictl logs 无 容器内执行命令 docker exec crictl exec 无 挂载容器 docker attach crictl attach 无 容器资源使用 docker stats crictl stats 无 创建容器 docker create crictl create ctr -n k8s.io c create 启动容器 docker start crictl start ctr -n k8s.io...
Iptables进行持久化配置,重启不丢失
操作文档针对 ubuntu20 和 centos 系统,其他系统类似。iptables-save 命令其实只是把配置文件打印出来,并不会真的 save,这个有点容易让人误解。 针对 ubuntu 平台ubuntu20 需要安装 iptables-persistent 才能实现持久化 1apt install iptables-persistent 持久化的配置文件保存在 12345# 针对ipv4/etc/iptables/rules.v4# 针对ipv6/etc/iptables/rules.v6 手动保存当前配置 12345# 针对ipv4sudo iptables-save > /etc/iptables/rules.v4# 针对ipv6sudo ip6tables-save > /etc/iptables/rules.v6 针对 centos 平台安装包 iptables-services 1sudo dnf install...
iptables使用记录实战
iptables 四表五链四表五链:链就是位置:共有五个 进路由 (PREROUTING)、进系统 (INPUT) 、转发 (FORWARD)、出系统 (OUTPUT)、出路由 (POSTROUTING);表就是存储的规则;数据包到了该链处,会去对应表中查询设置的规则,然后决定是否放行、丢弃、转发还是修改等等操作。 具体的四表 表 说明 filter 过滤数据包 Nat 用于网络地址转换(IP、端口) Mangle 修改数据包的服务类型、TTL、并且可以配置路由实现...
hexo博客添加自定义html页面
比如我想增加一个文件夹,文件夹里面有 img、css、js 等文件夹,还有 index.html 文件,想要在 hexo 博客里可以正常显示 将 文件夹 放到 hexo 的 source 文件夹下。 然后需要配置跳过 hexo 的渲染,因为 hexo 会改变 html 文件的结构。 修改 _config.yml 1234skip_render: # 这里排除的是 source 目录下不需要渲染的文件 - '**/README.md' - 'html/*' 后续可以通过访问 http://xxx.com/html/ 来打开页面 需要注意 js css html 等文件调用的地址有可能需要更换。
编译安装MySQL5.7
编译需要耗时,且对系统的依赖更为复杂,更容易出错, 如果没有必要,可以参考使用 二进制安装MySQL5.7 安装编译依赖Ubuntu和DebianCentOS和Fedora1sudo apt-get install -y build-essential cmake libaio-dev libncurses5-dev pkg-config1sudo yum -y install zlib-devel openssl-devel libaio-devel ncurses-devel cmake gcc-c++ 编译设置安装路径12export BASE_DIR="/usr/local/mysql"export DATA_DIR="/data/mysql" 准备工作1234wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.38.tar.gztar xf mysql-boost-5.7.38.tar.gz && cd mysql-5.7.38[[...
Prometheus手动打标签
有时候需要给 Prometheus 打标签,比如说联邦集群接入,需要知道是哪个集群,remote write 写入的时候也需要做个标记。 直接在集群打标签vim prometheus.yml 12345678910global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). external_labels: env: uat dept: ops project: xxx... 这样就可以给集群内的所有 metrics...
基于VictoriaMetrics的大规模监控实战
victoriametrics 原生支持水平扩展,并且大部分兼容 Prometheus 语法,官方文档地址:https://docs.victoriametrics.com/ 这个是 victoriametrics 官方的集群架构 我公司用到的集群架构 目前用到 3 台机器 IP 部署的服务 10.0.0.21 vmauth、vmselect、vminsert、vmstorage、vmalert 10.0.0.22 vmselect、vminsert、vmstorage 10.0.0.23 vmselect、vminsert、vmstorage vmstorage首先需要把存储部署上,多个存储之间数据是不同步的,也就是说所有的 storege 组件之间是感知不到彼此的。通过 vmselect 和 vminsert 采用一致性 hash 算法来确定读取/写入哪台节点。 vmstorage 启动命令 12345678./vmstorage-prod -httpListenAddr "0.0.0.0:8482" \ #...
使用Keepalived来实现Nginx高可用
公有云不会考虑这些,不过自建机房,使用 nginx 做入口,keepalived 是唯一的选择。 节点 IP keepalived 主 10.0.0.45 keepalived 备 10.0.0.44 vip 10.0.0.46 组播模式keepalived1keepalived2123456789101112131415161718192021222324252627282930313233global_defs { script_user root # 脚本执行者 enable_script_security # 标记脚本安全}vrrp_script check_script { script "killall -0 nginx" # 脚本路径, 返回值为0则正常,不为0认为不正常 # 可替代的命令: # /usr/sbin/pidof nginx 这个命令不推荐, 多个进程pid会出问题 #...
Prometheus通过remote_write写入数据到另一台Prometheus
假设 Prometheus1 是一个集群内的 Prometheus,需要远程写入数据到 Prometheus_Core Prometheus_Core 开启 remote_write_receiverPrometheus_Core 需要打开接收远程写入的功能,通过增加启动参数 --web.enable-remote-write-receiver: 1./prometheus --web.enable-remote-write-receiver --web.config.file=web.yml --web.listen-address=0.0.0.0:9090 远程写的接口地址 /api/v1/write Prometheus_Core 开启认证参考 Prometheus开启basic_auth认证 Prometheus1 配置 remote_writePrometheus1 需要将 remote_write 写入到 Prometheus_Core 的远程接口 12345678910111213141516remote_write:- url:...