拓扑
环境说明
1234567Centos7.9 root密码皆为110.163.2.100 master10.163.2.138 zabbix-server 10.163.2.139 zabbix-agent10.163.2.140 zabbix-agent2salt 3006LTSzabbix 5
参考步骤:Zabbix5.0安装与部署 · Akemi
环境准备1234567891011121314echo "10.163.2.138 zabbix-server 10.163.2.139 zabbix-agent10.163.2.140 zabbix-agent210....
pillar是一个定义在全局的变量,并且可以分发给指定的minion,有点像group_vars和host_vars
与之相对的,grains就是局部的变量,但grains的特性就导致不适合存放敏感数据
安全性:敏感数据(如密码、密钥、API令牌)不能写在所有Minion都能看到的State文件里。
针对性:不同的Minion(服务器)需要不同的配置。例如,Web服务器需要数据库的连接地址,而数据库服务器本身不需要这个信息。
灵活性:将数据与配置逻辑(State状态文件)分离,使States更通用,数据管理更灵活。
定义pillar变量与salt状态文件使用方法类似,都需要在配置文件...
grains和ansible的facts变量差不多,但facts是ansible管理节点动态收集的信息
而grains是记录在minion本地的静态信息,会被minion定期收集,master可以随时收集grains信息,以key-value的形式存放
grains模块的用法123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384...
后面改名叫配置管理了,但是还是感觉状态管理更好理解。和playbook比较像
远程执行可以节省时间,但是有一些缺点,各个命令之间有一些细微的区别,这些区别会导致,如果将远程执行的命令写成脚本,那就会存在很多问题
状态管理介绍为了解决上面这个问题,salt可以创建一个可以重用的配置模板,将其称为state
状态文件的存放位置,取决于配置文件
1234567891011121314/etc/salt/master...file_roots: base: - /srv/salt/base dev: - /srv/salt/dev prod: - /srv/salt/pr...
salt的在命令行输入的命令都是salt的远程执行模块,也就是一次性远程执行的方法ad-hoc,主要用于临时故障排除、一次性任务、实时查询
在ansible中,ansible的ad-hoc与playbook实际上使用的模块是同一种东西,两种不同的使用方式
salt不一样,salt的执行模块实际上是执行一个动作这样的一次性操作
而“状态模块”是希望其能够保持某种最终的状态,所以这里将常用模块和执行模块放到一块
特性
远程执行模块 (Execution Modules)
状态模块 (State Modules)
哲学
命令式 (Imperative):如何做?“现在就做这件事!”...
OpenELB是国内青云开源的一个负载均衡器,也是CNCF的沙箱项目,其实和MetalLB
但相比于MetalLB,OpenELB更适合生产环境
支持功能
BGP/Layer2两种模式的负载均衡
基于路由器ECMP的负载均衡
IP地址池管理
使用CRD进行BGP配置
直接部署
Installation | OpenELB
12345678910111213141516171819202122232425262728293031323334搞个最新版的wget https://raw.githubusercontent.com/openelb/openelb/master/d...
MetalLB是一个开源的负载均衡器,为私有云环境中的k8s集群设计。使用标准网络协议来实现外部流量的负载均衡,使k8s可以跟像公有云环境一样使用loadbalancer类型的service。MetalLB也是CNCF的沙盒项目
Installation :: MetalLB, bare metal load-balancer for Kubernetes
这种方法的下位替代就是做haproxy+NodePort,也可以起到负载均衡的作用
工作模式
分配一个地址池,从地址池中拿IP分配给LB service
分配地址后使用Layer2/BGP模式
L2模式直接使用ARP和N...
github地址https://github.com/ceph/ceph-csi/tree/release-v3.9可以通过github查看其支持的版本
ceph版本选择v3.9,因为我的k8s集群是v1.27参考文档https://github.com/ceph/ceph-csi/blob/release-v3.9/docs/deploy-rbd.md
准备 Ceph 配置和密钥:将你的 Ceph 集群信息(monitor 地址、keyring)转换为 Kubernetes 可用的 Secret 和 ConfigMap。
部署 RBAC 资源:为 Ceph-CSI 组件创建必要的服务...
这是对上一版部署的优化
上次使用的是docker,但cephadm其实默认使用的是podman,只配docker没用,podman就很容易在拉取镜像时卡住
这次尝试了docker/podman+镜像加速/代理,还是使用了podman+镜像加速的方式
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485...
接上回,刚用kubespray部署了个多master的集群,现在用haproxy+keepalive的方式做个高可用,顺便整理成ansible的形式
整体的流程,就是客户端 → VIP (10.163.2.150:6444) → 当前主节点的 HAProxy → 某个 master 节点的 kube-apiserver
本文所有配置文件都是用简化写法,为的是方便,完全可以进行扩充,或者使用j2模板的形式
keepalive配置1234567891011121314151617181920212223242526272829303132333435363738394041424344454...