当前位置:首页 > 数码 > 终极指南-组件全解析-K8s-提醒你要求知道的秘密 (终极指南针下载手机版)

终极指南-组件全解析-K8s-提醒你要求知道的秘密 (终极指南针下载手机版)

admin5个月前 (05-10)数码32

当你部署完Kubees,便领有了一个完整的集群。

Kubernetes,作为目前最盛行和宽泛驳回的容器编排和治理平台,面前有一系列弱小的组件,独特单干以成功容器化运行的智能化部署、弹性裁减、服务发现和负载平衡等关键性能。本文将引见Kubernetes集群中的关键组件,提醒它们的作用和相互相关,为您提供关于Kubernetes外部上班原理的深化了解。

装置前有几个概念要了解下

1、kube-apiserver

kube-apiserver是Kubernetes控制平面的前端,表演着用户和其它组件与集群交互的入口。它处置来自客户端、命令行工具和控制器的API恳求,口头验证、授权和数据耐久化,将集群的性能形态存储在etcd中。

kube-apiserver的性能和稳固性关于整个集群的牢靠性至关关键。

性能和作用:

etcd是Kubernetes的散布式键值存储系统,被用于保留集群的性能数据、形态和元数据。作为Kubernetes控制平面的耐久化存储,etcd的牢靠性和分歧性对整个集群的稳固运转至关关键。

etcd的关键特点包括:

3、kube-scheduler

kube-scheduler是Kubernetes集群中的一个外围组件,担任在集群当选用适宜的节点(Node)来运转新创立的Pod。它依据一系列的战略和条件,将Pod调配到最适宜的节点上,以成功负载平衡和资源应用最提升。

以下是kube-scheduler的关键上班原理和特点:

4、kube-controller-manager

kube-controller-manager是Kubernetes集群中的一个外围组件,它担任治理各种控制器,监控集群形态,以及确保集群中的实践形态与希冀形态坚持分歧。这些控制器担任智能化集群中的各种义务和性能,例如正本控制、节点治理、服务和端点等。

以下是kube-controller-manager的一些关键性能和控制器示例:

kubelet是Kubernetes集群中的一个关键组件,运转在每个节点上,担任治理该节点上的容器和Pod。它与控制平面(如APIServer和kube-controller-manager)通讯,确保节点上的容器与希冀的形态坚持分歧。

以下是kubelet的一些关键性能和上班原理:

6、kube-proxy

kube-proxy是Kubernetes集群中的一个外围组件,担任成功集群外部的网络通讯。它经过保养节点上的网络规定和转发规定,为Pod提供网络代理和负载平衡性能,以便让集群中的各个Pod能够相互通讯。

以下是kube-proxy的一些关键性能和上班原理:

7、容器运转时(ContainerRuntime)

容器运转时(ContainerRuntime)是担任创立、运转和治理容器的软件组件。在Kubernetes集群中,容器运转时担任在节点上创立和治理容器化的运行程序。

Kubernetes不间接与容器启动交互,而是经过容器运转时来治理容器。它经过与容器运转时交互来创立、启动、中止和删除容器,以及治理容器的生命周期。

以下是一些经常出现的容器运转时:

8、Core/kube-dns

CoreDNS和kube-dns都是Kubernetes集群中用于域名解析(DNS)的服务。它们的作用是将Pod称号和Service称号解析为相应的IP地址,从而实如今集群外部启动服务发现和网络通讯。

这两者的性能相似,但有些差异。上方我会为你详细解释它们的特点和用途:

kube-dns是Kubernetes最早引入的DNS处置打算,它由三个局部组成:

CoreDNS是一个可插拔的、现代化的DNS主机,逐渐代替了kube-dns,成为Kubernetes的自动DNS处置打算。它具备以下特点:

在Kubernetes中,"Node"是指集群中的一个上班节点(WorkerNode)。上班节点是集群中的计算资源,担任运转容器化运行程序和治理与之相关的资源。每个节点都是一个独立的物理机器或虚构机,它们一同导致了Kubernetes集群的基础架构。

