自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 收藏
  • 关注

原创 一主双从redis+哨兵模式以及通过Ansible+Shell快速部署redis哨兵模式

一.主redis配置1.解压并进行编译安装2.为redis创建软链接和service管理方便启动3.修改redis的配置文件二.配置备redis三.主redis上查看集群状态1.主redis登录上去查看状态并且创建数据用于验证同步性2.备redis查看数据是否同步过来四.模拟测试1.主redis宕机时2.备redis宕机时五.redis哨兵1.配置sentinel.conf文件2.运行sentinel.conf文件3.查看进程是否起来了4.三台设备

2024-04-22 22:43:44 944

原创 Zabbix5部署并添加主机

一.准备数据库服务1.下载进入mysql2.创建zabbix用户和权限3.引入初始数据库二.部署zabbix-server1.下载软件2.为zabbix配置数据库3.配置前端和php4.修改本设备的Server、ServerActive、Hostname(选做)三.浏览器测试1.填写注册信息2.登录四.手动添加主机1.主机配置2.页面操作五.为主机添加监控项1.本步骤完成后的样式2.查看资源表

2024-04-13 21:39:18 492

原创 keepalived2.2.8+drbd9+nfs高可用存储部署

关机状态下进行(开机状态下新增后需要重启)如果没有特殊名称要求,直接都点下一步即可,两台设备都做。备keepalived+drbd:192.168.2.133(serverc)主keepalived+drbd:192.168.2.130(main)初始化过程在9版本用watch drbdadm status 资源名称看。刚安装完成两台设备应该都是secondary,主备手动升级身份。先在主备降级并卸载后到备设备升级挂载。

2024-04-11 17:02:44 422

原创 keepalived2.2.8以及keepalived+LVS高可用部署

(3)节点执行lvs-dr脚本服务,来进行绑定VIP和添加通信路由,这步可以手动做,参考前面lvs-dr集群的文章。节点131上httpd服务掉点,具体可以通过watch ipvsadm -Ln来查看节点剔除和恢复过程。如下是两台设备都要做的,所以设备hostname有所不同但不影响。此时VIP备绑定去备设备上了,访问到的内容也变为nihao。(2)主设备服务器断开、keepalived服务失效。(1)VIP分配在主设备时,访问到hell。(4)主设备上查看VIP是否创建成功。百度网盘 请输入提取码。

2024-03-30 15:53:13 720

原创 Haproxy2.8.1+Lua5.1.4部署,haproxy.cfg配置文件详解和演示

默认的调度算法,基于权重的轮询动态调度算法,支持权重的运行时调整,roundrobin支持慢启动(新加的服务器会逐渐增加转发数),其每个后端backend中最多支持4095个real server,支持对real server权重动态调整。基于随机数作为一致性hash的key,随机负载平衡对于大型服务器场或经常添加或删除服务器非常有用,支持weight的动态调整,weight较大的主机有更大概率获取新请求。,由于设置了用户认证,所以需要先登录才能查看,监控页面的刷新间隔可以自己在配置文件中调整。

2024-03-25 22:00:26 979

原创 LVS-DR集群构建脚本

这一步操作可以将此脚本保存到主节点上,通过ansible的copy、shell、service模块等传到各个节点上应用即可。

2024-03-25 02:30:00 275

原创 构建Helm chart和chart使用管道与函数简介

上一篇文章说到,我们可以通过helm将众多已经初步配置好的yaml文件下载来整合使用,甚至还可以自己定义好需要的安装参数用于下载完成后直接使用而不需要过多更改,现在仍然可以在这些功能上继续推进。

2024-03-18 21:16:26 405 1

原创 Helm的资源安装和基本使用

Usage:​completion 为指定的shell生成自动补全脚本create 创建一个指定了名称的chartdependency 管理chart依赖env Helm客户端环境信息get 下载release,可接all、hooks、manifest、notes、valuesall-获取所有已安装的release的信息。名称、状态、版本等hooks-获取指定 release 的 pre-install、post-install、pre-delete 和 post-delete 钩子的信息。

2024-03-17 15:35:54 714

原创 k8s安全控制、授权管理介绍

