10 2022 档案

摘要:基于HTTP的探测(HTTPGetAction)向目标容器发起一个HTTP请求,根据其响应码进行结果判定,响应码形如2xx或者3xx时表示检测通过。“sepc.containers.livenessProbe.httpGet”字段用于定义此类检测,它的可用配置字段包括如下几个。 host < str 阅读全文
posted @ 2022-10-29 20:40 Zix- 阅读(303) 评论(0) 推荐(0) 编辑
摘要:有不少应用程序长时间持续运行后会逐渐转为不可用状态,并且仅能通过重启操作恢复,Kubernetes的容器存货性探测机制可发现诸如此类的问题,并根据探测结果结合重启策略触发后续的行为。存活性探测是隶属于容器级别的配置,kubelet可基于它判定何时需要重启一个容器。 Pod spec为容器列表中的相应 阅读全文
posted @ 2022-10-28 16:20 Zix- 阅读(406) 评论(0) 推荐(0) 编辑
摘要:容器的重启策略 容器程序发生崩溃或容器申请超出限制的资源等原因都可能会导致Pod对象的终止,此时是否应该重建该Pod对象则取决于其重启策咯(restartPolicy)属性的定义。 1)Always:但凡Pod对象终止就将其重启,此为默认设定。 2)OnFailure:仅在Pod对象出现错误时方才将 阅读全文
posted @ 2022-10-27 16:55 Zix- 阅读(449) 评论(0) 推荐(0) 编辑
摘要:Pod生命周期中的重要行为 除了创建应用容器(主容器及其辅助容器)之外,用户还可以为Pod对象定义其生命周期中的多种行为,如初始化容器、存活性探测及就绪性探测等。 初始化容器 初始化容器 (init container)即应用程序的主容器启动之前要运行的容器,常用于为主容器执行一些预置操作,它们具有 阅读全文
posted @ 2022-10-26 15:15 Zix- 阅读(38) 评论(0) 推荐(0) 编辑
摘要:Pod对象自从其创建开始至其终止退出的时间范围称为其生命周期。在这段时间中,Pod会处于多种不同的状态,并执行一些操作;其中,创建主容器(main container)为必需的操作,其他可选的操作还包括运行初始化容器(init container)、容器启动后钩子(post start hook)、 阅读全文
posted @ 2022-10-25 15:15 Zix- 阅读(28) 评论(0) 推荐(0) 编辑
摘要:资源注解 除了标签(label)之外,Pod与其他各种资源还能使用资源注解(annotation)。与标签类似,注解也是“键值”类型的数据,不过它不能用于标签及挑选Kubernetes对象,仅可用于为资源提供“元数据”信息。另外,注解中的元数据不受字符数量的限制,它可大可小,可以为结构化或非结构化形 阅读全文
posted @ 2022-10-24 15:56 Zix- 阅读(39) 评论(0) 推荐(0) 编辑
摘要:Pod节点选择器是标签及标签选择器的一种应用,它能够让Pod对象基于集群中工作节点的标签来挑选倾向运行的目标节点。 Kubernetes的kube-scheduler守护进程负责在各工作节点中基于系统资源的可用性等标签挑选一个来运行待创建的Pod对象,默认的调度器是default-scheduler 阅读全文
posted @ 2022-10-23 16:27 Zix- 阅读(612) 评论(0) 推荐(0) 编辑
摘要:标签选择器用于表达标签的查询条件或选择标准,Kubernetes API目前支持两个选择器:基于等值关系(equality-based)以及基于集合关系 (set-based)。例如,env=production和env!=qa是基于等值关系的选择器,而tier in(frontend,backen 阅读全文
posted @ 2022-10-22 16:26 Zix- 阅读(252) 评论(0) 推荐(0) 编辑
摘要:随着同类型资源对象的数量越来越多,分类管理也变得越来越有必要:基于简单且直接的标准将资源对象划分为多个较小的分组,无论是对开发人员还是对系统工程师来说,都能提升管理效率,这也正是 Kubernetes 标签(Label)的核心功能之一。对于附带标签的资源对象,可使用标签选择器(Label Selec 阅读全文
posted @ 2022-10-21 16:51 Zix- 阅读(88) 评论(0) 推荐(0) 编辑
摘要:共享节点的网络名称空间 同一个Pod对象的各容器均运行于一个独立的、隔离的Network名称空间中,共享同一个网络协议栈及相关的网络设备。也有一些特殊的Pod对象需要运行于所在节点的名称空间中,执行系统级的管理任务,例如查看和操作节点的网络资源甚至是网络设备等。 通常,以kubeadm部署的Kube 阅读全文
posted @ 2022-10-20 15:26 Zix- 阅读(37) 评论(0) 推荐(0) 编辑
摘要:自定义运行的容器化应用 由Docker镜像启动容器时运行的应用程序在相应的Dockerfile中由ENTRYPOINT指令进行定义,传递给程序的参数则通过CMD指令指定,ENTRYPOINT指令不存在时,CMD可用于同时指定程序及其参数。例如,在某工作节点上运行下面的命令获取ikubernetes/ 阅读全文
posted @ 2022-10-19 15:13 Zix- 阅读(33) 评论(0) 推荐(0) 编辑
摘要:Pod是Kubernetes系统的基础单元,是资源对象模型中可由用户创建或部署的最小组件,也是在Kubernetes系统上运行容器化应用的资源对象。其他的大多数资源对象都是用于支撑和扩展Pod对象功能的,比如同于管控的Pod运行的StatefulSet和Deployment等控制器对象,用于暴露Po 阅读全文
posted @ 2022-10-18 17:06 Zix- 阅读(71) 评论(0) 推荐(0) 编辑
摘要:Pod是Kubernetes API中的核心资源类型,它可以定义在JSON或者YAML格式的资源清单中,由资源管理命令进行陈述式声明管理。创建时通过create或apply命令将请求提交到API Server并将其保存至集群状态存储系统etcd中,然后由调度器将其调度至最佳节点,并被相应节点的kub 阅读全文
posted @ 2022-10-17 16:00 Zix- 阅读(134) 评论(0) 推荐(0) 编辑
摘要:管理名称空间资源 名称空间(Namespace)是Kubernetes集群级别的资源,用于将集群分隔为多个隔离的逻辑分区以配置给不同的用户、租户、环境或项目使用。例如,可以为development、qa和production应用环境分别创建各自的名称空间。 Kubernetes的绝大多数资源都隶属于 阅读全文
posted @ 2022-10-16 15:28 Zix- 阅读(124) 评论(0) 推荐(0) 编辑
摘要:假设有这样一套环境: Kubernetes集群上的tomcat-deploy控制器生成了两个运行于Pod资源中的tomcat实例,tomcat-svc是将它们统一暴露于集群中的访问入口。现在需要通过Ingress资源将tomcat-svc发布给集群外部的客户端访问。 【为了方便理解,下面的测试操作过 阅读全文
posted @ 2022-10-15 17:25 Zix- 阅读(251) 评论(0) 推荐(0) 编辑
摘要:Ingress控制器自身是运行于Pod中的容器应用,一般是Nginx或Envoy一类的具有代理及负载均衡功能的守护进程,它监视着来自于API Server的Ingress对象状态,并以其规则生成相应的应用程序专有格式的配置文件并通过重载或重启守护进程而使新配置生效。 例如,对于Nginx来说,Ing 阅读全文
posted @ 2022-10-14 17:50 Zix- 阅读(169) 评论(0) 推荐(0) 编辑
摘要:Ingress资源类型 基于HTTP暴露的每个Service资源均可发布于一个独立的FQDN主机名之上,如 “ www.ik8s.io ” ;也可发布于某主机上的URL路径之上,从而将它们整合到同一个Web站点,如 “ www.ik8s.io/garafana ” 。至于是否需要发布为HTTPS类型 阅读全文
posted @ 2022-10-13 09:44 Zix- 阅读(84) 评论(0) 推荐(0) 编辑
摘要:架构 k8s的组件架构图 OCI (Open Container Initiative) 开放容器标准。是一个轻量级,开放的治理结构(项目),在 Linux 基金会的支持下成立,致力于围绕容器格式和运行时创建开放的行业标准。 Protobu是一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的 阅读全文
posted @ 2022-10-12 15:36 Zix- 阅读(272) 评论(0) 推荐(1) 编辑
摘要:创建Ingress资源 Ingress资源是基于HTTP虚拟主机或URL的转发规则,它在资源配置清单的spec字段中嵌套了rules、backend和tls等字段进行定义。下面的示例中定义了一个Ingress资源,它包含了一个转发规则,把发往 www.ilinux.io 的请求代理给名为myapp- 阅读全文
posted @ 2022-10-11 16:54 Zix- 阅读(117) 评论(0) 推荐(0) 编辑
摘要:Ingress资源 Kubernetes提供了两种内建的云端负载均衡机制(cloud load balancing)用于发布公共应用,一种是工作于传输层的Service资源,它实现的是“TCP负载均衡器”,另一种是Ingress资源,它实现的是“HTTP(S)负载均衡器”。 (1)TCP负载均衡器 阅读全文
posted @ 2022-10-10 09:53 Zix- 阅读(37) 评论(0) 推荐(0) 编辑
摘要:Headless类型的Service资源 Service对象隐藏了各Pod资源,并负责将客户端的请求流量调度至该组Pod对象之上。不过,偶尔也会存在这样一类需求: 客户端需要直接访问Service资源后端的所有Pod资源,这时就应该向客户端暴露每个Pod资源的IP地址,而不再是中间层Service对 阅读全文
posted @ 2022-10-08 09:57 Zix- 阅读(46) 评论(0) 推荐(0) 编辑
摘要:LoadBalancer类型的Service资源 NodePort类型的Service资源虽然能够于集群外部访问得到,但外部客户端必须得事先得知NodePort和集群中至少一个节点的IP地址,且选定的节点发生故障时,客户端还得自行选择请求访问其他的节点。另外,集群节点很可能是某IaaS云环境中使用私 阅读全文
posted @ 2022-10-07 12:50 Zix- 阅读(280) 评论(0) 推荐(0) 编辑
摘要:NodePort类型的Service资源 NodePort即节点Port,通常在安装部署Kubernetes集群系统时会预留一个端口范围用于NodePort,默认为30000~32767之间的端口。与ClusterIP类型的可省略.spec.type属性所不同的是,定义NodePort类型的Serv 阅读全文
posted @ 2022-10-06 13:41 Zix- 阅读(200) 评论(0) 推荐(0) 编辑
摘要:Service的IP地址仅在集群内可达,然而,总会有些服务需要暴露到外部网络中接受各类服务端的访问,例如分层架构应用中的前端Web应用程序等。此时,就需要在集群的边缘为其添加一层转发机制,以实现将外部请求流量接入到集群的Service资源之上,这种操作也称为发布服务到外部网络中。 Service类型 阅读全文
posted @ 2022-10-05 10:14 Zix- 阅读(139) 评论(0) 推荐(0) 编辑
摘要:服务发现方式:环境变量 创建Pod资源时,kubelet会将其所属名称空间内的每个活动的Service对象以一系列环境变量的形式注入其中。它会支持使用Kubernetes Service环境变量以及与Docker的links兼容的变量。 (1)Kubernetes Service环境变量 Kuber 阅读全文
posted @ 2022-10-04 20:38 Zix- 阅读(41) 评论(0) 推荐(0) 编辑
摘要:服务发现概述 简单来说,服务发现就是服务或者应用之间互相定位的过程。不过,服务发现并非新概念,传统的单体应用架构也会用到,只不过单体应用的动态性不强,更新和重新发布的频率较低,通常以月甚至以年计,基本上不会进行自动伸缩,因此服务发现的概念无须显性强调。 微服务意味着存在更多的独立服务,但它们并非独立 阅读全文
posted @ 2022-10-03 19:47 Zix- 阅读(47) 评论(0) 推荐(0) 编辑
摘要:Service资源还支持Session affinity(绘会话粘性或粘性会话)机制,它能够将来自同一个客户端的请求 始终转发至同一个后端的Pod对象,所以,这就意味着它会影响调度算法的流量分发功用,进而降低其负载均衡的效果。因此,当客户端访问Pod中的应用程序的时候,如果有基于客户端身份保存某些私 阅读全文
posted @ 2022-10-02 20:17 Zix- 阅读(305) 评论(0) 推荐(0) 编辑
摘要:Service资源的基础应用 首先Service资源本身并提供任何服务,其真正处理并响应客户端请求的是后端的Pod资源,这些Pod资源通常由各类控制器对象(ReplicaSet、Deployment、DaemonSet、Job、CronJob)所创建和管理,因此Service资源通常要与控制器资源( 阅读全文
posted @ 2022-10-01 23:07 Zix- 阅读(53) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示