docker安装k8s 1.24+
12345678910111213141516171819202122232425262728293031323334# 正常安装Docker并配置sysstemd驱动,K8S前置条件基本不变除了Docker环节[root@master1 ~]# cat /etc/docker/daemon.json{ "exec-opts":["native.cgroupdriver=systemd"], "registry-mirrors": ["https://vrm5w46o.mirror.aliyuncs.com"], "insecure-registries": ["https://harbor.xiaowangc.local"]}# 下载cri-docker,我这里环境是CentOS8所以直接用rpm安装cri-docker地址: https://github.com/Mirantis/cri-dockerd ...
Linux开启IP路由
Linux开启IP路由1234567891011121314# 永久生效[root@xiaowangc ~]# vi /etc/sysctl.confnet.ipv4.ip_forward = 1[root@xiaowangc ~]# sysctl -p# 临时生效[root@xiaowangc ~]# echo "1" > /proc/sys/net/ipv4/ip_forward# 查看是否开启IP路由[root@xiaowangc ~]# cat /proc/sys/net/ipv4/ip_forward# 开启Nat[root@xiaowangc ~]# iptables -t nat -A POSTROUTING -s $(内部网段) -j SNAT --to $(本机出口地址)[root@xiaowangc ~]# iptables -t nat -A POSTROUTING -s 192.168.64.0/24 -j SNAT --to 172.16.1.1
Kubernetes网络策略
概念网络策略在kubernetes集群中可以使用网络策略(NetworkPolicy)对Pod的IP或端口进行网络流量控制,NetworkPolicy是一种以应用为中心的结构,允许Pod与网络上的各类实体通信,NetworkPolicies适用于一端或者两端与Pod的连接,与其他连接无关
Pod是通过如下三个标识符的组合来辨识的:
被允许的Pods
被允许的名称空间
IP组
隔离类型Pod有两种隔离:
出口隔离
入口隔离
默认情况下,一个Pod的出口是非隔离的,所有向外的连接都是被允许的。如果有网络策略选择改Pod并在其policyTypes中包含了Egress,则改Pod的出口是隔离的;这样的策略适用于该Pod的出口,当Pod的出口被隔离时,则Pod的连接必须符合NetworkPolicy中的egress的策略,egress列表中的策略效果是相加的
Ingress同理,Pod的入口是非隔离的,所有向内的连接都是被允许的。如果有网络策略选择改Pod并在其policyTypes中包含了Ingress,则改Pod的入口是隔离的;这样的策略适用于该Pod的入口,当Pod的入口被隔离时 ...
Prometheus-PromQL
理解时间序列通过Node Exporter暴露的HTTP服务,Prometheus可以采集到当前主机所有监控指标的样本数据。例如:
123456# HELP node_cpu Seconds the cpus spent in each mode.# TYPE node_cpu counternode_cpu{cpu="cpu0",mode="idle"} 362812.7890625# HELP node_load1 1m load average.# TYPE node_load1 gaugenode_load1 3.0703125
其中非#开头的每一行表示当前Node Exporter采集到的一个监控样本:node_cpu和node_load1表明了当前指标的名称、大括号中的标签则反映了当前样本的一些特征和维度、浮点数则是该监控样本的具体值。
样本Prometheus会将所有采集到的样本数据以时间序列(time-series)的方式保存在内存数据库中,并且定时保存到硬盘上。time-series是按照时间戳和值的序列顺 ...
AWT is not properly configured on this server.
错误:AWT is not properly configured on this server.
1yum -y install fontconfig
错误:Nov 08, 2022 10:29:14 AM executable.Main verifyJavaVersionSEVERE: Running with Java class version 52, which is older than the Minimum required version 55. See https://jenkins.io/redirect/java-support/java.lang.UnsupportedClassVersionError: 52.0 at executable.Main.verifyJavaVersion(Main.java:145) at executable.Main.main(Main.java:109)
Jenkins requires Java versions [17, 11] but you are running with Java ...
Linux-Shell基础
Shell基础Bash注释
Bash只支持单行注释,使用#开头的都被当作注释语句
123# 单行注释echo "Hello World" #注释
通过Bash特性,可以实现多行注释
12345678:'注释': <<'EOF'注释EOF
Bash基本数据类型
Bash中基本数据类型只有字符串类型,连数值类型都没有
123# 都是字符串类型,可用declare -i声明为数值类型[root@localhost ~]# echo hello[root@localhost ~]# echo 123
Bash字符串串联
Bash中字符串的串联操作,可用将两段数据连接在一起
123[root@localhost ~]# echo xiaowang xiaowangcxiaowang xiaowangc[root@localhost ~]#
变量赋值和引用变量1234[root@localhost ~]# a=xiaowangc[root@localhost ~]# echo $axiaowangc[root@lo ...
个人生成的Docker镜像
LNMP123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142FROM centos:centos7.9.2009MAINTAINER xiaowangc<780312916@qq.com>COPY my.cnf /etc/my.cnfRUN rm -rf /etc/yum.repos.d/* && \ curl -o /etc/yum.repos.d/CentOS-Base.re ...
Redis单机数据迁移
Redis单机数据持久化迁移注意RDB和AOF加载流程停止 Redis,关闭 AOF 持久化,保留 RDB 持久化,防止启动时生成 appendonly.aof 文件;拷贝 RDB 文件到数据目录,启动 Redis,启动后 Redis 会使用 RDB 文件恢复数据;确认数据恢复,在命令行热修改配置开启 AOF 持久化 config set appendonly yes;等待 Redis 将内存中的数据写入 appendonly.aof 文件,此时 RDB 和 AOF 数据已同步;停止 Redis,修改配置文件开启 AOF 持久化和 RDB 持久化;启动 Redis,数据恢复和持久化配置完成。
LVM实现数据一致性备份迁移
LVM介绍基础算了,主要也不是讲LVM的操作,不介绍了….
快照LVM快照机制,基于写时复制技术实现对数据进行备份/镜像,这比传统的备份技术效率要高,创建快照无需停止服务即可对数据进行备份/镜像
一般情况下,不停止服务或停机的情况下对数据进行备份,由于不停机整个数据块的内容是时时变化的,那么数据是存在不一致性的。不一致的数据备份没有任何价值,目前在LVM2中引入了基于软件实现快照的技术,几乎是零成本,但效果明显;
LVM快照是基于存储级别而不是文件级别,由于采用CoW技术,所以创建逻辑卷的快照时间几乎为0,这可以保证快照数据一致性至关重要,此时系统总存在两份数据,一份是源数据,一份是快照数据
COWCopy-on-Write(COW),写时复制技术
当LVM创建快照的一瞬间,系统会记录那个时间点LV的数据块和状态等信息。当快照创建之后没有发生数据的修改,源数据和快照数据是共享的,也就是此时此刻的数据在存储中只有一份。当进程对文件进行增/改/删操作时,系统会先把原来的数据块Copy到快照中,然后再写入源数据块。此后再对这个已经修改的源数据块进行修改 ...
Linux基于legacy(BIOS)引导过程
引导过程开机自检(BISO初始化以及自检)——>MBR引导——>GRUB菜单——>加载内核Kernel——>init进程初始化
开机自检
主机开机之后根据BIOS中的设置对CPU、内存、显卡、键鼠标等设备进行初步检测,检测成功后根据预设的磁盘引导顺序移交系统控制权。(检测设备以及检测出能够引导系统的设备)
MBR引导
当从本地存储设备中启动系统时,首先根据硬盘第一个扇区(512B,常见大小)中的MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录的引导信息调用启动菜单如GRUB
GRUB菜单
对于Linux操作系统来说,GRUB是使用最广泛的多系统引导器程序。系统控制器权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核(CentOS7采用的是GRUB2启动引导器,通过读取GRUB的配置文件,获取内核和镜像文件系统的设置和路径位置)
加载内核
Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与 ...