两者最终都是面向kubernetes的单独位于kubernetes外的用户账号kubernetes管理账号,为pod中的服务进程在访问kubernete时提供身份标识我是以kubeadm安装的kubernetes,主要是用到rbac的角色访问控制。

2024-03-09 23:13:45 1287 3

原创 k8s中storageClass存储介绍

Kubernetes根据用户提交的PVC请求,找到一个对应的StorageClass, Kubernetes就会调用该StorageClass声明的存储插件,创建出需要的PV供存储使用。创建出来的PV时以namespace-pvcname-pvname的格式存储于NFS共享目录中,PV被回收时会被标记为archived-namespace-pvcname-pvname。链接:https://pan.baidu.com/s/1u9zxreO-qHniowfkptV4QQ。(2)Pod创建和删除测试。

2024-03-09 15:11:06 890

原创 k8s中的PV和PVC存储介绍

称为持久化卷,是对底层的共享存储的一种抽象。一般情况下PV由 kubernetes管理员进行创建和配置,关联于底层具体的共享存储技术,并通过插件完成与共享存储的对接。持久卷声明,是用户对于存储需求的一种声明。用户向kubernetes系统发出的一种资源需求申请(可以是访问模式,存储空间,存储类别的需求),kubernetes再进一步去申请PV。

2024-03-07 21:29:44 1194

原创 记一次busybox-mountPath简单但容易忽略的问题open /proc/self/fd: no such file or directory

Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error closing exec fds: open /proc/self/fd: no such file or directory: unknown

2024-03-07 20:41:27 308

原创 Ansible+Shell+Containerd部署k8s

Ansible+Shell部署K8s,以下各部分脚本和剧本分开书写(便于理解),如有需要可以自行修改合并执行,代码篇幅较长,需要仔细修改自己的主机参数等。

2024-02-20 13:59:55 706 1

原创 Linux普通权限、特殊权限、扩展权限和Umask值介绍

针对于属主、属组、其他人三个对象定义了三个基本字段的权限(1)属主owner简写为u(2)属组group简写为g(3)其他人other简写为o。

2023-12-27 23:01:14 1132

原创 SElinux工作原理简介并演示chcon、semanage、restorecon的使用方法

通过mac方式管理进程,管理的目标是进程是否具有读取权限的文件(文件、目录、端口等),要使得进程和目标的安全上下文一致才能够顺利访问到资源(还要受文件资源的RWX等权限影响)。#如下是我160主机的httpd的html目录的安全上下文内容,以ls -Z来查看,其中有4个字段,稍后作解释total 0。

2023-12-27 14:35:34 1387

原创 k8s中ConfigMap、Secret创建使用演示、配置文件存储介绍

在Kubernetes中,ConfigMap是一种用于存储配置数据的对象,它提供了一种将配置数据与容器分离的方式,使得容器的配置可以独立于容器镜像进行管理和修改。将配置信息存储在Secret中,可以将容器镜像与配置数据分离,并在部署时注入到容器中,从而使容器的配置更加灵活和安全。这些证书可以被挂载到Pod中,并用于与其他服务进行安全的HTTPS通信。(2)多个容器共享配置数据:将多个容器所需的公共配置数据存储到ConfigMap中,从而避免了重复存储和管理配置数据的问题,同时也方便了对配置的修改和更新。

2023-12-17 14:06:43 1141

原创 k8s中EmptyDir、HostPath、NFS三种基本存储方式介绍

在此前我们所看到的service、pod等的演示实验中的其资源经常被删除重建,数据经常清除,那么我们需要一个东西去解决持久化保存容器数据的问题。Volume创建出来是Pod中能够被多个容器访问的共享目录,它被定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下,k8s通过Volume实现在同一个Pod中不同容器之间的数据共享以及数据的持久化存储。

2023-12-13 22:14:26 1233

原创 体验感极好,docker爱好者福音,1Panel服务器运维管理面板使用引导功能介绍

