您现在的位置是:首页 >学无止境 >k8s系列(三)——补充内容网站首页学无止境

k8s系列(三)——补充内容

Zz罗伯特 2024-06-17 11:19:28
简介k8s系列(三)——补充内容

k8s架构补充

高可用集群副本数最好是 >= 3 奇数个

master节点

scheduler

调度器,负责介绍任务,选择合适的节点进行分配任务

决定将任务分配至哪个node节点中,与api server进行交互

api server

所有服务访问的统一入口

压力巨大,为了减轻apiserver的压力,每个组件可以在自己本地生成一定的缓存,减少与apiserver交互的次数。

todo : 官方是如何给他减压的

controllerManager

控制器,功能之一是维护副本期望数目。

etcd

go语言编写,键值对的数据库,储存k8s集群所有重要信息(持久化)

etcd 的官方将它定位成一个可信赖分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转。

可信赖:为了让etcd能够 持久化不会造成单节点故障,所以天生支持集群化,并不需要其他组件来实现集群化方案

分布式键值存储服务:意味着扩缩容非常方便

协助分布式集群的正常运转:保存分布式集群需要持久化的 配置文件信息,一旦集群宕机死亡,可以借助配置信息来恢复

etcd v2版本与v3版本

v2版本会把所有的数据写入内存中,v3版本会引入一个卷的持久化操作,也就意味着关机之后不会造成数据损坏,会从本地磁盘进行恢复。

推荐在kubernetes集群中使用Etcd v3,v2版本已在Kubernetes v1.11中弃用

etcd内部架构图

在这里插入图片描述

etcd采用的是http server的形式,http协议

k8s也采用的是http协议进行cls开发

因为http天生支持Restful协议,以及授权认证,没有必要采用标准tcp协议来开发一系列的认证流程

raft:所有的读写信息都会存在这里

wal:预写日志,防止信息损坏丢失,包括完整备份和快照

node节点

kubelet

直接跟容器引擎交互实现容器的生命周期管理

会跟CRL进行交互,操作docker创建相对应的容器,维持pod的生命周期

容器运行时接口(Container Runtime Interface),简称 CRI。CRI 中定义了 容器镜像 的服务的接口,因为容器运行时与镜像的生命周期是彼此隔离的,因此需要定义两个服务。

kubeproxy

负责写入规则至iptables、ipvs 实现服务映射访问的

svc的负载操作就是通过kubeproxy来完成的,实现pod与pod的访问以及负载均衡

默认操作对象是操作firewall,去实现这里pod的映射

集群插件

在这里插入图片描述

coreDNS

可以为集群中的svc创建一个域名IP的对应关系解析,实现负载均衡的其中一项功能。

Dashboard

k8s的web操作界面

Ingress Controller

官方只能实现四层代理,ingress可以实现七层代理

Federation

提供一个可以跨集群中心多k8s统一管理功能

prometheus

提供一个k8s集群的监控能力

ELK

提供k8s集群日志统一分析接入平台

01-Kubernetes介绍 · 语雀 (yuque.com)

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。