K8S基础学习

作者: 东山絮柳仔

一.什么是K8S

k8s全称kubernetes。K8s 是 Google 在 2014 年开源出来的用于解决生产环境中大规模容器编排的组件。换言之,k8s是为容器服务而生的一个可移植容器的编排管理工具。 K8s三大特性:第一,K8s 自带便捷性,包括故障自愈、容器编排、服务发现,使应用更便捷。第二,K8s 在数据库、Serverless、边缘计算、微服务等多种技术领域的应用,扩展了其使用场景的边界。第三,K8s 具备的稳定性与安全性为其生产应用提供了强有力的支持。除此之外,周边生态的持续完善也为 K8s 迎来长足的发展奠定了不可磨灭的基础。

二.K8S的作用和架构

首先,从容器技术谈起,在容器技术之前,大大家用虚拟机比较多,比如vmware和openstack,们可以使用虚拟机模拟出多台子电脑(Linux),子电脑之间是相互隔离的,但是虚拟机对于开发和运维人员而言,存在启动慢,占用空间大,不易迁移的缺点。接着,容器化技术应运而生,它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境即可,而且启动速度很快,除了运行其中应用以外,基本不消耗额外的系统资源。Docker是应用最为广泛的容器技术,通过打包镜像,启动容器来创建一个服务。但是随着应用越来越复杂,容器的数量也越来越多,由此衍生了管理运维容器的问题,而且随着云计算的发展,云端最大的挑战,容器在漂移。在此业务驱动下,k8s问世,提出了一套全新的基于容器技术的分布式架构领先方案,在整个容器技术领域的发展是一个重大突破与创新。 k8s可以使们应用的部署和运维更加方便。具体来说,主要包括以下几点:

  1. 服务发现与调度
  2. 负载均衡
  3. 服务自愈
  4. 服务弹性扩容
  5. 横向扩容
  6. 存储卷挂载 k8s的架构

部分概念 Pod

1.最小部署单位
2.一组容器的集合
3.在一个Pod的容器共享网络命名空间(pod容器之间的网络是共享的,例如A B俩个容器属于一个pod,A上开了80端口,B上的80端口也是开通的)
4.Pod是短暂的(应用更新或者发版后Pod就会销毁)

Controllers

1.ReplicaSet: 确保预期的Pod副本数量
2.Deployment: 无状态应用部署   (Pod故障触发迁移后,Pod中的应用可以照常使用,不需要考虑存储、网络等问题,例如web应用)
3.StatefulSet:    有状态应用部署  (Pod故障触发迁移后,需要考虑网络和存储是否可以正常调用,有状态部署会对网络和存储进行标识,例如mysql主从和zk集群) 
4.DaemonSet: 确保所有Node运行同一个Pod 
5.Job: 一次性任务 
6.Cronjob: 定时任务

Service

作用:将请求转发到相应的一组Pod和实现一定的负载功能,暴露应用
1.防止Pod失联 
2.定义一组Pod的访问策略

Label

标签,附加到某个资源上,用于关联对象、查询和筛选

Namespace

命名空间,将对象逻辑上隔离

三.部署

https://www.cnblogs.com/python-cat/p/12515436.html k8s环境部署(一) https://www.cnblogs.com/python-cat/p/10831419.html

四.使用注意事项

4.1 优化方法

  • Utility: CPU/内存/磁盘/网络利用率
  • Saturation: 各种队列长度/饱和度
  • Error: 协议栈错误、应用层错误日志 4.2 指标收集
  • 系统指标: top/sysstat 包等(debian)
  • 应用指标: prometheus + grafana
  • 工具包索引图

4.3 流控优化

默认流控重试时间1S。其机理是,重启时所有client需要重新list\&watch导致并发请求量过高(包含bootstrap controller),超过流控,超过流控之后,返回响应码 429,同时在响应头里添加 RetryAfter 告诉 client 1s 之后再试,造成 APIServer 长时间过载。优化方式:(1).多级流控:在读写流控的基础上,根 据 UserAgent、Resource、Verb 进 行细粒度流控。例如: 通过 UserAgent,限制 kubelet,优先允许 Master 组件初始 化(APIServer Bootstrap Controller、其他Controller 和 Scheduler 等)。(2)拥塞控制:静态 Retry-After 改为动 态值,根据系统当前繁忙程度调节1到 8s(token bucket).其算法为:初始化时间窗口为1s、容量210 的 bucket,每次被流控尝试拿Token。可用量 >1/2,返回 1s;可用量 > ¼, 返回 2s;可用量 > 1/8, 返回 4s;可用量不足或者不可用, 返回 8s。

