参考链接:完整版Kubernetes(K8S)全套入门+微服务实战 - 哔哩哔哩_bilibili
1.1 简介
1.1.1 背景介绍
- 市场需求(与后端相关)
- 技术竞争力(K8S工程师)
- 行业发展方向
1.1.2 课程模块解读:核心概念
需要理解的内容:
- 有哪些组件,分层架构中各层的调用关系
- 服务的分类(无状态和有状态),处理方式不同
- 资源和对象(K8s中,一切皆资源,对象基于资源创建)
- Pod:资源调度的最小单位
最终:用YAML描述需要构建的内容
1.1.3 目标
- 深入理解k8s各大资源对象及最佳实践
- 熟练运用k8s各项调度策略
- 掌握k8s网络原理及应用
- 熟练掌握Pod控制器及应用
- 熟练掌握k8s微服务DevOps实战(需Spring Cloud技术)
(Docker compose管理单主机,K8s管理多主机)
2.1 认识k8s
2.1.1 什么是Kubernetes?
2.1.2 为什么需要k8s
(1)应用部署的3个阶段
- 传统部署(资源争抢(资源不隔离),访问冲突……)
- 虚拟化部署(占用资源多)
- 容器部署
(2)k8s的特点
- 自我修复
- 弹性伸缩
- 自动部署和回滚
- 服务发现和负载均衡
- 机密和配置管理
- 存储编排
- 批处理
容器生命周期相对短、IP不固定
2.1.4 三大平台对比
- Apache Mesos
- Docket Swarm
- Google Kubernetes
2.2 集群架构与组件
2.2.1 集群架构
- 主从架构,主节点(分发任务),从节点(执行任务)
控制面板组件(Master)
- kube-apiserver(核心操作均由API-server进行)
- kube-controller-manager
- cloud-controller-manager(云控制器管理器,对接第三方云平台)
- kube-scheduler
- etcd(高可用的数据库)
节点组件
- kubelet(Pod的生命周期、存储、网络)
- kube-proxy(网络代理、服务发现(内部)、负载均衡)
- container runtime(容器运行时环境,docker、containerd、CRI-O是并列的概念)
- Pod(1个节点可以有多Pod,每个Pod中可以有多个容器)
附加组件
- kube-dns(DNS)
- Ingress Controller(为服务提供外部网络访问)
- Prometheus(资源监控)
- Dashboard
- Federation(集群间调度)
- Fluentd-elasticsearch(日志采集存储)
分层架构
- 生态系统、接口层、管理层、应用层、核心层
2.3 核心概念
2.3.1 服务的分类(有状态/无状态)
- 无状态:无依赖(如Nginx、Apache)
- 优点:高效扩容、迁移
- 缺点:不能存储数据
- 有状态:会对本地环境产生依赖(需要存储数据到本地磁盘,如Mysql、Redis)
- 优点:可以独立存储数据
- 缺点:集群环境下需要数据同步、备份,水平扩容复杂
2.3.2 资源对象:对象规约和状态
- 规约(Spec):期望状态(Desired State)(希望对象所具有的特征)
- 状态(Status):实际状态
2.3.4 资源对象:资源的分类详解
资源的分类:元空间、集群、命名空间
标签:状态,存储,kube,笔记,Pod,k8s,资源,K8s From: https://www.cnblogs.com/EndPoem-ZH/p/18293275