在使用kubespray安装k8s时,k8s安装过程中会自动将域名解析信息写入/etc/resolv.conf
但如果使用较新版本的ubuntu安装,由于ubuntu的dns解析是通过systemd-resolved管理的,会导致使用hostNetwork模式的pod无法通过k8s集群内部域名,比如mysql-headless.prod.svc.cluster.local:8080这样的方式来访问服务
因为
同样的,也有一些类RHEL的系统就算不使用systemd-resolved,也会使用NetworkManager来管理dns解析
所以这篇就记录下如何修改dns,...
利用SSH加密隧道,将原本不安全的网络通信封装起来,安全地穿过不可信任的网络(如互联网),实现对特定网络服务的访问或代理。
特性
本地端口转发 (-L)
远程端口转发 (-R)
动态端口转发 (-D)
命令发起端
本地客户端
本地客户端(通常在内网)
本地客户端
转发方向
本地 -> 远程网络
远程 -> 本地网络
本地 -> 任意远程
绑定目标
固定的单一目标主机和端口
固定的单一目标主机和端口
动态的,不固定目标
本质
端口映射
端口映射
SOCKS代理服务器
适用场景
从外访问内网特定服务
内网穿透,暴露本地服务
全局代理,加密所有流量...
集中认证服务器的类型
基于LDAP的集中认证系统LDAP是一种常用的集中认证方式,将信息存储在LDAP目录中,具有层次化结构,便于组织和管理大量用户数据
基于kerberos的集中认证系统kerberos是一种网络认证协议,使用票据来验证用户身份,有一个专门的kerberos服务器负责颁发和管理票据
基于OAuth或OpenID Connect的集中认证系统(互联网APP常用)用于互联网应用和云服务中的身份认证与授权。OAuth允许用户授权第三方应用访问其在另一个服务提供商上的资源OpenID Connect在OAuth基础上,提供了简单的身份验证机制
1234567891011121...
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...