1Panel是一个用于 Linux 服务器运维管理的面板,是一个管理和监控服务器的开源工具,它提供了一个用户友好的 Web图形化界面,它简化了服务器管理和监控的过程,将应用跑在docker里,对于docker爱好者可谓福音,为系统管理员和运维人员提供了更好的工作体验。无论是个人项目还是企业应用,1Panel 都可以帮助你更高效地管理和监控服务器。这里就可以看见该设备的系统信息、cpu和内存波动状态注意:首次登录成功,后面就直接使用IP+端口就登录,有条件的还可以在阿里云购买个域名,更方便记。

2023-12-12 12:35:14 3071

原创 ingress介绍和ingress通过LoadBalancer暴露服务配置

工作原理了类似于nginx,等于是在ingress里建立许多规则,在通过controller监听规则变化,生成对应的配置,实现对服务的反向代理配置,为外部提供服务,并动态更新。如果要把ingress部署在公有云,那用这种方式比较合适。用Deployment部署ingress-controller,创建一个type为 LoadBalancer的 service关联这组pod。公有云为LoadBalancer的 service自动创建一个负载均衡器,这时把域名解析指向地址,就实现了集群服务的对外暴露。

2023-12-07 21:35:17 1822

原创 LoadBalancer将服务暴露到外部实现负载均衡metallb-layer2模式配置介绍

MetalLB(Metal Load Balancer)是 Kubernetes 中一个开源的负载均衡器,它通过为 Kubernetes 集群中的服务分配外部 IP 地址,将流量从集群中的 Pod 重定向到合适的服务上。相比于 Kubernetes 默认的负载均衡机制,MetalLB 提供了更加灵活和可定制的负载均衡方案。MetalLB旨在通过提供网络负载均衡器来纠正不平衡实现与标准网络设备集成,尽可能器保障裸机集群上的外部服务也同样“正常工作”。

2023-12-05 22:28:25 1513

原创 LoadBalancer将服务暴露到外部实现负载均衡purelb-layer2模式配置介绍

PureLB是一种负载均衡器,它的工作原理主要是用于在网络中分发和管理传入的请求,以便将请求有效地分配给后端服务。

2023-12-04 22:01:45 1443

原创 LoadBalancer将服务暴露到外部实现负载均衡Openelb-layer2模式配置介绍

OpenELB是一个开源的企业级负载均衡器,它为 Kubernetes 集群提供了强大的负载均衡功能。OpenELB 通过与 Kubernetes API 交互来获取服务和端点信息,并与 Kubernetes的内部组件(如 etcd)进行通信,以获取集群状态信息。这使得 OpenELB 能够动态地感知到整个集群的状态和服务变化。他可以根据 Kubernetes 中服务和端点的变化动态地更新负载均衡策略,确保流量(VIP流量)能够按照需求正确地路由到后端 Pod。之后的文章会讲述几类负载均衡器如何使用。

2023-12-04 21:54:37 2075

原创 k8s中Service负载均衡和Service类型介绍

之前我们讲到的pod创建,里面有服务需要被集群内部访问或被外界访问,这样情况我们就需要借助service来为应用提供统一入口地址,他主要提供网络服务,将请求按负载均衡算法分发到各个容器。在访问时,pod的IP地址时会变化的,显然在pod提供稳定服务时不能通过IP地址去访问。

2023-12-02 20:13:27 1323

原创 k8s中批量处理Pod应用的Job和CronJob控制器、处理守护型pod的DaemonSet控制器介绍

他主要是用于批量地去执行一次性任务,确保在pod上让指定的任务能够正确完成,我们可以在配置中指定期望其完成的数量,执行成功后会记录下成功的数量,执行完成后pod会标识为completed(该pod的主进程已经完成并退出)。他是在借助Job的情况下,按照指定的时间节点去循环重复执行任务。在 CronJob 对象中定义时间表(schedule),该时间表指定了作业运行的时间间隔或特定的运行时间。

2023-11-29 23:00:05 1173

原创 k8s中Pod控制器简介,三种处理无状态pod应用ReplicaSet、Deployment、HPA控制器、处理有状态pod应用StatefulSet控制器介绍

