- 博客(66)
- 收藏
- 关注
原创 K8S初级入门系列之十二-计算资源管理
本篇主要介绍了K8S对于计算资源的管理,主要是针对CPU和Memory资源。Requests和Limits作为资源管理最基本两个设置,Requests是容器申请时最小限制,主要用于K8S在Pod调度时,节点的剩余资源能否满足Pod的要求。Limits是容器运行时的最大限制,主要控制Pod运行时,对于资源超额使用的限制,一旦超过Limits定义的量,就有可能引起Pod的kill或者重启。K8S将Pod划分为三个QoS等级,优先级从高到低分别为Guaranteed、Burstable和BestEffort。
2023-07-23 09:57:57
1141
原创 K8S初级入门系列之十一-安全
metadata:创建完成后,查看详情可以看到 mountable secret和tokens都关联了一个名为my-servicesaccount-token-cz8kp的secret,我们查看其secret的详情Data====其data包含ca.crt,namespace,token密钥三部分,其中ca.crt即颁发的CA证书,namespace即命名空间,token文件中存放的密钥。这三部分的用途我们待会讲到。
2023-07-23 09:57:11
786
原创 K8S初级入门系列之十-控制器(StatefulSet)
本章节介绍了有状态控制器StatefulSet,有状态实例有自己的主机标识,网络标识,存储标识的一致,实例之间不能相互替代,Pod实例重建时需要保持状态的一致,使得业务无感。StatefulSet能根据一份容器镜像完成多个有状态的副本的状态,并自动创建PVC,并绑定PV,同时,与Deployment一样,StatefulSet控制器支持副本重建,扩缩容,滚动更新等。
2023-07-22 09:45:28
659
原创 K8S初级入门系列之九-共享存储
本章节我们介绍了K8S的共享存储。1、同一Pod的容器间共享存储,可以使用EmptyDir。2、同一节点的Pod的共享存储,可以使用HostPath。3、不同节点间Pod的共享存储,可以使用云计算厂商提供的特定存储,也可以使用标准的网络文件存储,这里重点介绍了NFS。4、为了解耦开发和运维人员的工作,K8S设计了PV和PVC,运维人员根据资源总量,申明式创建大量的PV,预先分配,开发人员提交PVC申请,K8S根据申请的资源,自动找到合适的PV,并进行绑定和实际资源分配。
2023-07-22 09:44:44
1945
1
原创 K8S初级入门系列之八-网络
本章节介绍网络通讯的实现原理以及Service的相关核心概念,1、介绍了同一Pod内容器间,同一节点不同Pod,以及不同节点Pod的通讯原理和实现。2、Service,为同一组Pod提供统一的访问入口,通过Selector选择同组Pod,Service有四种类型,分别为ClusterIP,NodePort,LoadBalancer,ExternalNamed。Service是通过iptabels记录虚拟IP与后端Pod IP的关系,并实现流量的四层转发和负载。
2023-07-22 09:43:50
732
原创 K8S初级入门系列之七-控制器(Job/CronJob/Daemonset)
本章节我们介绍了Job,CronJob,DaemonSet三种控制器,包括其应用场景和方式。Job使用于一次性的任务,执行完成后,Pod资源会释放,一般适用离线计算等场景。可以通过completions,parallelism设置需要运行Pod的总量,以及并行运行Pod的数量。CronJob是一种特定类型的Job,可以通过schedule属性,配置cron表达式,实现定时任务的执行。
2023-07-22 09:42:57
501
原创 K8S初级入门系列之六-控制器(RC/RS/Deployment)
本章节介绍了弹性扩缩容相关的控制器RC,RS以及Deployment。RS与RC的功能一致,推荐使用RS,通过设置副本数,控制目标Pod实例的个数,在异常情况,自动增删Pod实例,确保副本数与目标值一致。Deployment是更高阶的控制器,通过RS来控制Pod,除了基本的扩缩容功能,还实现了版本升级,灰度,回滚等功能。
2023-07-22 09:41:47
638
原创 K8S初级入门系列之五-Pod的高级特性
本章节的内容较多,我们来总结下:1、Pod的生命周期包括挂起(Pending),容器创建(ContainerCreating),运行(Running),失败(Failed),成功(Succeed),未知(Unknown)几种状态,在容器创建后以及销毁前,可以使用postStart,preStop两个钩子使用诸如环境准备,优雅停机等工作。2、容器的重启策略有三种类型,Always,OnFailure和Never。对于Always无论异常还是正常退出,Pod都会重启;对于OnFailure时。
2023-07-22 09:40:16
613
原创 K8S初级入门系列之四-Namespace/ConfigMap/Secret
本篇主要介绍了Namespace,ConfigMap以及secret的基本用法。Namespace可以在K8S集群中创建多个"虚拟集群",集群间实现隔离,本篇主要介绍了Namespace的创建,查看,删除以及如何创建指定Namespace的Pod。
2023-07-22 09:39:21
1062
原创 K8S初级入门系列之三-Pod的基本概念和操作
Pod是K8S最核心的概念,引入Pod的目的是为了解决存在亲和性和互斥性复杂关系服务的调度和编排问题。Pod采用YAML声明式的对象描述,主要包括四部分,其中spec中申明该Pod容器列表。采用kubectl命令行工具,演示了对于Pod的创建,查看,修改,删除等基本操作。
2023-07-22 09:38:27
812
原创 K8S初级入门系列之一-概述
本章节我们首先回顾了云计算的发展史,经历了物理机,虚拟机以及云原生的时代。整个发展的过程就是能力不断下沉,生产力不断得到解放的过程。虚拟机时代产生了VMware,Openstack等经典的产品,容器技术(特别是Docker),揭开了云原生时代幕布,K8S横空出世,成为事实意义上的云操作系统,是当今云原生的统治者。基于容器和K8S技术,Serverless技术使的生产力进一步得到解放,成为未来十年云计算的发展趋势。
2023-07-22 09:37:08
599
1
原创 AWS云计算技术架构探索系列之七-DevOps
通过这些年不断的布道和探索,DevOps理念已经深入人心,打破了开发和运维天然隔离,大大提升了效率。AWS通过提供一系列的工具和框架,实现了对DevIOps的全面支持。
2022-05-01 07:16:47
1489
原创 AWS云计算技术架构探索系列之四-存储
一、前言 目前主流的三种数据存储类型,包括文件存储,对象存储以及块存储。 文件存储是最常用的存储类型,以文件的形式存放数据,能将所有的目录、文件形成一个有层次的树形结构来管理。存储协议主要是NFS、CIFS等,能够支持成百上千的用户进行访问并上传下载文件,共享非常方便。一般用于视频,影像等文件的存储,以及大数据的HDFS存储等。AWS的EFS就是文件存储服务。 对象存储,与文件存储的有层次的树型结构不同,对象存储是平面化的。对象数据包括元数据以及对象本身,通过对象ID实现...
2022-05-01 07:15:41
3353
原创 AWS云计算技术架构探索系列之三-计算
一、前言计算是最核心的云服务,对于用户来说,用之不竭,按需使用的算力正是云计算的最主要的优势之一。AWS计算服务包括基于虚机的EC2,无服务器的Lambda,以及基于Docker容器的ECS。其中EC2是应用最广泛,最为熟悉的计算服务。下面我们就来具体介绍。二、EC2当我们开发一套管理系统程序,进行私有环境(非云环境)部署时,需要做哪些准备呢。购买硬件服务器,其内存,硬盘,cpu等配置需要能支持管理系统的运行。 安装合适的操作系统,比如linux,windows。 进行网络配置,比如
2022-05-01 07:14:58
2097
原创 AWS云计算技术架构探索系列之二-身份账户体系(IAM)
一、前言 建立身份账户体系是我们上云的第一步,良好的账户体系设计,会为后续的管理带来极大的便捷性和扩展性,反之,则可能增加管理的复杂,以及账户使用的不安全。 AWS设计了一套完备的身份账号体系,主要包括IAM(Identity and Access Management),以及Organizations,其中IAM,包括账号,用户组,用户,角色,策略等。其关系图如下:用户,用户是AWS的身份凭证,分为根用户和IAM用户。用户的识别包括用户名/密码,AK/SK。 用户组,...
2022-05-01 07:14:25
4136
原创 AWS云计算技术架构探索系列之一-开篇
一、前言1、什么是AWS AWS是亚马逊公司的云计算 品牌,作为全球云计算技术的首创者和领导者,其分布在全球25区域81个可用区的数据中心,提供200多项服务齐全的云服务(2021年12月份数据),包括计算,存储,数据库,无服务,大数据,人工智能等等。全球市场份额也保持在40%上下(Gartner2020数据),虽然面临追随者的挑战,但是市场的领导地位暂时还无法撼动。 在国内,由于政策,市场,竞争者等外部因素,以及AWS水土不服的自身原因,市场表现也一直难有起色。近几年...
2022-05-01 07:13:19
2580
原创 深入理解MySQL原理之三--如何实现事务与分库分表
一、前言MySQL有很多特性,其中事务和分库分表是我们开发过程常用到的,本章节我们重点介绍。我们将了解到:1、事务有哪些特点,事务的隔离级别,开发过程中如何选择对应的级别。二、事务1、为什么要有事务账户A给账户B账户B转款,处理流程如下:(1)、A账户扣款m元(2)、B账户收款m元如果第一步完成后,第二步出错了,那么就会导致A账户款被扣了,但是B账户没有收到款。如果哪个的银行系统这么设计,那么就离倒闭不远了,当然没有银行因为这个倒闭,因为使用了"事务"。"事务"将这.
2021-08-20 20:35:27
1309
原创 架构决策之消息中间件MQ系列七-总结
一、前言 前面我们介绍了ActiveMQ,RabbitMq,RocketMQ,Kafka,Pulsar五种消息中间件的基本的功能和架构设计,每种中间件从功能上是比较类似的,但是又各有千秋,不能笼统的说谁最优秀,需要针对具体的应用场景,做出适合的选择。今天我们从功能,性能,可靠性方面,总结下这几个中间件特点,以便给我们的选型做参考。二、选型标准1、功能对于消息中间件选型,功能是优先要考虑的因素,如果功能方面不满足生产要求,其他的也无从考虑。(1)优先级消息 对于消息...
2020-08-22 16:33:58
757
1
原创 架构决策之消息中间件MQ系列五-RocketMQ
一、前言 RocketMq是阿里贡献Apache消息中间件项目,采用java语言开发,经过阿里历年双十一流量洪峰的洗礼,并发性和可靠性进行了充分的验证,且支持的功能丰富,是活跃度较高的中间件之一,特别在国内市场。二、架构RocketMq由四部分组成,如下:NameServer,名字服务,每个NameServer维护全量的broker,topic路由的相关信息。NameServer可集群化部署,本身是无状态的,相互之间独立。为客户端(生产者和消费者)提供路由发现,同时接受broke...
2020-08-22 16:32:16
862
原创 架构决策之消息中间件MQ系列四-Kafka
1、前言 消息中间件(MQ)在当前的分布式系统架构中承载着重要的作用,其核心的场景:异步,解耦,削峰。异步,异步调用延迟低,对于一些耗时的场景,比如订单完成后,实现短信邮件确认,就适合采用消息分发机制。解耦,消息系统采用生产订阅模式,产生者只负责将消息发送出去,而不关心谁来消费,消费者只负责获取并处理消息,而不用关心谁生产的,生产和消费系统的解耦,对于大型复杂的业务生态尤其重要...
2020-08-22 16:31:48
619
原创 架构决策之消息中间件MQ系列三-RabbitMQ
一、前言 RabbitMQ是采用Erlang语言实现AMQP(Advanced Message Queuing Protocol,高级消息队列协议),AMQP是一个应用层协议的开放标准,解决消息中间件的需求和拓扑问题,标准仅解决了如何实现的问题,RabbitMQ是解决了怎么实现的问题。RabbitMQ的优点二、架构我们先来看下整体架构Producer,消息生产者,即...
2020-08-22 16:31:37
510
原创 架构决策之消息中间件MQ系列一-开篇
一、消息中间件特性消息中间件(MQ)在当前的分布式系统架构中承载着重要的作用,其核心的应用场景主要有以下三个:异步,异步调用为非阻塞模式,延迟低,对于一些耗时的场景,比如订单完成后,实现短信或邮件通知,就适合采用消息分发机制。解耦,消息系统采用生产订阅模式,产生者只负责将消息发送出去,而不关心谁来消费;消费者只负责获取并处理消息,而不用关心谁生产的,生产和消费系统的解耦,对于大型复杂的业务系统尤其重要,微服务的理念也是如此。削峰,在高并发的场景下,通过消费系统的延迟消费,大大缓解服务器的压.
2020-08-22 16:31:06
605
原创 TCP/UDP,HTTP,HTTP2.0,HTTPS,史上最详解,看一篇全懂了
一、前言作为上层应用的开发者,对网络通讯知识平时接触的少,久而久之很多都忘了,但这又是it人的饭碗,出去面试,这些基础知识说不出一二三,得会鄙视。本篇就为您全面解析这些基础知识,只要原理,不讲细节,只需理解,不必深究。二、OSI七层模型我们从七层模型说起,这是整个网络通讯技术的基石,所有的网络设备和通讯协议都依附于这七层模型上。话不多说先上图。...
2020-04-05 22:24:27
8028
1
原创 玩转Reactjs第二篇-渲染和JSX
一、前言前一章我们搭建了reactjs的标准工程,本章节我们基于标准工程的demo应用,了解react的 渲染和JSX语法。二、渲染1、在标准工程的public/index.html下<div id="root"></div>该div是我们整个应用的根节点,所有的DOM节点都挂载在该节点下,可以看成web容器。2、再看src/index.js代码...
2020-02-24 22:11:24
379
原创 玩转Reactjs第一篇-构建工程(create-react-app)
一、前言 前期对vue的使用以及源码做了一些介绍和分析,vue由于其易用易学,性能高等特点,吸引越来越多的前端开发者在使用。作为前端框架的三剑客之一的Reactjs,得到了facebook社区大力支持,有着丰富的UI框架组件,用户群也大大多余vue,ng,算是老牌的前端框架。vue和reactjs的异同特性,网上也总结了非常多,但大部分都是概念性的泛泛而谈,本系列博客在学习Reactj...
2020-02-24 22:04:18
1717
原创 VUE源码学习第十三篇-patch(dom更新)
一、总述前一章节,我们讲解了diff算法的原理,本章节一起看下vue如何通过该算法实现patch过程。还记得在第六篇我们在讲到vm._update时,它负责将Vnode转化为真实的dom,包含两个分支过程,dom的首次渲染,以及后续的dom的更新。 Vue.prototype._update = function (vnode: VNode, hydrating?: boolean)...
2019-07-29 10:57:21
1859
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人