流量留
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在Kubernetes中创建静态Pod(Static Pod)的流程如下:
2. **创建Pod定义文件**:在该节点上选择一个目录,通常是`/etc/kubernetes/manifests`,来保存Web服务Pod的定义文件,例如`/etc/kubernetes/manifests/static-web.yaml`。6. **静态Pod的可见性**:kubelet会自动在Kubernetes API服务器上为每个静态Pod创建一个镜像Pod(Mirror Pod),这意味着虽然可以在API服务器上看到这些Pod,但是不能通过API服务器来控制它们。原创 2024-11-06 15:31:50 · 292 阅读 · 0 评论 -
在Kubernetes(K8S)中,Pod的创建流程大致如下:
7. **kubelet监控Pod状态**:节点上的kubelet进程通过API Server,查看etcd数据库监听到kube-scheduler产生的Pod绑定事件后获取对应的Pod清单,然后调用本机中的容器运行时接口初始化volume、分配IP、下载image镜像,创建容器并启动服务。6. **节点上创建Pod的容器并启动**:一旦Node接受调度请求,它会在其上创建Pod的容器并启动它们。5. **节点接受调度请求**:被选中的Node会接受调度请求,并准备在其上创建Pod。原创 2024-11-06 15:30:50 · 269 阅读 · 0 评论 -
Prometheus Exporter的底层原理涉及到几个关键组件和步骤,主要包括Collector、Exporter以及Prometheus Server
Exporter可以独立运行,作为中间代理人的角色,将操作系统或应用程序的状态数据转换为Prometheus可以读取的监控数据。- Exporter可以是专门为特定服务或系统编写的,比如Node Exporter用于收集服务器节点的物理指标状态数据,或者可以是用户自定义的Exporter,用于监控特定的应用程序或服务。通过这些组件和步骤,Prometheus Exporter能够为Prometheus Server提供实时的监控数据,使得用户可以对系统和应用程序的性能进行有效的监控和分析。原创 2024-11-04 23:25:55 · 603 阅读 · 0 评论 -
Kubernetes(k8s)和Spring Cloud都是处理分布式系统问题的框架,但它们在服务注册和发现、API网关、负载均衡以及配置管理等方面有着各自的特点和区别:
**Spring Cloud**:通过Eureka等组件实现服务的自动注册与发现,服务提供者将自己注册到Eureka Server,服务消费者从Eureka Server获取服务列表。- **Spring Cloud**:提供Spring Cloud Gateway作为API网关,它基于Spring Framework构建,提供动态路由、监控、弹性、安全等功能。- **Spring Cloud**:通过Ribbon提供客户端负载均衡,可以在服务的多个实例之间分配请求,确保系统的稳定性。原创 2024-11-02 18:00:11 · 436 阅读 · 0 评论 -
临时卷(EV)
configMap卷和Secret卷是一种特殊类型的卷,kubelet引用configMap和Secret中定义的内容,在Pod所在节点上生成一个临时卷,将数据注入到Pod中。删除Pod,临时卷也会被删除。注意:这里的configMap和secret代表的是卷的类型,不是configMap和secret对象。emptyDir会创建一个初始状态为空的目录,存储空间来自本地的 kubelet 根目录或内存(需要将。例如,将redis的存储目录设置为emptyDir。通常使用本地临时存储来设置缓存、保存日志等。原创 2024-10-26 21:15:46 · 300 阅读 · 0 评论 -
卷(Volume)
将数据存储在容器中,一旦容器被删除,数据也会被删除。卷是独立于容器之外的一块存储区域,通过挂载(Mount)的方式供Pod中的容器使用。原创 2024-10-26 21:14:14 · 465 阅读 · 0 评论 -
ConfigMap与Secret
在Docker中,我们一般通过绑定挂载的方式将配置文件挂载到容器里。在Kubernetes集群中,容器可能被调度到任意节点,配置文件需要能在集群任意节点上访问、分发和更新。原创 2024-10-26 21:13:23 · 287 阅读 · 0 评论 -
创建MySQL数据库
例如,当Pod被重新创建时,可能会被调度到与原先不同的节点上,导致新的Pod没有数据。仅用于在单节点集群上进行开发和测试,不适用于多节点集群;卷将主机节点上的文件或目录挂载到 Pod 中。在多节点集群使用本地存储,可以使用。原创 2024-10-26 21:12:32 · 230 阅读 · 0 评论 -
金丝雀发布
早期,工人下矿井之前会放入一只金丝雀检测井下是否存在有毒气体。采用金丝雀部署,你可以在生产环境的基础设施中小范围的部署新的应用代码。一旦应用签署发布,只有少数用户被路由到它,最大限度的降低影响。如果没有错误发生,则将新版本逐渐推广到整个基础设施。原创 2024-10-26 20:50:53 · 574 阅读 · 0 评论 -
声明式对象配置
由于一个集群中可能管理成千上万个容器,我们可以使用标签高效的进行选择和操作容器集合。kubernetes使用yaml文件来描述 Kubernetes 对象。是附加到对象(比如 Pod)上的键值对,用于补充对象的描述信息。标签使用户能够以松散的方式管理对象映射,而无需客户端存储这些映射。但它功能有限,不适合复杂场景,操作不容易追溯,多用于开发和调试。标签选择器最常见的用法是为Service选择一组Pod作为后端。好处是操作留痕,适合操作复杂的对象,多用于生产。声明式配置就好比申请表,学习难度大且配置麻烦。原创 2024-10-26 20:49:59 · 885 阅读 · 0 评论 -
Namespace(命名空间)
是一种资源隔离机制,将同一集群中的资源划分为相互隔离的组。命名空间可以在多个用户之间划分集群资源(通过同一命名空间内的资源名称要唯一,但跨命名空间时没有这个要求。命名空间作用域仅针对带有名字空间的对象,例如 Deployment、Service 等。这种作用域对集群访问的对象不适用,例如 StorageClass、Node、PersistentVolume 等。default使用查看lease对象。原创 2024-10-26 20:48:41 · 451 阅读 · 0 评论 -
Service(服务)
Service将运行在一组上的应用程序公开为网络服务的抽象方法。Service为一组 Pod 提供相同的 DNS 名,并且在它们之间进行负载均衡。Kubernetes 为 Pod 提供分配了IP 地址,但IP地址可能会发生变化。集群内的容器可以通过service名称访问服务,而不需要担心Pod的IP发生变化。Kubernetes Service 定义了这样一种抽象:逻辑上的一组可以互相替换的 Pod,通常称为微服务。Service 对应的 Pod 集合通常是通过来确定的。原创 2024-10-26 20:47:53 · 348 阅读 · 0 评论 -
Deployment(部署)与ReplicaSet(副本集)
是对ReplicaSet和Pod更高级的抽象。它使Pod拥有多副本,自愈,扩缩容、滚动升级等能力。(副本集)是一个Pod的集合。它可以设置运行Pod的数量,确保任何时间都有指定数量的 Pod 副本在运行。通常我们不直接使用ReplicaSet,而是在Deployment中声明。原创 2024-10-26 20:46:51 · 419 阅读 · 0 评论 -
Pod(容器集)
是包含一个或多个容器的容器组,是 Kubernetes 中创建和管理的最小对象。localhost。原创 2024-10-26 20:44:48 · 814 阅读 · 0 评论 -
使用K3s快速搭建集群
提示:1.本课程基于kubernetes V1.25版本。2.从V1.24开始,kubernetes默认容器运行时使用containerd,不再使用docker。原创 2024-10-26 20:38:32 · 690 阅读 · 0 评论 -
安装Minikube
Minikube是一个可以本地运行的单机版kubernetes,方便我们学习kubernetes和调试程序。Minikube默认安装kubernetes v1.25.0,需要将容器运行时设置为。进行通信,可以使用 kubectl 部署应用程序、检查和管理群集资源以及查看日志。安装Minikube需要使用Docker或虚拟机。运行v1.24 .0及之后版本,都需要此设置。如果要运行其他kubernetes版本,使用以下命令。可以看到,启动了2个dashboard容器。端口是随机的,每次启动可能会变化。原创 2024-10-26 20:36:07 · 707 阅读 · 0 评论 -
kubernetes简介
Kubernetes 是一个开源的容器编排引擎和容器集群管理工具,用来对容器化应用进行自动化部署、 扩缩和管理。Kubernetes这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有8个字符。Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 是 CNCF 托管的第一个开源项目。因此现在提到云原生,往往我们都把它与kubernetes联系起来。通俗解释。原创 2024-10-26 20:32:56 · 872 阅读 · 0 评论 -
为什么Kubernetes学起来很难?
■应用程序包括前端(node/nginx)、缓存(redis)、数据库(mysql)、后端(java)○本课程会演示常用中间件的安装(MySQL主从集群、Redis主从集群)○本课程使用K3s快速创建学习环境,不要把时间和精力浪费在搭环境上。○本课程采用1.25版本,使用containerd作为容器运行时。●很多教程只有例子,没有实战,导致“一学就会,一用就废”●网络问题,许多谷歌镜像或软件仓库访问不到,拉取失败。○本课程会演示如何在K8s上运行一个完整的应用。○手动拉取镜像、手动导出、导入镜像。原创 2024-10-26 20:32:03 · 229 阅读 · 0 评论 -
kubernetes架构
云控制器管理器(Cloud Controller Manager)允许你将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。控制器负责实际运行集群,controller-manager控制器管理器则是将多个控制器功能合而为一,降低了程序的复杂性。如果在自己的环境中运行 Kubernetes,或者在本地计算机中运行学习环境, 所部署的集群不需要有云控制器管理器。节点组件会在每个节点上运行,负责维护运行的 Pod 并提供 Kubernetes 运行环境。原创 2024-10-26 20:29:34 · 940 阅读 · 0 评论 -
K8s网关成为了管理和路由外部流量进入集群内部服务的重要组件。Spring Cloud Gateway和Kubernetes Ingress是两个非常受欢迎的选择,但它们在某些方面存在差异
在微服务架构中,API网关扮演着至关重要的角色,它不仅是系统的唯一入口,还负责请求路由、过滤、熔断、限流等任务。而对于使用Spring Cloud的项目,或者需要更灵活和强大的路由功能的项目,可以选择使用Spring Cloud Gateway。此外,还有云原生网关解决方案,如阿里云的MSE云原生网关,它提供了高性能、高集成和开箱即用的优势,可以大幅降低服务成本。1. **功能和灵活性**:Spring Cloud Gateway提供了非常灵活和强大的功能,可以根据实际需求实现不同的路由和流量控制策略。原创 2024-10-11 22:45:51 · 559 阅读 · 0 评论 -
在Kubernetes中实现灰度发布(Canary Release)是一种有效的策略,它允许逐步将新版本的应用推送给部分用户群体,以收集反馈并监控新版本的表现
4. **基于权重的流量切分**:使用Ingress-Nginx的`canary-weight`注解,可以基于服务权重的流量切分,适用于蓝绿部署。5. **基于用户请求的流量切分**:使用Ingress-Nginx的`canary-by-header`或`canary-by-cookie`注解,可以根据请求头或cookie的值将流量切分到不同的版本。1. **减少风险**:通过仅向一部分用户发布新版本,可以减少新版本可能引入的问题对所有用户的影响。### 实现灰度发布的步骤。### 灰度发布的优势。原创 2024-10-11 22:23:14 · 501 阅读 · 0 评论 -
在 Kubernetes 中,**Headless Service** 是一种特殊类型的 Service,它不通过 kube-proxy 进行负载均衡,而是直接将请求发送到后端的 Pod
在 Kubernetes 中,**Headless Service** 是一种特殊类型的 Service,它不通过 kube-proxy 进行负载均衡,而是直接将请求发送到后端的 Pod。- **负载均衡**:由于不通过 kube-proxy 进行负载均衡,Headless Service 不适合需要负载均衡的场景。- **普通 Service**:通过 kube-proxy 进行负载均衡,将请求转发到后端的 Pod。- **直接访问**:某些应用可能需要直接与后端 Pod 通信,而不是通过负载均衡器。原创 2024-07-19 11:05:55 · 448 阅读 · 0 评论 -
Kubernetes(简称 K8s)是一个基于容器技术的分布式架构方案
它由谷歌开发并开源,旨在简化应用程序的部署和管理过程。- **ApiServer**:资源操作的唯一入口,提供认证、授权、API注册和发现等机制。- **Kubelet**:维护容器的生命周期,控制 Docker 来创建、更新、销毁容器。- **调度**:调度调优,调度框架,策略,Limit Range,Resource Quota。- **Controller**:控制器,用于管理 Pod,如启动、停止、伸缩数量等。- **Pod**:Kubernetes 的最小控制单元,容器运行在 Pod 中。原创 2024-07-19 11:01:44 · 454 阅读 · 0 评论