BLS是linux内核社区推出的一套标准化引导加载器配置规范,旨在统一不同linux发行版本的启动配置管理方式
在之前各个发型版本的grub文件夹都不尽相同,并且由脚本生成,管理复杂;每次更新配置文件,需要手动执行grub-mkconfig;支持加密启动配置
配置文件位于/boot/loader/entries/,每个conf都是一个模式,在系统启动时进行加载
123456789101112131415161718192021222324252627282930313233343536ls /boot/loader/entries/87db439b...
kubespray在2.28版本新增了支持纯ipv6的特性这个ipv6的ceph集群还有点问题,image无法正常映射,之后再研究
环境说明
123456789101112131415161718192021222324管理网络: 10.163.2.0/24 (eth0)k8s集群网络: 1::0/64 (eth1)k8s存储网络/ceph集群网络: 2::0/64 (eth2)k8s VIP 1::100/6410.163.2.143 1::20/64 ansible (k8s客户端机)10.163.2.102 1::1/64 2::1/64 master110.163.2.101 ...
这是有网络的情况下,如果离线环境下则需要准备对应版本的deb包手动安装
ubuntu 20.04 LTSdocker 1.28containerd 1.17k8s v1.28calico 3.28.4
环境初始化与集群部署
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596# ...
拓扑
环境说明
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...