(1)之前我们提到kubernetes的最小管理单元室pod,也讲到过有自主式pod和控制器管理pod(推荐)两种。pod控制器结余用户管理和pod中间,利用pod控制器来告知pod自己的期望需求,同时还包含有编排pod的多种策略。这里我们主要介绍ReplicaSet(无状态)、Deployment(无状态)、Horizontal Pod Autoscaler(通常无状态)、DaemonSet(守护型)、Job(批处理)、Cronjob(批处理)、StatefulSet(有状态)七个控制器。

2023-11-28 10:27:55 1252

原创 k8s上Pod全自动调度、定向调度、亲和性调度、污点和容忍调度详解

默认情况下,Pod调度到哪个节点都是右Scheduler组件进行调度,对于在工作和学习中需要指定设备运行特定pod时就显得不实用,此时我们家就需要合理利用几个调度规则,主要包括全自动调度、定向调度、亲和性调度、污点调度、容忍调度等主要功能是自动部署一个容器的多个副本,以来持续保持使用者指定的副本数量(replicas)

2023-11-24 13:25:41 1451

原创 k8s上Pod生命周期、重启策略、容器探测简介

主要是设置来感知生命周期事件,在特定的周期阶段执行用户特定的操作,又分为启动后(post start,指容器创建之后就执行的部分,此处执行失败会重启容器)和结束前(pre stop,指容器终止运行之前执行的部分,此处执行失败会导致删除容器失败)两种。钩子函数定义方式。

2023-11-18 16:46:47 916 1

原创 k8s关于pod的metadata、spec.containers、spec.volumes的属性介绍(yaml格式)

一.metadata常用属性二.spec.containers子属性介绍explain pod.spec.containers给出的参考1.command示例2.env和envFrom示例3.ports部分详解4.resources部分详解5.startupProbe格式6.terminationMessagePath和terminationMessagePolicy格式7.volumeDevices格式8.volumeMounts格式三.spec.volumes子属性介绍

2023-11-12 22:14:30 1315

原创 k8s上对Pod的管理部分详解

pod中包含若干个容器,大体可以分为两大类主要通过yaml/json文件或kubectl run创建pod,但是pod的形式又可以分为两大类​#可以以此形式来一层一层获取可配置项#必选项,版本号,如V1kind: Pod#必选项,资源类型,pod等metadata:#必选项,元数据部分name: xxx#Pod名称#Pod所属的命名空间,默认为"default"labels:#自定义标签列表#自定义标签内容spec:#必选项,Pod中容器的详细定义#必选项,Pod中容器列表。

2023-11-11 18:57:25 455 1

原创 k8s中label标签、deployment控制器、service、ipvs管理简介

一.label管理1.label的作用和特点2.标签的查询和筛选(1)等式型(2)集合型3.命令行打标签用法示例(1)为资源对象添加多个标签(2)更该原有标签(3)删除标签4.配置文件打标签用法示例二.deployment控制器1.pod控制器简介2.deployment控制器三.service管理1.kubernetes内部可访问的service2.kubernetes外部可访问的service3.删除service四.ipvs管理

2023-10-30 20:37:25 518

原创 k8s中kubectl命令式对象、命令式对象配置、声明式对象配置管理资源介绍

一.kubernetes资源管理简介二.三种资源管理方式优缺点比较三.命令式对象管理介绍1.kubectl命令语法格式2.资源类型(1)通过“kubectl api-resources”来查看所有的资源(2)每列含义(3)常用资源介绍​编辑3.kubectl命令支持命令(1)获取命令帮助(2)常用命令介绍​编辑4.常用命令示例四.命令式对象配置介绍五.声明式对象配置1.kubectl apply2.操作多个文件内的资源

2023-10-29 20:30:50 392

原创 Ansible上通过roles简化playbook演示介绍

一.roles介绍1.作用2.role的目录结构3.role和tasks的执行优先级顺序二.自定义一个httpd的角色1.完整目录结构展示2.主要的各个目录配置(1)vars目录和templates目录(2)tasks目录和handlers目录(3)运行playbook测试三.ansible galaxy安装roles1.在线网站2.配置roles_path3.ansible-galaxy安装role4.其他管理四.系统角色1.安装系统2.更改配置文件role路径便于对系统

2023-10-26 15:58:08 749

原创 Ansible任务控制loop循环、when和block条件判断介绍演示

