打卡学习kubernetes——kubernetes架构原理

接上一篇的内容,除了核心组件,还有一些推荐的Add-ons:

  • kube-dns 负责为整个集群提供DNS服务
  • Ingress Controller 为服务提供外网入口
  • Heapster 提供资源监控(没用过这个,但是用过grafana,很方便)
  • Dashboard 提供GUI(我感觉不太好用,可以尝试Kuboard)
  • Federation 提供跨可用区的集群
  • Fluentd-elasticsearch 提供集群日志采集、存储与查询(重量级日志搜索服务器)

目录

[1 k8s分层架构](#1 k8s分层架构)

[2 核心组件](#2 核心组件)

[3 核心API](#3 核心API)

[4 架构设计原则](#4 架构设计原则)


1 k8s分层架构

Kubernetes设计理念和功能其实就是一个类似Linux的分层架构:

  • 核心层:kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境
  • 应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等)
  • 管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等)
  • 接口层:kubectl命令行工具、客户端SDK以及集群联邦
  • 生态系统:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范畴。
  • k8s外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等
  • k8s内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等

2 核心组件

3 核心API

4 架构设计原则

  • 只有apiserver可以直接访问etcd存储,其他服务必须通过kubernetes API来访问集群状态
  • 单节点故障不应该影响集群的状态
  • 在没有新请求的情况下,所有组件应该在故障恢复后继续执行上次最后收到的请求(比如网络分区或服务重启等)
  • 所有组件都应该在内存中保持所需要的状态,apiserver将状态写入etcd存储,而其他组件则通过apiserver更新并监听所有的变化
  • 优先使用事件监听而不是轮询

不得不说一提到架构设计就觉得很抽象,列出来的接口看着也迷茫,希望熟悉k8s架构设计原理的友友可以在评论区留下相关知识或链接,互相学习一下,感谢大家~

相关推荐
梦帮科技6 小时前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
数据结构·数据库·架构·node.js·音视频·动态规划·推荐算法
西安栈上月明软件科技6 小时前
从 Linux 0.01 到 AI 开源:星图邻的开源实践
人工智能·自然语言处理·架构·开源·fastapi
一只路人甲7 小时前
使用AI快速学习
学习
传奇开心果编程7 小时前
【Rust入门练中学】第2课:变量、可变性与常量
开发语言·学习·rust
九皇叔叔7 小时前
Kubernetes 核心概念:集群架构、核心组件与资源对象
docker·容器·kubernetes·k8s
Lynne3099 小时前
工业网络,到底该集中还是自治?
网络·架构·数据
边境悍匪9 小时前
蜗牛学苑 Java 智能体学习 Day42|项目周开发技术汇总 1 思维导图复盘
java·开发语言·spring boot·学习·spring
Gyr010 小时前
浅刷了一遍51CTO软考题库客观题及其解析(4)
学习·软考·知识点·信息安全工程师
是隼人10 小时前
buuctf-pwn [NewStarCTF 2023 公开赛道]stack migration(64位栈迁移)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
ι:11 小时前
单相桥式全控整流仿真从零复现教学
windows·学习·matlab·simulink