- 博客(93)
- 收藏
- 关注
原创 k8s ----对外暴露
service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制;对集群外部,他类似负载均衡器,可以在集群内外部对pod进行访问。在Kubernetes中,Pod的IP地址和service的ClusterIP仅可以在集群网络内部使用,对于集群外的应用是不可见的。将service暴露在节点网络上,NodePort背后就是Kube-Proxy,Kube-Proxy是沟通service网络、Pod网络和节点网络的桥梁。
2023-11-13 16:41:58
851
1
原创 K8s----资源管理
更新 ConfigMap 目前并不会触发相关 Pod 的滚动更新,可以通过在 .spec.template.metadata.annotations 中添加 version/config ,每次通过修改 version/config 来触发滚动更新。Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源,这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 Secret 中是为了更方便的控制如何使用数据,并减少暴露的风险。●使用该 ConfigMap 挂载的 Env 不会同步更新。
2023-11-09 16:50:24
763
原创 Pod控制器详解
由于StatefulSet资源依赖于一个实现存在的Headless类型的Service资源,所以需要先定义一个名为nginx的Headless Service资源,用于为关联到每个Pod资源创建DNS资源记录。Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源。Job分为普通任务(Job)和定时任务(CronJob),常用于运行那些仅需要执行一次的任务。
2023-11-08 15:07:06
320
原创 K8s-----pod详解
Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象,一个pod代表着集群中运行的一个进程。kubernetes中其它大多数组件都是围绕着pod来进行支持和扩展pod功能的。例如,用于管理pod运行的statefulset和deployment 等控制器对象,用于暴露应用的service和ingress对象,为pod提供存储的persistentVolumes存储资源对象。在kubernetes集群中Pod有如下两种使用方式一个Pod中运行一个容器,
2023-10-31 15:12:13
275
原创 kubectl资源管理命令---声明式
YAML是一个类似XML、JSON的标记性语言,它强调以数据为中心,并不是以标识语言为重点,而YAML本身的定义比较简单。号称“一种人性化的数据格式语言”。大小写敏感使用缩进标识层级关系缩进不允许使用tab,只允许空格(低版本限制)缩进的空格数不重要,只要相同层级的元素左对齐即可“ # ”表示注释。
2023-10-31 15:11:16
140
原创 kubectl资源管理命令-陈述式
目录一、陈述式对象管理1、基本概念2、基础命令使用3、基本信息查看(kubectl get)4、增删等操作5、登录pod中的容器6、扩容缩容pod控制器的pod7、删除副本控制器二、创建项目实例1、创建 kubectl create命令2、发布 kubectl expose命令3、更新 kubectl set4、回滚 kubectl rollout 5、删除 kubectl delete三、金丝雀发布1、更新deployment的版本,并配置暂停deployment2、将已更新
2023-10-27 22:48:15
454
原创 kubeadm安装k8s集群
kubectl 需经由API server 认证及授权后方能执行相关的管理操作,kubeadm部署的集群为其生成了一个具有管理权限的认证配置文件 :/etc/kubernets/admin.conf ,它可有kubectl通过默认的 “ $HOME/.kube/config” 的路径进行加载。
2023-10-25 19:14:13
600
原创 K8s安装部署-----二进制安装部署
MinikubeMinikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用于学习、预览K8S的一些特性使用。部署地址:https://kubernetes.io/docs/setup/minikubeKubeadminKubeadmin也是一个工具,提供kubeadm init和kubeadm join,用于快速部署K8S集群,相对简单。二进制安装部署生产首选,从官方下载发行版的二进制包,手动部署每个组件和自签TLS证书,组成K8S集群,新手推荐。
2023-10-24 16:35:43
475
原创 Kubernetes基础概念及架构和组件
用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群是一个生态极其丰富的容器编排框架工具。官网:https://kubernetes.io中文社区版:http://docs.kubernetes.org.cn/92.html。
2023-10-19 14:34:44
1360
原创 Ansible---playbook 剧本
vars: #定义变量- groupname: mysql #格式为 key: valuetasks:group: name={{groupname}} system=yes gid=306 #使用 {{key}} 引用变量的值copy: content="{{ansible_default_ipv4}}" dest=/opt/vars.txt #在setup模块中可以获取facts变量信息。
2023-10-16 19:36:50
385
1
原创 Ansible概述以及模块
Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。
2023-10-13 10:21:54
398
原创 Docker--harbor私有仓库部署与管理
Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
2023-10-11 11:40:27
573
原创 Docker-consul容器服务更新与发现
consul是google开源的一个使用go语言开发的服务管理软件。支持多数据中心、分布式高可用的、服务发现和配置共享。采用Raft算法,用来保证服务的高可用。内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server 和 client。每个数据中心官方建议需要3或5个server节点以保证数据安全。
2023-10-10 11:16:24
236
原创 Docker-compose
我们知道使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品,Docker Compose。Dockerfile可以让用户管理一个单独的应用容器,而compose则允许用户在一个模板(yaml格式)中定义一组相关联的应用容器(被称为一个project,即项目)docker-compose项目是docker官方的开源项目,负责实现对docker容器集群的快速编排。docker-compose将所管理的容器分为三层,
2023-10-08 17:44:44
968
原创 基于Dockerfile搭建LNMP
公司在实际的生产环境中,需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。然后对此服务进行相关的性能调优和管理工作。(4)将所有容器进行快照,然后将Docker镜像打包成tar包备份到本地。(1)使用Docker构建LNMP环境并运行Wordpress网站平台。(2)限制Nginx容器最多使用500Mb的内存和1G的Swap。容器写 /dev/sda 的速率为。
2023-10-07 20:03:05
2830
3
原创 Docker 镜像的创建
创建镜像:①基于现有镜像创建docker run #创建并启动容器docker commit #提交创建新的镜像②基于本地模板创建从网上下载现有的镜像模板,或使用 docker export 导入本地容器快照模板docker import 将快照导入成本地镜像③dockerfile 构建镜像的创建先用FROM指定基础镜像;再用MAINTAINER 指定维护人信息;然后用RUN EXPOSE ADD ENV USER WORKDIR 等指定编写构建镜像的过程;
2023-10-06 19:32:20
1663
原创 Docker的数据管理、端口映射和容器互联
管理 Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)。在启动容器的时候,如果不指定对应的端口,在容器外是无法通过网络来访问容器内的服务。端口映射机制将容器内的服务提供给外部网络访问,如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。
2023-10-05 20:37:27
1029
原创 Docker---cgroups资源限制
通过-cpu-share并不是cpu资源的绝对数量,而是一个相对的权重值,某个容器最终能分配到的cpu资源取决于它的cpu share占所有容器 cpu share综合的比例。共享式CPU资源,是按比例切分CPU资源,Docker默认每个容器的权值为1024。Block IO 是另一种可以限制容器使用的资源,Block IO 指的是磁盘的读写,docker可通过设置权重,限制。在有多个容器竞争CPU时,我们可以设置每个容器能会用的CPU时间比例,这个比例叫做。和iops的方式控制容器读写磁盘的带宽。
2023-10-05 18:51:12
563
原创 Docker网络
直接使用bridge模式,是无法支持指定IP运行docker的创建自定义网络#创建指定的网桥的ip地址和名称,以及显示的网络模式名称//docker1为执行ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用ifconfig -a 命令查看网络信息时,看到的是类似 br-110add5ad5fsef 这样的名字,这显然不好记。//mynetwork 为执行docker network list 命令时,显示的bridge网络模式名称。创建容器指定IP。
2023-09-27 08:36:30
263
原创 Docker的基础命令
镜像操作docker iamges #查看docker镜像docker inspect 【id号】 #查镜像的详细信息docker tag nginx:lastest nginx:web #修改docker的标签(见名知意)#==========删除镜像docker rmi nginx:web #删除标签为web的nginx镜像(删除标签指定的镜像)或者docker rmi 【镜像id】 #彻底删除该镜像#注意:如果该镜像一个呗容器使用,正确做法先删除该镜像的所有容器,再删除镜像。
2023-09-26 19:31:38
2721
原创 Docker介绍与安装
docker是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)。容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。
2023-09-26 18:26:40
388
原创 zabbix自定义监控内容案例
明确需要执行的linux命令创建zabbix监控项配置文件,用于自定义Key#在zabbix的配置文件中定义了会加载放在/etc/zabbix/zabbix_agent2.d/目录下,所有以.conf结尾的文件Include=/etc/zabbix/zabbix_agent2.d/ *.conf #268行,定义加载的文件路径# Format: UserParameter=<key>,<shell command> #291行,定义监控项的格式#添加监控的命令#重启服务服务端验证测试。
2023-09-21 11:31:41
183
原创 zabbix的原理与安装
由zabbix server向agent发出指令,获取数据,zabbix agent端被动的去获取数据,并返回给zabbix server端,zabbix server端周期性的向agent索取数据,这种模式的最大的问题就是加大zabbix server 的工作量,在数百台服务器的环境下,zabbix server 端不能能及时获取到最新的数据,但这也是默认的工作方式。
2023-09-20 19:31:53
342
原创 搭建ELK+Filebead+zookeeper+kafka实验(详细版)
【代码】搭建ELK+Filebead+zookeeper+kafka实验。
2023-09-19 19:41:56
477
原创 【ELFK】之消息队列kafka
生产者要推送到kafka集群需要先通过zookeeper确定kafka的位置,消费者消费的数据到哪里也要根据数据在存储zookeeper上的offset,来确定offset偏移量记录上一条消息者消费的数据位置,以便在故障恢复后可以接着下一次数据继续消费。
2023-09-19 08:45:32
241
原创 【ELFK】之zookeeper
第一次启动选举机制主要需要看启动顺序,再看他的myid,只要选举票数超过半数,就会选举出一个leader。新加的机器都会指向这个leader。非第一次启动选举机制假如存在leader,新加入的机器会获取到leader的信息,然后进行连接。假如没有leader,会先比较Epoch(任期数),再比较ZXID(事务ID),再比较SID(服务id)。
2023-09-18 09:26:59
533
原创 【ELK】日志分析系统概述及部署(ELFK部署实验)
ELK平台是一套基于ElasticSearch、Logstash、Kibana三个开源的日志收集、存储、检索和可视化的解决方案。可以帮助用户快速定位和分析应用程序的故障,监听应用程序的性能和安全性,以及提供丰富的数据分析和展示功能。Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选,根据需要选择使用)。input:表示从数据源采集数据,常见的数据源如Kafka、日志文件等。
2023-09-14 22:33:18
857
1
原创 GFS分布式文件系统
Gluster是一个开源的分布式文件系统。由存储服务器客户端以及NFS/Samba存储网关组成。没有元数据服务器组件,这有助于提升整个系统的性能,可靠性和稳定性。文件系统定义负责实现数据存储方式,以什么格式保存在磁盘中的一个技术。
2023-09-13 11:06:41
568
原创 rsync远程同步+inotify监控
2、备份源:负责响应来自客户机rsync 同步操作的服务器叫做备份源,需要备份的服务器。1、发起端:负责rsync 同步操作的客户机叫做发起端,通知服务器我要备份你的数据。将inotify机制与rsync工具相结合,可以实现触发式备份(实时同步),即。3、服务端:运行rsyncd服务,一般来说,需要备份的服务器。:服务端与客户端同步内容,可以理解为客户端将内容上传到服务器。这样,就避免了按固定周期备份时存在的延迟性、周期过密等问题。客户端与服务端同步内容,可以理解为客户端从服务器上下载内容。
2023-09-11 20:18:31
310
2
原创 NoSQL之redis高可用(主从复制、哨兵、集群)搭建
Redis集群模式就是,可以解决写的操作无法负载均衡,存储受到单机限制,以及故障自动切换功能的一种集群。集群由多个节点组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点,只有主节点复制读写请求和集群信息的维护,从节点只进行主节点数据和状态信息的复制。Redis集群引入了哈希槽的概念Redis集群由16384个哈希槽(编号0-16383)集群的每一个节点负责一部分哈希槽每个key通过CRC算法后对16384取余来决定放置哪个槽位。
2023-09-11 09:29:59
222
原创 NoSQL之redis持久化(RDB、AOF)
过期的数据不再写入文件;如有些数据被重复设值(set ydq 123, set ydq 321)、有些数据被删除了(set ky20 ydq 、 rename ky20 kgc、del kgc。三条一起执行的语句没有意义就会被删除。) 等。如sadd myset 123, sadd myset 1234,sadd myset 12345 可以合并为sadd myset123 1234 12345。
2023-09-07 21:24:42
384
原创 NoSQL之 Redis介绍与配置
关系数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向记录。SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行关系型数据库中数据的检索和操作。主流的关系型数据库包括:oracle、mysql、sqlserver、Microsoft access、db2等优点都是使用表结构,格式一致sql语言通用,可用于复杂查询支持复杂操作,支持sql,可用于一个表以及多个表之间非常复杂的查询缺点读写性能比较差,尤其是海量数据的高效读写固定的表结构,灵活度差。
2023-09-06 10:45:22
403
原创 MySQL之MHA高可用配置及故障切换
① 作用:mysql的高可用 + 故障切换② 核心部分:MHA组件:主要的功能:做MHA 启动、关闭管理和检测mysql各种健康状态在发生故障时,尽可能的保存二进制日志,并且实现故障切换(VIP地址飘逸)③ MHA需要配置的文件(2个):命令工具 ,定义的是基于VIP的检测和故障转移 (VIP从master----->新的 master)mha的主要配置文件,主要定义了mha的工作目录、日志。mysql二进制日志位置;使用mha的登录mysql的用户、密码使用从服务器;
2023-09-05 21:26:51
1149
原创 MySQL主从复制和读写分离搭建
两日志二进制文件: 记录数据库变动的信息(语句、变动记录)中继日志文件: 用于临时存放二进制文件内容。三线程dump线程: ①监听I/O线程请求。②将二进制日志文件更新的数据发送给slave的I/O线程。I/O线程: ①监听master主机的二进制文件。②向master的dump线程发出同步请求SQL线程: 读取中继日志中的文件,更新到本机的数据库。
2023-09-04 13:07:13
320
原创 MySQL连接查询和存储过程
存储过程与函数的直接效果类似,只不过存储过程,封装的是一组sql语句。mysql数据库存储过程是一组为了完成特定功能的sql语句的集合。存储过程这个功能时从5.0版本才开始支持的,它可以加快数据库的处理速度,增强数据库在实际应用中的灵活性。存储过程在使用过程中是将常用或复杂的工作预先使用sql语句写好,并用一个指定的名称存储起来,这个过程编译和优化后存储在数据库服务器中,当需要使用该存储过程时,只需要调用它即可。
2023-08-31 20:58:51
468
原创 MySQL高阶查询语句
视图:优化操作+安全方案数据库中的虚拟表,这张虚拟表不包含真实数据。只是做了真实数据的映射。视图可以理解为镜花水月/倒影。动态保存结果集(数据)针对不同的人(不同权限),提供不同的结果集的“表”,(以表格的形式展示)功能简化查询结果集,灵活查询,可以针对不同用户呈现不同的结果集,相对有更高的安全性本质而言,视图是一种select(结果集的呈现)注意视图适合于多表连接浏览时使用,不适合增、删、改而存储过程适合于使用较频繁的sql语句,这样可以提高执行效率。
2023-08-31 12:09:29
922
原创 MySQL事物和存储引擎
事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元。事务适用于多用户同时操作的数据库系统的场景,如银行、保险公司及证券交易系统等等。事务是通过事务的整体性以保证数据的一致性。
2023-08-29 09:31:58
339
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人