- 博客(120)
- 收藏
- 关注
原创 【云原生】K8S对外服务之Ingress
service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制;对集群外部,他类似负载均衡器,可以在集群内外部对pod进行访问。在Kubernetes中,Pod的IP地址和service的ClusterIP仅可以在集群网络内部使用,对于集群外的应用是不可见的。
2023-10-09 16:32:12
492
原创 【云原生】K8S控制详解
1)deployment 认为所有的pod都是一样的2)不用考虑顺序的要求3)不用考虑在哪个node节点上运行4)可以随意扩容和缩容有状态1)实例之间有差别,每个实例都有自己的独特性,元数据不同,例如etcd,zookeeper2)实例之间不对等的关系,以及依靠外部存储的应用。常规service和无头服务区别service:一组Pod访问策略,提供cluster-IP群集之间通讯,还提供负载均衡和服务发现。
2023-08-15 18:34:14
1735
1
原创 【云原生】K8S存储卷:PV、PVC详解
上面介绍的PV和PVC模式是需要运维人员先创建好PV,然后开发人员定义好PVC进行一对一的Bond,但是如果PVC请求成千上万,那么就需要创建成千上万的PV,对于运维人员来说维护成本很高,Kubernetes提供一种自动创建PV的机制,叫StorageClass,它的作用就是创建PV的模板。的使用逻辑:在 Pod 中定义一个存储卷(该存储卷类型为 PVC),定义的时候直接指定大小,PVC 必须与对应的 PV 建立关系,PVC 会根据配置的定义去 PV 申请,而 PV 是由存储空间创建出来的。
2023-08-14 22:36:20
2434
1
原创 【云原生】K8S集群
比如 node01 的 CPU 和 Memory 使用率 20:60,node02 的 CPU 和 Memory 使用率 50:50,虽然 node01 的总使用率比 node02 低,但 node02 的 CPU 和 Memory 使用率更接近,从而调度时会优选 node02。(12)kubelet 是在 Node 上面运行的进程,它也通过 List-Watch 的方式监听(Watch,通过https的6443端口)APIServer 发送的 Pod 更新的事件。除了知道 Pod 的副本数量,副本内容。
2023-08-10 19:02:13
2024
2
原创 【云原生】Pod的进阶
类似的,如果给容器设置了 CPU 的 limit 值但未设置 CPU 的 request 值,则 Kubernetes 自动为其设置 CPU 的 request 值 并使之与 CPU 的 limit 值匹配。当为 Pod 中的容器指定了 request 资源时,代表容器运行所需的最小资源量,调度器就使用该信息来决定将 Pod 调度到哪个节点上。可以以整数表示,或者以10为底数的指数的单位(E、P、T、G、M、K)来表示, 或者以2为底数的指数的单位(Ei、Pi、Ti、Gi、Mi、Ki)来表示。
2023-08-10 15:58:21
363
原创 【云原生】Pod详讲
运行于各自容器内的进程无法直接完成网络通信,这是由于容器间的隔离机制导致,k8s中的Pod资源抽象正是解决此类问题,Pod对象是一组容器的集合,这些容器共享NET、MNT、UTS及IPC命名空间,因此具有相同的域名、主机名和网络接口,并可通过IPC直接通信。Pod资源中针对各容器提供网络命名空间等共享机制的是底层基础容器pause,基础容器(也可称为父容器)pause就是为了管理Pod容器间的共享操作,这个父容器需要能够准确地知道如何去创建共享运行环境的容器,还能管理这些容器的生命周期。
2023-08-09 16:43:47
1755
原创 【云原生】Yaml文件详解
targetPort 是 Pod 的端口,从 port 或 nodePort 来的流量经过 kube-proxy 反向代理负载均衡转发到后端 Pod 的 targetPort 上,最后进入容器。port 是 k8s 集群内部访问service的端口,即通过 clusterIP: port 可以从 Pod 所在的 Node 上访问到 service。●缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格。●符号字符后缩进一个空格,如冒号,逗号,短横杆(-)等。●使用缩进表示层级关系。
2023-08-08 17:29:04
976
原创 【云原生】kubectl命令的详解
externalName:将service名称映射到一个DNS域名上,相当于DNS服务的CNAME记录,用于让Pod去访问集群外部的资源,它本身没有绑定任何的资源。例如,DESIRED 为 10,那么可用的副本数至少要为 10 - 10 * 25% = 8,即 AVAILABLE 为 8。例如,DESIRED 为 10,那么副本总数的最大值为 10 + 10 * 25% = 13,即 CURRENT 为 13。旧副本的销毁使副本总数低于 13,这样就允许创建更多的新副本。
2023-08-07 20:23:44
6380
1
原创 【云原生】K8S二进制搭建二:部署CNI网络组件
Pod 地址与 docker0 在同一网段,docker0 网段与宿主机网卡是两个不同的网段,且不同 Node 之间的通信只能通过宿主机的物理网卡进行。目前比较常用的时flannel和calico,flannel的功能比较简单,不具备复杂的网络策略配置能力,calico是比较出色的网络管理插件,但具备复杂网络配置能力的同时,往往意味着本身的配置比较复杂,所以相对而言,比较小而简单的集群使用flannel,考虑到日后扩容,未来网络可能需要加入更多设备,配置更多网络策略,则使用calico更好。
2023-08-04 09:11:43
2257
原创 【云原生】K8S二进制搭建一
cfssljson:将 cfssl 生成的证书(json格式)变为文件承载式证书。cfssl-certinfo -cert #查看证书的信息。简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单。可靠:采用raft算法,实现分布式系统数据的可用性和一致性。cfssl-certinfo:验证证书的信息。快速:单实例支持每秒2k+读操作。cfssl:证书签发的工具命令。安全:支持SSL证书验证。
2023-08-02 23:52:50
2194
1
原创 【云原生】K8S超详细概述
k8S 的全称为 Kubernetes (K12345678S),PS:“嘛,写全称也太累了吧,不如整个缩写”。用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。
2023-08-01 17:40:47
11238
原创 【自动化剧本】Role角色
比如说后来又加进来一个主机,这第3个主机既是httpd服务器,又是haproxy服务器,我们只能写第3个play,上面写上安装httpd和haproxy。roles一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中。假如我们现在有3个被管理主机,第一个要配置成httpd,第二个要配置成haproxy服务器,第三个要配置成MySQL(mariadb)服务器。为了避免代码重复,可以定义一个角色叫httpd,第二个角色叫haproxy,并使用roles实现代码重复被调用。
2023-07-31 19:59:11
1353
原创 【自动化运维】playbook剧本
vars: #定义变量 - groupname: mysql #格式为 key: value - username: nginxtasks:groupname } } system = yes gid = 306 #使用 {{key}} 引用变量的值 - name: create user。
2023-07-30 13:54:06
223
原创 【自动化运维】Ansible常见模块的运用
Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作。
2023-07-27 19:47:49
1806
原创 【Docker】安全及日志管理
(6)服务器接收到客户端发来的密文密钥之后,用自己之前保留的私钥对其进行非对称解密,解密之后就得到客户端的【对称密钥】,然后用客户端的【对称密钥】对返回数据进行加密,这样传输的数据都是密文了。(8)限制在容器中可用的进程数,docker run -m 限制内存的使用,以防止 fork 炸弹。Docker 提供了 Docker hub,可以让用户上传创建的镜像,以便其他用户下载,快速搭建环境。通过在服务端上创建tls密钥证书,再下发给客户端,客户端通过私钥访问容器,这样就保证的docker通讯的安全性。
2023-07-26 19:32:19
2326
原创 【Docker】Consul的容器服务更新与发现
服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。这里就会有几个问题:●如果需要调用后端服务A-N,就需要配置N个服务的网络位置,配置很麻烦●后端服务的网络位置变化,都需要改变每个调用者的配置consul是google开源的一个使用go语言开发的服务管理软件。
2023-07-26 18:48:13
570
原创 【Docker】Docker私有仓库管理
Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
2023-07-25 20:49:22
686
原创 【Docker】Docker容器编排
f, --file FILE :使用特定的 compose 模板文件,默认为 docker-compose.yml。unless-stopped,在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的。on-failure,在容器非正常退出时(退出状态非0),才会重启容器。on-failure:3,在容器非正常退出时重启容器,最多重启3次。●缩进的空格数目不重要,只要相同层级左对齐,通常开头缩进2个空格。no,默认策略,在容器退出时不重启容器。●通过缩进表示层级关系。
2023-07-25 16:46:25
732
原创 【Docker】Docker的数据管理
但是当编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。(5)镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件,只是这个文件在 Docker 容器中不可见了。(3)当Dockerfile 的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效;
2023-07-23 22:58:05
407
原创 【Docker】Docker网络
直接使用bridge模式,是无法支持指定IP运行docker的,例如执行以下命令就会报错 docker run -itd --name test3 --network bridge --ip 172.17 .0.10 centos:7 /bin/bash//创建自定义网络。
2023-07-20 19:26:25
731
1
原创 【Docker】Docker基本管理命令
Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱。鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。
2023-07-19 17:18:03
1391
原创 【分布式应用】Ceph的实战应用
本例主要是使用Linux客户端挂载RBD镜像为本地磁盘使用。开始之前需要在所需要客户端节点上面安装ceph-common软件包,因为客户端需要调用rbd命令将RBD镜像映射到本地当作一块普通硬盘使用。并还需要把ceph.conf配置文件和授权keyring文件复制到对应的节点。●通过内核模块KRBD将镜像映射为系统本地块设备,通常设置文件一般为:/dev/rbd*●另一种是通过librbd接口,通常KVM虚拟机使用这种接口。
2023-07-17 19:29:16
1888
原创 【分布式应用】ceph分布式存储
Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernetes都可与Ceph整合以支持虚拟机镜像的后端存储。粗略估计,我国70%—80%的云平台都将Ceph作为底层的存储平台,由此可见Ceph俨然成为了开源云平台的标配。
2023-07-14 18:01:59
1112
原创 【分布式应用】kafka集群、Filebeat+Kafka+ELK搭建
主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景。Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据领域的实时计算以及日志收集。
2023-07-13 19:25:48
2434
原创 【分布式应用】zookeeper集群
Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。也就是说Zookeeper = 注册中心+文件系统 + 通知机制。
2023-07-12 16:27:24
689
原创 【分布式应用】Filebeat+ELK 部署、logstash filter四大过滤插件
语法:(?举例:1,3 })(?如果表达式匹配失败,会生成一个tags字段,字段值为 _grokparsefailure,需要重新检查上边的match配置解析是否正确。
2023-07-11 20:15:13
1685
原创 【分布式应用】ELK 企业级日志分析系统
ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。
2023-07-10 19:35:20
922
原创 【分布式应用】zabbix:代理服务器、及监控其它应用
【宏】输入 {$SNMP_COMMUNITY},【值】 输入 public(要与网络设备设置的团体名一致),【描述】输入 网络设备snmp的团队名。【Interfaces】点击【添加】选择 SNMP ,- 【IP地址】输入 127.0.0.1,【端口】输入 161。【Interfaces】点击添加 JMX,【IP地址】输入 192.168.80.30,【端口】输入 12345。【Interfaces】点击添加 客户端,【IP地址】输入 192.168.80.5,【端口】输入 10050。
2023-07-09 22:28:11
555
原创 【分布式应用】zabbix 二:自定义监控、自动发现与自动注册
案列:自定义监控客户端服务器登录的人数 需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息。
2023-07-07 08:42:16
677
原创 【分布式应用】Zabbix监控6.0
作为一个运维,需要会使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等,利用监控系统的数据去了解网站上线发布的结果和健康状态。
2023-07-05 18:30:30
626
原创 【Web网站服务】rsync远程同步
rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。
2023-07-04 20:35:40
432
原创 【代理服务器】Squid 反向代理与Nginx缓存代理
CDN的全称是(Content Delivery Network),即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。
2023-07-04 17:15:05
1517
原创 使用supervisor管理进程
supervisor是Python开发的c/s服务,是Linux系统下的进程管理工具。可以监听、启动、停止、重启一个或多个进程用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程的自动恢复的功能,不在需要自己写脚本来控制。
2023-07-03 23:02:42
1067
原创 【NOSQL】redis哨兵模式、集群搭建
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。2.1.3设置环境变量2.1.4定义systemd服务管理脚本2.2修改 Redis 配置文件(Master节点操作2.3修改 Redis 配置文件(Slave节点操作)**主从切换技术的方法是
2023-07-02 21:09:53
3290
原创 【NOSQL数据库】Rdeis持久化
bgsave/bgrewriteaof的子进程不能同时执行,主要是基于性能方面的考虑:两个并发的子进程同时执行大量的磁盘写操作,可能引起严重的性能问题。缺点:RDB文件的致命缺点在于其数据快照的持久化方式决定了必然做不到实时持久化,而在数据越来越重要的今天,数据的大量丢失很多时候是无法接受的,因此AOF持久化成为主流。如果你的redis是主redis(说明redis集群有主从),那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有在你设置的是“不移除”的情况下,才不用考虑这个因素。
2023-06-30 14:23:51
850
原创 【NOSQL数据库】Redis数据库的配置与优化一
实例–>数据库–>表(table)–>记录行(row)、数据字段(column)实例–>数据库–>集合(collection)–>键值对(key-value)非关系型数据库不需要手动建数据库和集合(表)。Redis(远程字典服务器) 是一个开源的、使用 C 语言编写的 NoSQL 数据库。Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。
2023-06-28 16:35:53
1094
空空如也
搭建OpenVpn遇到这问题,求解答
2023-11-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人