1. Kubernetes介绍
Kubernetes是一个完备的分布式系统支撑平台。具备完备的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建的智能负载均衡器、强大的故障发现和自我修补能力、服务滚动升级和在线扩容能力、可扩展的资源调度机制、以及多粒度的资源配额管理能力。(还提供了完善的管理工具、涵盖了开发、部署测试、运维在内的各个环节)
Kubernetes是一个全新的基于容器技术的分布式架构解决方案,并且是一个一站式的完备的分布式系统开发和支撑平台。
2. Kubernetes特点
2.1. 轻量级:消耗资源小;
2.2. 开源;
2.3. 弹性伸缩;
2.4. 负载均衡:IPVS;
3. 适用人群
软件工程师 测试工程师 运维工程师 软件架构师 项目经理
4. 学习方向
4.1. 介绍说明:前世今生、kubernetes框架、kubernetes关键字含义;
4.2. 基础概念:什么是pod、控制器类型、kubernetes网络通讯模式;
4.3. kubernetes:构建k8s集群;
4.4. 资源清单:资源、掌握资源清单的语法、编写pod、掌握pod生命周期;
4.5. Pod控制器:掌握各种控制器的特点以及使用定义方式;
4.6. 服务发现:掌握SVC原理及其构建方式;
4.7. 存储:掌握多种存储类型的特点,并且能够在不同环境中选择合适的存储方案;
4.8. 调度器:掌握调度器原理 能够根据要求把pod定义到想要的节点运行;
4.9. 安全:集群的认证 鉴权 访问控制 原理及其流程;
4.10. HELM:Linux yum 掌握HELM原理 HELM模板自定义 HELM部署一些常用的插件;
4.11. 运维:修改kubeadm达到证书可用期限为10年 能够构建高可用的kubernetes集群;
5. Kubernetes架构图及说明
5.1. api server:所有服务访问的统一入口;
5.2. ControllerManager:维护副本的期望数目;
5.3. scheduler:负责接受任务,选择合适的节点进行分配任务;
5.4. ETCD:键值对数据库 存储k8s集群所有重要信息(持久化);
5.5. kubelet:直接跟容器引擎交互实现容器的生命周期管理;
5.6. kube proxy:负责写入规则至IPTABLES、IPVS实现服务映射的访问;
5.7. 其他重要插件
5.7.1. CoreDNS:可以为集群中的SVC创建一个域名IP的对应关系解析;
5.7.2. Dashboard:给k8s集群提供一个B/S结构的访问体系;
5.7.3. Ingress Controller:官方只能实现四层代理 ingress可以实现七层代理;
5.7.4. Federation:提供一个可以跨集群中心多k8s统一管理功能;
5.7.5. Prometheus: 提供一个k8s集群的监控能力;
5.7.8. ELK:提供k8s集群日志统一分析介入平台;
5.8. etcd的官方将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运行。
5.9. etcd内部架构图
6. Kubernetes集群管理介绍
Kubernetes划分为一个Master和一些Node。在Master上运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager和kube-scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且是自动完成的。Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单位是Pod。在Node上运行着Kubernetes的kubelet、kube-proxy服务进程,这些服务进程负责Pod的创建、启动、监控、重启、销毁,以及实现软件模式的负载均衡。并且只需为需要扩容的Service关联的Pod创建一个RC(Replication Controller),服务扩容以至服务升级等令人头疼的问题都迎刃而解。