--tasks:debug:loop:- 'a'- 'b'- 'c'"msg": "a""msg": "b""msg": "c"---tasks:debug:循环输出hello和nihao---tasks:debug:loop:"msg": {"msg": {循环创建user1和user2---tasks:user:loop:uid: 1011uid: 1012---tasks:debug:​---tasks:debug:​---

2023-10-25 12:54:15 1021

原创 Ansible上jinja2模板的部署和控制语句、运算方式、部分过滤器的演示

jinja2基于python模板引擎,主要用于重复的多次的工作而仅需要用变量去替换少部分可变因素的场景,自定义要在受管节点上配置的文件,模板文件一般以".j2"为后缀,以“{{ xxx }}”为样存放表达式或变量,以“{% xxx %}”来存放控制语句,以“{# xxx #}”来存放注释语句注意:在"{{}}"中要对变量进行操作时,变量名不加引号。

2023-10-24 18:18:08 864 1

原创 Ansible的debug模块和魔法变量介绍,fact变量采集和缓存相关操作演示

目录一.debug模块的使用方法1.帮助文档给出的示例2.主要用到的参数(1)msg:主要用这个参数来指定要输出的信息(2)var:打印指定的变量,一般是通过register注册了的变量(3)verbosity:调试级别,默认是0表示全部显示3.输出信息详解4.在debug中使用when做条件判断(1)通过rc的结果做判断(2)通过是否failed做判断二.fact变量1.setup简单用法演示(1)通过filter进行过滤(2)--tree将信息输出到指定目录2.手动设置fact3.使用set_fact模

2023-10-19 18:51:15 994

原创 Ansible定义各类变量,引用变量方式介绍及注册变量和vars_prompt的用法示例

ansible的变量主要用于存储在整个项目中重复使用的一些值,来提高创建任务和维护节点的效率变量名由字母、数字、下划线组成,由字母开头内置关键字不能作为变量名如上文所述,命令行使用"-e '变量名=值' "设置的变量优先级最高,下面举例演示命令行变量覆盖playbook中的变量---vars:myservice: httpd #原本playbook内容为停掉httpdtasks:service:#运行时指定变量更改为关掉chronyd35s ago35s ago。

2023-10-17 20:18:05 2010

原创 Ansible运行临时命令及常用模块介绍,ansible-vault机密管理

force:state=link时,使用force强制创建链接文件,使用于三种情况(src指向的源文件在创建链接前不存在,可以先强制创建链接文件;state:可以有touch(文件)、directory(目录)、link(软链接)、hard(硬链接)、absent(删除)几个可选项,主要用来进一步确认你操作的对象的文件属性。(1)通过-a后面跟上需要运行的命令,直接执行,但命令行不能包含“,|,&”不指定模块时默认执行command模块。

2023-10-15 15:05:24 965

原创 Ansible主机清单书写演示和ansible.cfg配置文件详解

可以是域名、主机名、IP地址,此时它们没有被分到任何一个组内,属于ungroupserverb[student@workstation ~]$ ansible-inventory -i myhosts --graph #-i指定主机文件,--graph创建库存图@all:serveraserverbserverc​#默认的主机文件是/etc/ansible/hosts,使用其他文件时需要指定@all:serveraserverb​serverc​。

2023-10-12 21:43:22 1024

原创 通过cri-o部署k8s集群环境

通过cri-o部署k8s集群环境二.下载cri-o包(所有节点做)1.在线下载2.本地下载三.配置文件(所有节点做)1.修改crio配置文件2.修改kubelet参数(所有节点做)3.重启crio和kubelet四.master节点初始化(master节点做)五.node节点加入(node节点做)六.添加网络插件(master节点做)1.应用calico.yaml2.查看验证

2023-10-08 18:16:53 867

原创 通过containerd部署k8s集群环境及初始化时部分报错解决

通过containerd部署k8s集群环境报错/proc/sys/net/bridge/bridge-nf-call-iptables does not exist/etc/kubernetes/kubelet.conf already exists/etc/kubernetes/bootstrap-kubelet.conf already exists/etc/kubernetes/pki/ca.crt already existsPort 10250 is in use

2023-09-27 20:13:47 1487

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除