每个节点上都运转了一些关键组件,其中最关键的是kubelet。以下是节点的关键组成局部和性能:

10、Dashboard

几款k8sweb治理界面工具:

KubernetesDashboard

KubernetesDashboard是一个用于可视化治理和监控Kubernetes集群的Web用户界面。它提供了一种图形化的形式来检查和治理集群中的资源、运行程序和服务,使得用户可以更繁难地启动操作和监控。

KubernetesDashboard的关键特点和性能包括:

11、网络插件

Kubernetes集群要求网络插件来治理容器和Pod之间的网络通讯,以及服务发现和负载平衡等网络性能。不同的网络插件提供不同的网络模型和性能,您可以依据集群的需求选用适宜的插件。以下是一些经常出现的Kubernetes网络插件:


超全K8s集群构建指南,建议收藏

1. 什么是kubernetes  Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

2. kubernetes核心组件说明 Kubernetes 集群中主要存在两种类型的节点,分别是 master 节点 ,以及 minion 节点 。

Minion 节点是实际运行 Docker 容器的节点,负责和节点上运行的 Docker 进行交互,并且提供了代理功能。

Master 节点负责对外提供一系列管理集群的 API 接口,并且通过和 Minion 节点交互来实现对集群的操作管理。

apiserver :用户和 kubernetes 集群交互的入口,封装了核心对象的增删改查操作,提供了 RESTFul 风格的 API 接口,通过 etcd 来实现持久化并维护对象的一致性。

scheduler :负责集群资源的调度和管理,例如当有 pod 异常退出需要重新分配机器时,scheduler 通过一定的调度算法从而找到最合适的节点。

controller-manager :主要是用于保证 replicationController 定义的复制数量和实际运行的 pod 数量一致,另外还保证了从 service 到 pod 的映射关系总是最新的。

kubelet :运行在 minion 节点,负责和节点上的 Docker 交互,例如启停容器,监控运行状态等。

proxy :运行在 minion 节点,负责为 pod 提供代理功能,会定期从 etcd 获取 service 信息,并根据 service 信息通过修改 iptables 来实现流量转发(最初的版本是直接通过程序提供转发功能,效率较低。),将流量转发到要访问的 pod 所在的节点上去。

etcd :key-value键值存储数据库,用来存储kubernetes的信息的。

flannel :Flannel 是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,需要另外下载部署。

我们知道当我们启动 Docker 后会有一个用于和容器进行交互的 IP 地址,如果不去管理的话可能这个 IP 地址在各个机器上是一样的,并且仅限于在本机上进行通信,无法访问到其他机器上的 Docker 容器。

Flannel 的目的就是为集群中的所有节点重新规划 IP 地址的使用规则,从而使得不同节点上的容器能够获得同属一个内网且不重复的 IP 地址,并让属于不同节点上的容器能够直接通过内网 IP 通信。

3. Kubernetes的核心概念

运行于Node节点上,若干相关容器的组合。Pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间、IP地址和端口,能够通过localhost进行通。

Pod是Kurbernetes进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个Pod可以包含一个容器或者多个相关容器。

Replication Controller Replication Controller用来管理Pod的副本,保证集群中存在指定数量的Pod副本。

集群中副本的数量大于指定数量,则会停止指定数量之外的多余容器数量,反之,则会启动少于指定数量个数的容器,保证数量不变。

Replication Controller是实现弹性伸缩、动态扩容和滚动升级的核心。

Service定义了Pod的逻辑集合和访问该集合的策略,是真实服务的抽象。

Service提供了一个统一的服务访问入口以及服务代理和发现机制,用户不需要了解后台Pod是如何运行。

Kubernetes中的任意API对象都是通过Label进行标识,Label的实质是一系列的K/V键值对。Label是Replication Controller和Service运行的基础,二者通过Label来进行关联Node上运行的Pod。

Node是Kubernetes集群架构中运行Pod的服务节点(或agent)。

Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机。