五 参考学习

1.什么是K8S https://zhuanlan.zhihu.com/p/103124918 2.网易云kubernetes性能优化实践 https://www.itdks.com/Course/detail?id=3513 3.https://www.cnblogs.com/python-cat/category/1459874.html

原文创作:东山絮柳仔

原文链接:https://www.cnblogs.com/xuliuzai/p/14933644.html

文章列表

更多推荐

更多
  • AWS自动化机器学习-十一、MLSDLC 的持续集成、部署和训练 技术要求,编纂持续集成阶段,管理持续部署阶段,管理持续训练,延伸,构建集成工件,构建测试工件,构建生产工件,自动化持续集成流程,回顾构建阶段,回顾测试阶段,审查部署和维护阶段,回顾应用用户体验,创建新的鲍鱼调查数据,回顾持续训练流程,清
    Apache CN

  • AWS自动化机器学习-六、使用 AWS 步骤函数自动化机器学习过程 技术要求,介绍 AWS 步骤功能,使用 Step 函数 Data Science SDK for CI/CD,建立 CI/CD 渠道资源,创建状态机,解决状态机的复杂性,更新开发环境,创建管道工件库,构建管道应用构件,部署 CI/CD
    Apache CN

  • AWS自动化机器学习-第三部分:优化以源代码为中心的自动化机器学习方法 本节将向您介绍整体 CI/CD 流程的局限性,以及如何将 ML 从业者的角色进一步整合到管道构建流程中。本节还将介绍这种角色集成如何简化自动化过程,并通过向您介绍 AWS Step 函数向您展示一种优化的方法。本节包括以下章节:
    Apache CN

  • AWS自动化机器学习-一、AWS 上的自动化机器学习入门 技术要求,洗钱流程概述,洗钱过程的复杂性,端到端 ML 流程示例,AWS 如何使 ML 开发和部署过程更容易自动化,介绍 ACME 渔业物流,ML 的情况,从数据中获得洞察力,建立正确的模型,训练模型,评估训练好的模型,探索可能的后续步
    Apache CN

  • AWS自动化机器学习-二、使用 SageMaker 自动驾驶器自动化机器学习模型开发 技术要求,介绍 AWS AI 和 ML 前景,SageMaker 自动驾驶器概述,利用 SageMaker 自动驾驶器克服自动化挑战,使用 SageMaker SDK 自动化 ML 实验,SageMaker Studio 入门,准备实验
    Apache CN

  • AWS自动化机器学习-四、机器学习的持续集成和持续交(CI/CD) 四、机器学习的持续集成和持续交CI/CD技术要求,介绍 CI/CD 方法,通过 CI/CD 实现 ML 自动化,在 AWS 上创建 CI/CD 管道,介绍 CI/CD 的 CI 部分,介绍 CI/CD 的 CD 部分,结束循环,采取以部
    Apache CN

  • AWS自动化机器学习-九、使用 Amazon Managed Workflows 为 Apache AirFlow 构建 ML 工作流 技术要求,开发以数据为中心的工作流程,创建合成鲍鱼调查数据,执行以数据为中心的工作流程,构建和单元测试数据 ETL 工件,构建气流 DAG,清理, 在前面的年龄计算器示例中,我们了解了如何通过 ML 从业者和开发人员团队之间的跨职能
    Apache CN

  • AWS自动化机器学习-七、使用 AWS 步骤函数构建 ML 工作流 技术要求,构建状态机工作流,执行集成测试,监控管道进度,设置服务权限,创建 ML 工作流程, 在本章中,我们将从第六章中的 [处继续,使用 AWS 步骤函数自动化机器学习过程。您将从那一章中回忆起,我们正在努力实现的主要目标是简化
    Apache CN

  • AWS自动化机器学习-八、使用 Apache Airflow 实现机器学习过程的自动化 技术要求,介绍阿帕奇气流,介绍亚马逊 MWAA,利用气流处理鲍鱼数据集,配置 MWAA 系统的先决条件,配置 MWAA 环境, 当建立一个 ML 模型时,有一个所有 ML 从业者都知道的基本原则;也就是说,最大似然模型只有在数据被训练时
    Apache CN

  • AWS自动化机器学习-五、自动化 ML 模型的持续部署 技术要求,部署 CI/CD 管道,构建 ML 模型工件,执行自动化 ML 模型部署,整理管道结构,创建 CDK 应用,部署管道应用,查看建模文件,审查申请文件,查看模型服务文件,查看容器构建文件,提交 ML 工件,清理, 在 [第 4
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多