k8s介绍和学习思路
阅读原文时间:2023年07月08日阅读:3

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),服务扩容以至服务升级等令人头疼的问题都迎刃而解。