4. 前置条件设置 三台Centos7系统的虚拟机(1个master+2个node),三台机器上的防火墙,SELINUX全部关掉。我的实验坏境可以上网,默认的YUM源就可以用。

5. 部署规划 192.168.10.1 # master节点(etcd,kubernetes-master)192.168.10.2 # node1节点(etcd,kubernetes-node,docker,flannel)192.168.10.3 # node2节点(etcd,kubernetes-node,docker,flannel)

6. 开始安装

step1:在master上安装 yum install kubernetes-master etcd flannel -y

step2:在node上安装 yum install kubernetes-node etcd flannel -y

step3:etcd集群配置 在master节点上编辑etcd配置文件

在node1节点上编辑etcd配置文件

在node2节点上编辑etcd配置文件

到此etcd集群就部署完了,然后每个节点上启动systemctl start etcd

step4:验证

step6:启动Master上的三个服务

step7:kubernetes node安装

node2 节点重复上述操作step8:分别启动kubernetes node服务

7. 网络配置 因为kubernetes集群中网络部分是插件形式安装的,我们这里选用flannel上述安装步骤已经install 了

为flannel创建分配的网络

8. 执行kubectl 命令检查 在master上执行下面,检查kubernetes的状态

9. 常用排错命令如下

K8S组件探索

名称空间,用于将资源隔离

1)使用命令行的方式

2)使用yaml的方式

运行中的一组容器,Pod是k8s的最小单位

1)使用命令行的方式

2)使用yaml的方式

控制Pod,使Pod拥有多个副本,自愈和扩缩容等能力。

1)使用命令行的方式

2)使用yaml的方式

停机;删除Pod;容器崩溃

将一组Pod公开为网络服务的抽象方法

1)使用命令行的方式

2)使用yaml的方式

实验Demo,通过svc实现负载均衡测试

组件全解析

通过deploy部署3个nginx副本,并通过svc指定该组pod的公开网络服务。

1)使用命令行的方式

2)使用yaml的方式

缺点:相关的pod释放后,不会自动删除挂载的数据

pv:持久卷,将应用需要持久化的数据保持到指定位置

pvc:持久卷声明,声明需要使用到持久卷规格

抽取应用配置,可以实现自动更新。configMap可以用来将配置文件挂载出来,方便配置。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: K8s

“终极指南-组件全解析-K8s-提醒你要求知道的秘密 (终极指南针下载手机版)” 的相关文章

升级就崩溃-版本以解决稳定性问题-Kubernetes-LTS-需要长期支持 (升级卡住了)

升级就崩溃-版本以解决稳定性问题-Kubernetes-LTS-需要长期支持 (升级卡住了)

Kubernetes LTS 版本:稳定性与灵活性的平衡 Kubernetes 频繁升级带来的挑战 Kubernetes(K8s)以其快速的发展速度而闻名,但频繁的升级也给运维团队带来了巨大的挑...

K8s-容器化运行编排工具-Kubernetes (k8s容器启动失败)

K8s-容器化运行编排工具-Kubernetes (k8s容器启动失败)

背景 终于进入大家都比拟感兴味的服务网格系列了,在前面曾经解说了: 基本上曾经够咱们开发普通规模的web运行了;但在企业中往往有着复杂的运行调用相关,运行与运行之间的恳求也要求启动治理...

实战指南-K8s-五分钟速成 (实战指南书页)

实战指南-K8s-五分钟速成 (实战指南书页)

在Kubernetes中,Probe探針是一種實用的功能,可以用於控制應用程式的優雅上線和監控其健康狀況。本篇文章將深入探討Probe探針的相關概念和用法。 就緒探針 就緒探針主要用於...

K8s-从基础到进阶-部署方式大全-掌握所有技巧 (基于k8s)

K8s-从基础到进阶-部署方式大全-掌握所有技巧 (基于k8s)

Kubernetes 是一个流行的容器编排平台,用于部署、管理和扩展容器化应用程序。 为了简化 Kubernetes 集群的部署和管理,有各种工具可用。 kubeadm kub...