云原生
文章平均质量分 75
林木森^~^
这个作者很懒,什么都没留下…
展开
-
【云原生篇】深入理解K8S CNI、CRI 和 CSI
在 Kubernetes (K8s) 生态系统中,CNI、CRI 和 CSI 是三个关键的接口,它们分别代表 Container Network Interface、Container Runtime Interface 和 Container Storage Interface。这些接口定义了 Kubernetes 如何与网络、容器运行时和存储系统进行交互,使得 Kubernetes 能够与各种技术栈兼容,增加了其灵活性和可扩展性。原创 2024-04-08 10:00:00 · 854 阅读 · 0 评论 -
【云原生篇】K8S部署全面指南
对于有特定需求和高度定制化环境的组织,可能需要从头开始手动部署Kubernetes集群。从零开始:通过阅读Kubernetes官方文档,了解各个组件和它们之间的交互,手动在虚拟机或物理机上配置和启动各个组件。这种方式最为复杂,但提供了最高程度的定制性。原创 2024-04-07 10:00:00 · 1001 阅读 · 0 评论 -
【云原生篇】数据持久化之PV和PVC
PV 和 PVC 之间的关系通过提供一个层次化和抽象化的接口来管理存储资源,使得用户可以灵活地请求所需的存储资源,而不必关心底层的存储细节。这种模型提高了 Kubernetes 应用的可移植性和灵活性,允许存储资源按需供给和回收,从而提高资源的利用率和管理效率。原创 2024-04-06 16:00:00 · 913 阅读 · 0 评论 -
【云原生篇】K8S配置管理之ConfigMap 和 Secret
在 Kubernetes (K8s) 中,ConfigMap 和 Secret 是用于存储配置数据的资源对象,它们允许你将配置与容器镜像分离,从而增加了应用的灵活性和可移植性。这两种资源的主要区别在于它们存储的数据类型和用途:ConfigMap 用于存储非敏感的配置数据,而 Secret 用于存储敏感数据。原创 2024-04-06 16:00:00 · 436 阅读 · 0 评论 -
【云原生篇】K8S之Job 和 CronJob
在 Kubernetes (K8s) 中,Job 和 CronJob 是两种管理批处理任务的资源对象,它们用于控制短暂的一次性任务(Job)或定时执行的周期性任务(CronJob)。原创 2024-04-05 11:05:39 · 378 阅读 · 0 评论 -
【云原生篇】K8S之DaemonSet 详解
Kubernetes 的 DaemonSet 是一种特殊的工作负载控制器,它确保所有(或某些特定的)节点上都运行一个 Pod 的副本。当有新节点加入集群时,DaemonSet 会自动在新节点上添加相应的 Pod,当节点从集群中移除时,这些 Pod 也会被垃圾回收。DaemonSet 通常用于运行集群范围内的关键服务,例如日志收集器、监控代理或其他守护进程。原创 2024-04-05 11:04:53 · 725 阅读 · 0 评论 -
【云原生篇】K8S之StatefulSet 详解
在 Kubernetes (K8s) 中,StatefulSet 是一种用于管理有状态应用的工作负载 API 对象。与 Deployment 管理无状态应用不同,StatefulSet 为每个 Pod 副本提供了持久性标识符(如名称和网络标识),并且可以保证部署和扩展顺序、以及网络标识和存储的稳定性。原创 2024-04-04 09:46:39 · 419 阅读 · 0 评论 -
【云原生篇】微服务革命:解锁Istio与Service Mesh
Service Mesh是一种用于处理服务间通信的基础设施层,它以轻量级的网络代理的形式实现,这些代理与应用程序的微服务一同部署。Service Mesh的核心目的是将网络通信的复杂性从应用程序代码中抽象出来,从而使开发人员可以专注于业务逻辑的开发,而不是通信的细节和问题。Istio 是一个开源的Service Mesh框架,它提供了一种连接、管理和保护微服务的方式。Istio通过提供一系列网络功能来增强微服务的可观测性、控制和安全性,而无需改动微服务本身的代码。原创 2024-04-03 09:30:00 · 671 阅读 · 0 评论 -
【云原生篇】掌握 Docker:从基础到性能优化的全面指南
Docker 是一个开放源代码的容器化技术,允许开发者将应用及其运行环境打包在一个轻量级、可移植的容器中。这个容器可以在任何支持 Docker 的系统上运行,确保应用在不同环境间的一致性和可移植性。Docker 使用 Linux 容器(LXC)的技术,但提供了更高级的抽象和自动化,使容器的创建、部署和管理更加简单高效。原创 2024-04-01 12:30:42 · 854 阅读 · 0 评论 -
K8S系列(十一)Kubernetes网络概念及策略控制
四大目标其实是在设计一个 K8s 的系统为外部世界提供服务的时候,从网络的角度要想清楚,外部世界如何一步一步连接到容器内部的应用?最终要达到目标,就是外部世界可以连接到最里面,对容器提供服务。对基本约束,可以做出这样一些解读:因为容器的网络发展复杂性就在于它其实是寄生在 Host 网络之上的。从这个角度讲,可以把容器网络方案大体分为 Underlay/Overlay 两大派别:为什么社区会提出 perPodperIP 这种简单武断的模型呢?我个人是觉得这样为后面的 service 管理一些服务的跟踪性能监控原创 2022-07-12 22:26:31 · 270 阅读 · 0 评论 -
K8S系列(九)可观测性之应用健康
首先来看一下,整个需求的来源:当把应用迁移到 Kubernetes 之后,要如何去保障应用的健康与稳定呢?其实很简单,可以从两个方面来进行增强:从可观测性上来讲,可以在三个方面来去做增强:当出现了问题之后,首先要做的事情是要降低影响的范围,进行问题的调试与诊断。最后当出现问题的时候,理想的状况是:可以通过和 K8s 集成的自愈机制进行完整的恢复。本小节为大家介绍 Liveness probe 和 eadiness probe。Liveness probe 也叫就绪指针,用来判断一个 pod 是否处在就绪状态原创 2022-07-11 19:26:43 · 351 阅读 · 0 评论 -
K8S系列(八)持久化存储(Pod Volumes,PV和PVC)
首先来看一下 Pod Volumes 的使用场景:以上两个场景,其实都可以借助 Volumes 来很好地解决,接下来首先看一下 Pod Volumes 的常见类型:接下来看一下 PV(Persistent Volumes)。既然已经有了 Pod Volumes,为什么又要引入 PV 呢?我们知道 pod 中声明的 volume 生命周期与 pod 是相同的,以下有几种常见的场景:以上场景中,通过 Pod Volumes 很难准确地表达它的复用/共享语义,对它的扩展也比较困难。因此 K8s 中又引入了 Per原创 2022-07-10 21:55:00 · 2803 阅读 · 0 评论 -
K8S系列(七)应用配置管理
首先一起来看一下需求来源。大家应该都有过这样的经验,就是用一个容器镜像来启动一个 container。要启动这个容器,其实有很多需要配套的问题待解决:ConfigMap 主要是管理一些可变配置信息,比如说我们应用的一些配置文件,或者说它里面的一些环境变量,或者一些命令行参数。它的好处在于它可以让一些可变配置和容器镜像进行解耦,这样也保证了容器的可移植性我们推荐用 kubectl 这个命令来创建,它带的参数主要有两个:一个是指定 name,第二个是 DATA。其中 DATA 可以通过指定文件或者指定目录,以及原创 2022-07-10 10:49:14 · 574 阅读 · 0 评论 -
K8S系列(六)DaemonSet详解
下面介绍第二个控制器:**DaemonSet。**同样的问题:如果我们没有 DaemonSet 会怎么样?下面有几个需求:DaemonSet 也是 Kubernetes 提供的一个 default controller,它实际是做一个守护进程的控制器,它能帮我们做到以下几件事情:这里用 fluentd 来做例子。DaemonSet 最常用的点在于以下几点内容:首先是存储,GlusterFS 或者 Ceph 之类的东西,需要每台节点上都运行一个类似于 Agent 的东西,DaemonSet 就能很好地满足这个原创 2022-07-09 11:57:13 · 9602 阅读 · 0 评论 -
K8S系列(五)Job和CornJob
首先我们来看一下 Job 的需求来源。我们知道 K8s 里面,最小的调度单元是 Pod,我们可以直接通过 Pod 来运行任务进程。这样做将会产生以下几种问题:我们来看一下 Kubernetes 的 Job 为我们提供了什么功能:这里面的内容都是一样的,唯一多了两个点:CronJob 其实和 Job 大体是相似的,唯一的不同点就是它可以设计一个时间。比如说可以定时在几点几分执行,特别适合晚上做一些清理任务,还有可以几分钟执行一次,几小时执行一次等等,这就叫定时任务。定时任务和 Job 相比会多几个不同的字段:原创 2022-07-09 11:52:20 · 670 阅读 · 0 评论 -
K8S系列(四)Deployment 详解
如果我们直接管理集群中所有的 Pod,应用 A、B、C 的 Pod,其实是散乱地分布在集群中。,现在有以下的问题:Deployment 能帮我们做什么事情呢?首先,Deployment 定义了一种 Pod 期望数量,比如说应用 A,我们期望 Pod 数量是四个,那么这样的话,controller 就会持续维持 Pod 数量为期望的数量。当我们与 Pod 出现了网络问题或者宿主机问题的话,controller 能帮我们恢复,也就是新扩出来对应的 Pod,来保证可用的 Pod 数量与期望数量一致;配置 Pod原创 2022-07-08 23:58:40 · 2911 阅读 · 0 评论 -
K8S系列(三)资源元信息
Kubernetes 的资源对象组成:主要包括了 Spec、Status 两部分。其中 Spec 部分用来描述期望的状态,Status 部分用来描述观测到的状态。第一个元数据,也是最重要的一个元数据是:资源标签。资源标签是一种具有标识型的 Key:Value 元数据,这里展示了几个常见的标签。标签主要用来筛选资源和组合资源,可以使用类似于 SQL 查询 select,来根据 Label 查询相关的资源。最常见的 Selector 就是相等型 Selector。一般是系统或者工具用来存储资源的非标示性信息,可原创 2022-07-07 23:05:55 · 448 阅读 · 0 评论 -
K8S系列(二)kubernetes核心概念
Pod 是 Kubernetes 的一个最小调度以及资源单元。用户可以通过 Kubernetes 的 Pod API 生产一个 Pod,让 Kubernetes 对这个 Pod 进行调度,也就是把它放在某一个 Kubernetes 管理的节点上运行起来。一个 Pod 简单来说是对一组容器的抽象,它里面会包含一个或多个容器。Volume 就是卷的概念,它是用来管理 Kubernetes 存储的,是用来声明在 Pod 中的容器可以访问文件目录的,一个卷可以被挂载在 Pod 中一个或者多个容器的指定路径下面。De原创 2022-07-07 22:54:40 · 187 阅读 · 0 评论 -
K8S系列(一)Kubernetes简介
Kubernetes 是一个自动化的容器编排平台,它负责应用的部署、应用的弹性以及应用的管理,这些都是基于容器的。服务的发现与负载的均衡;容器的自动装箱,我们也会把它叫做 scheduling,就是“调度”,把一个容器放到一个集群的某一个机器上,Kubernetes 会帮助我们去做存储的编排,让存储的声明周期与容器的生命周期能有一个连接;Kubernetes 会帮助我们去做自动化的容器的恢复。在一个集群中,经常会出现宿主机的问题或者说是 OS 的问题,导致容器本身的不可用,Kubernetes 会自动地对这原创 2022-07-06 23:40:37 · 929 阅读 · 0 评论 -
Kind 安装K8S集群
docker 安装下载镜像源wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装yum install docker-ce -y镜像仓库vi /etc/docker/daemon.json{ "registry-mirrors": ["https://wmn3wp4q.mirror.aliyuncs.com"]}启动s原创 2021-10-06 15:33:33 · 276 阅读 · 0 评论 -
centos7 下docker 安装
1.查看内核版本建议3.10以上(ubuntu下要linux内核3.8以上uname -a2.把yum包更新到最新yum update3.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yum install -y yum-utils device-mapper-persistent-data lvm2...原创 2020-02-08 16:52:15 · 144 阅读 · 0 评论 -
一起来搭建istio环境
打开 http://www.katacoda.com/ ,找到kubernetes 环境下载istiocurl -L https://istio.io/downloadIstio |sh -添加环境变量export PATH="$PATH:/root/istio-1.6.2/bin"安装istioctl mainifest apply --set profile=demo原创 2020-06-14 17:24:59 · 555 阅读 · 0 评论 -
Kubernetes,微服务以及 Service Mesh大白话
就微服务框架而言,可以认为出现了两个版本:微服务1.0和微服务2.0微服务1.0:代表就是阿里开源的Dubbo和Povital的SpringCloud,相对SpringCloud而言,Dubbo更多的是一种服务治理框架,并不能完全覆盖微服务的各项功能需求。而Spring Cloud一方面是针对微服务而设计,另外一方面Spring Cloud是通过集成各种组件的方式来实现微服务,因此理论上可以集...转载 2020-04-04 22:26:14 · 575 阅读 · 0 评论