- 博客(121)
- 收藏
- 关注
原创 k8s 自动伸缩机制-------HPA 超详细解读
弹性伸缩是根据用户的业务需求和策略,自动“调整”其“弹性资源”的管理服务。通过弹性伸缩功能,用户可设置对定时、周期或监控策略,恰到好处地增加或减少“弹性资源”,并完成实例配置,保证业务平稳健康运行在实际工作中,我们常常需要做一些扩容缩容操作,如:电商平台在618和双十一搞秒杀活动;由于资源紧张、工作负载降低等都需要对服务实例数进行扩缩容操作。水平自动伸缩。
2024-06-14 14:05:30
1402
1
原创 【kubernetes】k8s集群安全机制 保姆级攻略
Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介, 也是外部控制的入口。比如kubectl 如果想向 API Server 请求资源,需要过三关,第一关是认证(Authentication),第二关是鉴权(Authorization), 第三关是准入控制(Admission Control),只有通过这三关才可能会被 K8S 创建资源。
2024-06-12 22:40:55
1095
原创 k8s 对外服务之 Ingress
service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制;对集群外部,他类似负载均衡器,可以在集群内外部对pod进行访问。在Kubernetes中,Pod的IP地址和service的ClusterIP仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,Kubernetes目前提供了以下几种方案:●NodePort。
2024-06-05 00:48:14
1241
原创 探索k8s集群的配置资源(secret和configmap)
通过--from-literal创建键值把之前手动创建的cm删除创建以文件和键值形式的cm。
2024-06-04 01:41:47
1165
2
原创 k8s集群的pod控制器
1、statefulset用于部署有状态的应用(有实时数据需要存储的应用)2、部署statefulset之前,需要先创建一个headless service(表示clusterip为node的特殊service类型),statefulset的配置清单模板需要去指定servicename为headless service的名称。3、statefulset创建的pod名称是固定不变的,且唯一的。
2024-06-03 01:00:41
952
原创 k8s集群的存储卷、pvc和pv
PV全称叫做 Persistent Volume,持久化存储卷。它是用来描述或者说用来定义一个存储卷的,这个通常都是由运维工程师来定义。PVC的全称是 Persistent Volume Claim,是持久化存储的请求。它是用来描述希望使用什么样的或者说是满足什么条件的 PV 存储。
2024-05-31 01:49:48
1931
原创 探索k8s集群的存储卷 emptyDir hostPath nfs
首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。并且hostpath指定的是一个节点,不能实现跨主机数据持久化,在node02上面的是this is node01 而指定调度到node02时,指定的是this is node02 不能实现跨主机数据持久化。nfs总结:将nfs服务的共享数据卷挂载到pod容器中,有持久化数据的能力,且也能实现跨node节点的pod共享数据。随后,去容器里面进行查看,node节点跟pod容器共享数据成功。
2024-05-30 16:31:55
1330
1
原创 关于k8s集群的污点和容忍,以及k8s集群的故障排查思路
因此所有在node01上面的pod都被驱逐出来,并转移到node02上面,查看 Pod 状态,会发现 node01 上的 Pod 已经被全部驱逐(注:如果是 Deployment 或者 StatefulSet 资源类型,为了维持副本数量则会在别的 Node 上再创建新的 Pod)当某个node节点需要资源更新时,为防止业务长时间中断,可以依次升级node,首先将需要升级的node节点设置污点,将pod资源调度到其它node节点上(如master资源充足也可以临时调用),等到该节点升级完毕后,去除污点。
2024-05-28 19:13:34
1864
1
原创 k8S中的调度约束
controller manager,scheduler,kubelet通过list-watch机制监听apiserver发出的事件,apiserver通过list-watch机制监听etcd发出的事件。
2024-05-27 17:42:46
736
原创 k8s集群中pod的容器资源限制和三种探针
例如:在买硬盘的时候,操作系统报的数量要比产品标出或商家号称的小一些,主要原因是标出的是以 MB、GB为单位的,1GB 就是1,000,000,000Byte,而操作系统是以2进制为处理单位的,因此检查硬盘容量时是以MiB、GiB为单位,1GiB=2^30=1,073,741,824,相比较而言,1GiB要比1GB多出1,073,741,824-1,000,000,000=73,741,824Byte,所以检测实际结果要比标出的少一些。Kubernetes 不允许设置精度小于 1m 的 CPU 资源。
2024-05-26 17:44:57
1582
原创 【kubernetes】关于云原生之k8s集群的pod理论详解
Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。
2024-05-24 21:47:12
1270
原创 声明式管理方法
1.适合于对资源的修改操作2.声明式资源管理方法依赖于资源配置清单文件对资源进行管理资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析)3.对资源的管理,是通过事先定义在统一资源配置清单内,再通过陈述式命令应用到k8s集群里4.语法格式:kubectl create/apply/delete -f xxxx.yaml 如果要是查看里面元数据或者容器模板的可以在deployment后面加上.metadata或者.spec 离线修改:修改yaml文件,并用 kubec
2024-05-23 00:22:55
1007
原创 探索k8s集群中kubectl的陈述式资源管理
2.kubectl 是官方的CLI命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径。1.kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口。4.对资源的增、删、查操作比较方便,但对改的操作就不容易了。使用一条kubectl命令和参数选项。3.kubectl 的命令大全。,实现资源对象的管理操作。来实现资源对象管理操作。即通过命令的方式来实。
2024-05-20 13:34:00
380
原创 利用kubeadm安装k8s集群 以及跟harbor私有仓库下载镜像
Harbor节点(hub.kgc.com 192.168.88.6 docker、docker-compose、harbor-offline-v1.2.21、在所有节点上安装Docker和kubeadm2、部署Kubernetes Master3、部署容器网络插件4、部署 Kubernetes Node,将节点加入Kubernetes集群中5、部署 Dashboard Web 页面,可视化查看Kubernetes资源6、部署 Harbor 私有仓库,存放镜像资源。
2024-05-16 19:03:40
1244
原创 kubernetes多master集群架构
您可以使用仪表板将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随资源。您可以使用仪表板来概述群集上运行的应用程序,以及创建或修改单个Kubernetes资源(例如deployment,job,daemonset等)。例如,您可以使用部署向导扩展部署,启动滚动更新,重新启动Pod或部署新应用程序。首先部署master02等其他master节点(master01节点的配置文件(私钥文件、执行文件、服务文件)拷贝到master02 节点)
2024-05-15 21:50:10
1140
原创 二进制部署k8s集群之master节点和etcd数据库集群
kubelet 首次启动通过加载 bootstrap.kubeconfig 中的用户 Token 和 apiserver CA 证书发起首次 CSR 请求,这个 Token 被预先内置在 apiserver 节点的 token.csv 中,其身份为 kubelet-bootstrap 用户和 system:kubelet-bootstrap 用户组;,自动完成到 kube-apiserver 的注册,在 node 节点量较大或者后期自动扩容时非常有用。
2024-05-14 17:54:31
964
原创 Kubernetes 核心概念
在K8S的集群里,虽然每个Pod会被分配一个单独的IP地址,但由于Pod是有生命周期的(它们可以被创建,而且销毁之后不会再启动),随时可能会因为业务的变更,导致这个 IP 地址也会随着 Pod 的销毁而消失。注释值则没有字符长度限制。K8S 中的 Service 并不是我们常说的“服务”的含义,而更像是网关层,可以看作一组提供相同服务的Pod的对外访问接口、流量均衡器。Ingress 是 K8S 集群里工作在 OSI 网络参考模型下,第7层的应用,对外暴露的接囗,典型的访问方式是 http/https。
2024-05-12 23:54:15
772
原创 Kubernetes——基础认识
一、简介1.Kubernetes是什么Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,是 Google 开源的一个容器集群管理系统,Kubernetes 简称 K8S。Kubernetes 是一个一站式的完备的分布式系统开发和支撑平台,更是一个开放平台,对现有的编程语言、编程框架、中间件没有任何侵入性。Kubernetes 提供了完善的管理工具,这些工具涵盖了开发、部署测试、运维监控在内的各个环节。
2024-05-09 18:45:45
763
原创 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变量信息。
2024-05-08 08:56:50
1365
原创 ansible------inventory 主机清单
3)[all:vars]举例说明:[webservers:vars] 将web组里面的ip中ssh免交密登录删除4 5 6 三台机器同时删除公匙随后,去ansible检测,都报错随后,去修改ansible中hosts的配置文件再去ansible检测,又可以连接 表示不用免密交互,使用组变量(组里面很多个主机 一个个去修改很麻烦,所以使用组变量更快即可,这些组成员都能享受组变量。
2024-05-07 15:13:33
1193
1
原创 认识ansible 了解常用模块
比如执行 systemctl stop xxx 命令来停止服务,当发现要停止的目标服务已经处于停止状态,它什么也不会做, 所以多次停止的结果仍然是停止,不会改变结果,它是幂等的,而 systemctl restart xxx 是非幂等的。,会通过预定好的规则将playbook拆解为play,再组织成ansible可以识别的任务,调用模块和插件,指的是无论执行多少次同样的运算,结果都是相同的,即一条命令,任意多次执行所产生的影响均与一次执行的影响相同。被管理端: 192.168.88.6。
2024-05-06 23:03:34
1156
1
原创 Docker本地私有仓库、Docker--harbor私有仓库部署与管理
Docker本地仓库,存放镜像,本地的机器上传和下载,pull或者push1、基于角色控制:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。2、基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。3、支持 LDAP/AD:Harbor 可以集成企业内部已有的 AD/LDAP(类似数据库的一张表),用于对已经存在的用户认证和管理。4、镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。5、图形化用户界面。
2024-05-05 22:41:40
1622
原创 Consul
服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。这里就会有几个问题:●如果需要调用后端服务A-N,就需要配置N个服务的网络位置,配置很麻烦●后端服务的网络位置变化,都需要改变每个调用者的配置既然有这些问题,那么服务注册与发现就是解决这些问题的。
2024-04-30 08:40:30
967
原创 Docker-compose
知道使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案,今天给大家介绍 Docker 官方产品 Docker Compose。docker swarm(管理跨节点)Dockerfile可以让用户管理一个单独的应用容器;而Compose则允许用户在一个模板(YAML格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等。
2024-04-29 22:56:45
912
1
原创 Docker容器与虚拟化技术:Dockerfile部署LNMP
(点字符): 表示Dockerfile所在的当前目录。Docker将会在当前目录下查找名为Dockerfile的文件,该文件包含了构建镜像所需的所有指令,比如基础镜像的选择、环境变量设置、文件复制、运行安装命令等。综上所述,该命令的作用是从当前目录下的Dockerfile开始,根据其中定义的步骤和指令,构建一个名为nginx:lnmp的新Docker镜像。Dockerfile配置目录主要存放Dockerfile构建脚本和一些配置文件,lnmp运行目录主要存放程序运行产生的一些数据,比如mysql数据等。
2024-04-29 13:51:56
672
原创 Docker 的数据管理 端口映射 容器互联 镜像的创建
如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。
2024-04-25 17:49:34
733
2
原创 Docker 网络和资源控制
容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。None该模式关闭了容器的网络功能。Bridge默认为该模式,此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及iptables nat 表配置与宿主机通信。自定义网络直接使用bridge模式,是无法支持指定IP运行docker的,例如执行以下命令就会报错。
2024-04-24 19:54:53
848
原创 Docker 基本管理
Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱。鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。Docker的设计宗旨。
2024-04-22 23:36:32
931
1
原创 zabbix 自动发现与自动注册 部署 zabbix 代理服务器
缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。abbix agent2 会主动上报自己的信息,发给 zabbix server。点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除。点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除。点击左边菜单栏规则,点击 禁用【配置】中的【自动发现】,勾选发现。.确保客户端上的 zabbix-agent2 服务状态正常。随后,再去配置中主机查看,客户端出现了。
2024-04-16 23:52:20
518
原创 zabbix解析以及安装
zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。●zabbix server:zabbix 服务端守护进程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终都提交给 zabbix server;
2024-04-15 23:10:33
1090
原创 kafka的概念以及Zookeeper集群 + Kafka集群 +elfk集群
此时表明当定下leader之后,即使出现了比leader大的mysid 也不会改变leader的地位,就比如node3 的mysid为3,node2的mysid为2,即使3大于2,当定下node2为leader时,node3依然是追随者。/配置 Zookeeper 启动脚本 在zookeeper-3.5.7的bin下面。node3 192.168.68.7配置 配置不需要修改,唯一要改的也是myid。这边的配置不需要改,都是一样的,唯一要改的myid。写一个启动脚本 node1 2 3 都要同时操作。
2024-04-12 17:37:58
533
原创 ELK企业级日志分析系统以及多种部署
ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。●ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。一款强大的数据处理工具。
2024-04-10 18:55:04
864
原创 GFS 分布式文件系统
GlusterFS 是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。MFS传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等。这样的设计在浏览目录时效率高,但是也存在一些缺陷,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。
2024-04-08 22:59:00
806
原创 rsync 远程同步
rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。
2024-04-07 22:29:28
676
原创 redis群集有三种模式
简要说明:第一次slave会发送一个sync(同步)的命令给master,同步之后,master会执行bgsave命令进行持久化,生成rdb文件,在生成rdb持久化期间,如有新的写操作命令,则会记录在缓冲区里面(增量备份),持久化完毕之后,会将rdb文件发送给slave,随后slave会发送一个psync的命令告诉master已经加载完rdb文件,并要求把缓冲区里面的命令再发给slave,随后master会将缓冲区里面的命令更新给slave,此时此刻,master与slave数据同步。
2024-04-03 17:38:57
1020
原创 redis之穿透、击穿、雪崩
读取数据时,先从redis读取数据,如果redis中没有,再从mysql中读取数据,并将读取到的数据同步到redis缓存中。更新数据时,先更新mysql数据库,再更新redis缓存删除数据时,先删除redis缓存,再删除mysql数据库对于一些关键数据,可以使用mysql的触发器来实现同步更新redis缓存、可可以使用定时任务,定时自动进行缓存预热,来定期同步mysql和redis的数据。
2024-04-03 15:21:34
960
1
原创 redis持久化管理
●内存碎片率超过1.5,说明Redis消耗了实际需要物理内存的150%,其中50%是内存碎片率。●内存碎片率低于1的,说明Redis内存分配超出了物理内存,操作系统正在进行内存交换。●内存碎片率稍大于1是合理的,这个值表示内存碎片率比较低,也说明 Redis 没有发生内存交换。redis实例的内存使用率超过可用最大内存,操作系统将开始进行内存与swap空间交换。当达到设置的最大阀值时,需选择一种key的回收策略,默认情况下回收策略是禁止删除。内存清理策略,保证合理分配redis有限的内存资源。
2024-04-03 14:24:01
350
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人