深入浅出谈谈云原生
文章平均质量分 95
docker+k8s
Steve lu
一个情感丰富的理科男
展开
-
【云原生监控系列第三篇】Prometheus普罗米修斯进阶——PromQL的指标类型
这种方式的问题很明显,以系统 API 调用的平均响应时间为例:如果大多数 API 请求都维持在 100ms 的响应时间范围内,而个别请求的响应时间需要 5s,那么就会导致某些 Web 页面的响应时间落到中位数的情况,而这种现象被称为长尾问题。例如,假设 http 请求响应时间的样本的 9 分位数(quantile=0.9)的上边界为 0.01,即表示小于等于 0.01 的样本值的数量占总体样本值的 90%bucket 可以理解为是对数据指标值域的一个划分,划分的依据应该基于数据值的分布。原创 2022-11-18 01:28:13 · 6006 阅读 · 106 评论 -
【云原生监控系列第二篇】Prometheus进阶——PromQL数据类型
PromQL(Prometheus Query Language)是Prometheus内置的数据查询语言。支持用户进行实时的数据查询及聚合操作。Prometheus基于指标名称(metrics name)以及附属的标签集(labelset)唯一定义一条时间序列指标名称代表着监控目标上某类可测量属性的基本特征标识标签则是这个基本特征上再次细分的多个可测量维度指标名称相同,但是标签不同也是不同的时间序列。原创 2022-11-09 08:00:00 · 2802 阅读 · 75 评论 -
【云原生Kubernetes系列第六篇】Kubernetes的认证和授权
为解决这个问题,就有了CA证书认证机构,就是一个中间商,是给所有人颁发证书的这样一个机构,所有正常的网站的证书都在这个地方存储,当A问B索要公钥拿到公钥后,他就要去CA查询这个公钥是否合法,一看这个公钥是存在的,是哪个公司的,他的域名是什么,包括所有人是谁,各种各样的信息在CA都有备案,CA告诉A这个公钥是我颁发的,那么A使用这个公钥就是安全的。角色包含名字、权限、操作等信息。此时使用的是不同的算法,产生的密钥也不同,加密的密钥和解密的密钥互为一个密钥对,加密的称为公钥,解密的称为私钥。原创 2022-09-11 08:30:00 · 1339 阅读 · 5 评论 -
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)
zabbix是传统的监控系统,出现比云原生早,使用的是SQL关系型数据库;而Prometheus基于谷歌的borgemon使用go语言开发,使用TSDB数据库,所以支持云原生。zabbix最新发布的6.0版本,知道自己处于生死存亡时刻,也支持了Prometheus使用的TSDB数据库。Prometheus是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件Prometheusserver会定期从静态配置的监控目标或者基于服务发现自动配置的自标中进行。...原创 2022-07-31 08:00:00 · 5906 阅读 · 58 评论 -
【云原生Docker系列第十二篇】Docker consul的容器服务更新与发现(清晨和夜晚都请用力去生活)
服务注册与发现是微服务架构中不可或缺的重要组件。因为起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。如果需要调用后端服务A-N,就需要配置N个服务的网络位置,配置很麻烦后端服务的网络位置变化,都需要改变每个调用者的配置既然有这些问题,那么服务注册与发现就是解决这些问题的。原来架构改进后的架构consul提供的一些关键特性。...原创 2022-07-30 14:50:20 · 463 阅读 · 17 评论 -
【云原生Kubernetes系列项目实战第一篇】k8s集群+高可用负载均衡层+防火墙( 提及年少一词,应与平庸相斥)
实验拓扑(1)Kubernetes区域可采用Kubeadm方式进行安装。(2)要求在Kubernetes环境中,通过yaml文件的方式,创建2个NginxPod分别放置在两个不同的节点上,Pod使用hostPath类型的存储卷挂载,节点本地目录共享使用/data,2个Pod副本测试页面二者要不同,以做区分,测试页面可自己定义。(3)编写service对应的yaml文件,使用NodePort类型和TCP30000端口将Nginx服务发布出去。节点IP安装组件。......原创 2022-07-26 07:30:00 · 1594 阅读 · 34 评论 -
【云原生Kubernetes系列第七篇】一文掌握k8s之YAML文件(少攀谈,多沉潜,清醒而独立)
一文掌握k8s之YAML文件原创 2022-07-20 17:35:43 · 1351 阅读 · 43 评论 -
【云原生Kubernetes系列第五篇】kubeadm v1.20 部署K8S 集群架构(人生这道选择题,总会有遗憾)
前面使用二进制搭建了k8s,较为繁琐,本篇博客将介绍使用kubeadm搭建k8s以及部署Harbor私服。原创 2022-07-18 08:00:00 · 4724 阅读 · 93 评论 -
【云原生Docker系列第十一篇】Docker harbor私有仓库部署与管理(有故事的人根本不会讲故事)
上一篇博客,我们讲了搭建本地私有仓库,但是本地私有仓库的管理和使用比较麻烦,这个原生的私有仓库并不好用,所以我们采用harbor私有仓库,也叫私服,更加人性化。原创 2022-07-17 14:09:24 · 1010 阅读 · 15 评论 -
【云原生Docker系列第十篇】搭建本地私有仓库(我问青山何时老,青山问我几时闲)
由于网络的原因,从DockerHub下载和上传镜像速度可能会比较慢;在生产上使用的Docker镜像可能包含我们的代码、配置信息等,不想被外部人员获取,只允许内网的开发人员下载。为了解决以上问题,Docker官方提供了一个叫做registry的镜像用于搭建本地私有仓库使用。在内部网络措建的Docker私有仓库可以使内网人员下载、上传都非常快速,不受外网带宽等因素的影响,同时不在内网的人员也无法下载我们的镜像,并且私有仓库也支持配置仓库认证功能。接下来详细讲解registry。......原创 2022-07-16 19:11:08 · 790 阅读 · 15 评论 -
【云原生Kubernetes系列第四篇】二进制部署多master集群Kubernetes(k8s)v1.20( 一生不缺浪漫,唯独装不下遗憾)
搭建多master集群Kubernetes之前先要完成单节点部署,单节点部署参照上一篇博客【云原生Kubernetes系列第三篇】二进制部署单节点Kubernetes(k8s)v1.20node节点的kubelet.kubeconfig和kube-proxy.kubeconfig文件写明了apiserver的端口号和master节点的IP地址,从而找到master节点,当我们在部署集群的时候,就要有两个master,但是一个集群中只能有一个主,该如何指定呢?我们可以使用VIP地址。httpshttps。..原创 2022-07-15 17:44:10 · 2069 阅读 · 53 评论 -
【云原生Kubernetes系列第三篇】二进制部署单节点Kubernetes(k8s)v1.20(不要因为别人都在交卷,自己就乱写答案)
常见的K8S按照部署方式●MinikubeMinikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用于学习、预览K8S的一些特性使用。https●KubeadminKubeadmin也是一个工具,提供kubeadminit和kubeadmjoin,用于快速部署K8S集群,相对简单。https●二进制安装部署生产首选,从官方下载发行版的二进制包,手动部署每个组件和自签TLS证书,组成K8S集群,新手推荐。httpsetcd分布式键值对数据库,服务发现系统。...原创 2022-07-15 08:48:01 · 3089 阅读 · 119 评论 -
【云原生Docker系列第九篇】Docker-Compose 容器集群的快速编排(理想主义永远不会被现实主义所招安)
Dockerfile可以让用户管理一个单独的应用容器;而Compose则允许用户在一个模板(YAML格式)中定义一组相关联的应用容器(被称为一个project,即项目),例如一个Web服务容器再加上后端的数据库服务容器等。Docker-Compose项目是基于Python开发的Docker官方开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层,分别是 工程(project),服务(service)以及容器(container)。Docker-Compose原创 2022-07-11 21:46:53 · 1176 阅读 · 24 评论 -
【云原生Docker系列第七篇】浅谈镜像的分层原理(几位?“两位”)
镜像是Docker容器的基石,容器时镜像的运行实例,有了镜像才能启动容器Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。公共镜像库,默认是国外的源,即使可能做了CDN,下载速度还是比较慢,可以使用国内的源例如阿里云来加速阿里云镜像加速hello-world是Docker官方提供的一个镜像,可以用来验证Docker是否安装成功。我们从Docker Hub上下载它,如下图所示:用docker images命令查看镜像信息,如下图所原创 2022-07-11 15:47:34 · 979 阅读 · 10 评论 -
【云原生Kubernetes系列第二篇】Kubernetes(k8s)核心组件(对的人兜兜转转最后还是会遇见)
Kubernetes(K8S)是一个容器集群编排工具,提高对大规模容器管理的效率,实现在多台主机上编排容器,实现服务发现、服务调度、动态伸缩等功能用于暴露 Kubernetes API,任何资源请求或调用操作都是通过 kube-apiserver 提供的接口进行。以 HTTP Restful API 提供接口服务,所有对象资源的增删改查和监听操作都交给 API Server 处理后再提交给 Etcd 存储。API Server的架构:Controller Manager结构图运行管理控制器,是 K8S 集原创 2022-07-11 08:32:55 · 982 阅读 · 12 评论 -
【云原生Kubernetes系列第一篇】深入理解容器集群管理系统Kubernetes(k8s)原理(相遇的意义在于彼此照亮)
Kubernetes 是的缩写为:K8s这个缩写是因为 k 和 s 之间有八个字符的关系。Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。用于自动部署、扩展和管理“容器化(containerized) 应用程序"的开源系统。可以理解成K8S是负责自动化运维管理多个容器化程序(比如Docker)的集群,是一个生态极其丰富的容器编排框架原创 2022-07-10 22:26:34 · 1212 阅读 · 15 评论 -
【云原生Docker系列项目实战第一篇】dockerfile+lnmp+workpress(星星温柔泛滥,人间至善)
本篇博客为使用dockerfile搭建lnmp并部署workpress2. 创建nginx容器3. 创建mysql容器4. 搭建php容器进入mysql容器进行授权访问:http://192.168.109.133/wordpress/index.php原创 2022-07-03 19:50:02 · 737 阅读 · 13 评论 -
【云原生Docker系列第六篇】基于Dockerfile创建镜像(你与星光同样浪漫)
Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义的镜像。创建镜像有三种方法:(1) 首先启动一个镜像,在容器里做修改(2) 然后将修改后的容器提交为新的镜像,需要使用该容器的ID号创建新镜像常用选项:通过导入操作系统模板文件可以生成镜像,模板可以从OPENVZ开源项目下载,下载地址为:https://wiki.openvz.org/Download/template/precrated特性:我们下载的时候看到的一层层的就是联合文件系统。Docker镜原创 2022-06-27 19:43:29 · 894 阅读 · 17 评论 -
【云原生Docker系列第五篇】Docker数据管理(与其互为人间,不如自成宇宙)
用户在使用Docker的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作。容器中管理数据主要有两种方式:本文将首先介绍如何在容器内创建数据卷,并且把本地的目录或文件挂载到容器内的数据卷中。接下来,会介绍如何使用数据卷容器在容器和主机、容器和容器之间共享数据,并实现数据的备份和恢复。数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数原创 2022-06-26 21:41:57 · 931 阅读 · 5 评论 -
【云原生Docker系列第四篇】Docker Cgroups资源控制操作(人人都喜欢森林,却都不想去种树)
cgroups,是一个非常强大的linux内核工具,他不仅可以限制被namespace隔离起来的资源,还可以为资源设置权、计算使用量、操控进程启停等等。所以cgroups(Control groups)实现了对资源的配额和度量。...原创 2022-06-26 14:21:31 · 3039 阅读 · 24 评论 -
【云原生Docker系列第三篇】Docker网络模式(在失去的所有人里,我最怀念自己 )
docker 使用linux 桥接,在宿主机虚拟一个docker 容器网桥(docker0) ,docker 启动一个容器时会根据docker 网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker 网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP 直接通信.docker 网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过Container-IP 访问到容器原创 2022-06-24 19:42:17 · 1617 阅读 · 11 评论 -
【云原生Docker系列第二篇】Docker容器管理(我在人间贩卖黄昏,只为带着星光照耀你)
docker容器相当于一个进程,性能接近于原生,几乎没有损耗;docker容器在单台主机上支持的数量成百上千;容器与容器之间相互隔离;镜像是创建容器的基础,可以理解镜像为一个压缩包容器创建就是将镜像加载到容器的过程。新创建的容器处于停止状态,不会运行任何程序,需要在其中发起一个进程来启动容器.常用选项:直接使用 docker ps ,只查看当前正在运行的容器常用选项:字段含义CONTAINER ID容器ID号IMAGE使用什么镜像去运行COMMAND容器运行时使用的原创 2022-06-24 13:21:31 · 1184 阅读 · 8 评论 -
【云原生Docker系列第一篇】Docker镜像管理(生活本来就是一场浪漫革命)
云计算涌现出很多改变传统IT架构和运维方式的新技术,比如虚拟机、容器、微服务、Serverless(无服务),无论这些技术应用在哪些场景,降低成本、提升效率是云服务永恒的主题1.运行物理机,也称为裸金属2.虚拟机VM,可以在一台物理机上创建多个虚拟机,并把物理配置分发成多个虚拟配置缺点:性能损耗大,大约损耗50%3.容器 (常用软件:docker、podman、rocket、container)容器内部自身有一个小型操作系统4.函数(函数化,代码化)Docker 的Logo设计为蓝色鲸鱼,拖着许多集装箱,鲸原创 2022-06-21 19:40:11 · 1999 阅读 · 18 评论