热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Kubernetes(K8S学习第一天)

Kubernetes是什么?Kubernetes是一个资源管理器。目前市面上出现的资源管理器有ApacheMESOS、dockerSWARM、Kubernetes。为什么需要Kub

Kubernetes是什么?

Kubernetes是一个资源管理器。目前市面上出现的资源管理器有Apache MESOSdocker SWARMKubernetes

为什么需要Kubernetes?

  • 分布式容器化的大趋势。
  • Google 10年来的容器化经验基础
  • 基于Google Borg组件的基础 用Go(占用资源少)实现
    Kubernetes(K8S学习第一天)

为什么选择Kubernetes?

  • Apache MESOS :分布式基础资源管理框架(非docker)。最大应用厂商Twitter 2019-5 Tweiter宣布放弃Apache MESOS 开始使用Kubernetes
    延伸:Apache MESOS最新版中将支持Kubernetes管理
  • Docker Swarm :轻量(消耗内存不超过100M),可支撑多节点,功能少。虽说可用人工操作完成,但是操作过程复杂,容易出错。阿里云在 2019-7 不再支持Docker Swarm
  • Kubernetes :轻量,弹性伸缩,负载均衡(IPVS协议)

什么是Pod?

Pod :Kubernetes管理的最小单位。由多个Docker容器构成的子节点。
Pod有两种,自主式Pod(不是被控制器管理的Pod),控制器管理的Pod。
自主式Pod一旦死亡,无法还原。

Pod的控制器类型?

  • ReplicationController:确保容器应用副本数始终保持在用户定义副本数(建议用ReplicaSet代理)
  • ReplicaSet:在ReplicationController基础上支持集合式的selector
  • Deployment:不负责Pod创建,支持滚动更新。(PS:Deployment创建ReplicaSet,由ReplicaSet创建Pod。滚动更新:Deployment先创建一个新的ReplicaSet,每当新的ReplicaSet创建一个新的Pod,对应旧的ReplicaSet将删掉一个Pod,当旧的ReplicaSet删完所有的Pod,旧的ReplicaSet将会被停用。同时也可回滚,过程与滚动更新类似)

StatefulSet:解决有状态服务问题。
场景:

  • 稳定的持久化存储–>Pod重新调度后还是能访问到相同的持久化数据,基于PVC实现
  • 稳定网络标志–>即Pod重新调度后其PodName和HostName不变,基于Headless Service来实现
  • 有序部署,有序扩展–>在部署或者扩展的时候要根据定义的顺序依次进行(在下一个Pod运行时,之前的所有Pod必须是Running 和 Ready状态),基于init containers实现
  • 有序收缩,有序删减

HPA:Horizontal Pod Autoscaling Pod的平滑扩展 适用Deployment 和 ReplicaSet 。在V1版本中仅支持根据Pod的CPU利用率扩所容,在v1alpha版本中,支持根据内存和用户自定义的metric扩缩容。HPA监控RS的Pod的数量,当CPU空闲率大于一定数值则新建Pod,当Pod数量达到一定值或者CPU空闲率低于一定数值时停止创建,当CPU空闲率小于一定数值则会通知RS删除Pod,直到达到最小Pod数量或者CPU空闲率回到一定数值

DaemonSet:确保全部(或者一些)Node上运行一个Pod副本。当有Node加入集群时,也会为他们新增一个Pod。当有Node从集群移除时,这些Pod也会被回收。删除DaemonSet将会删除它创建的所有Pod。
用法:

  • 运行集群存储Daemon,例如在每个Node上运行glusterd、ceph。
  • 在每个Node上运行日志手机deamon,例如fluented、logstash。
  • 在每个Node上运行监控Daemon,例如Prometheus Node Exporter

Job:负责批处理任务,即仅执行一次任务,它保证批处理任务的一个或多个Pod成功结束。(非成功结束的会进行重试,可设置重试次数)
Cron Job:管理基于时间的Job,即在给定时间只运行一次、在周期性地在给定时间点运行。
Service:通过筛选标签来管理Pod,同时Pod也可以与Service通信,从而间接实现了不同Pod之间的通信问题。同时,service也可暴露给外网(NodePort )。
Kubernetes(K8S学习第一天)


推荐阅读
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文介绍如何通过 Python 的 `unittest` 和 `functools` 模块封装一个依赖方法,用于管理测试用例之间的依赖关系。该方法能够确保在某个测试用例失败时,依赖于它的其他测试用例将被跳过。 ... [详细]
  • 使用jqTransform插件美化表单
    jqTransform 是由 DFC Engineering 开发的一款 jQuery 插件,专用于美化表单元素,操作简便,能够美化包括输入框、单选按钮、多行文本域、下拉选择框和复选框在内的所有表单元素。 ... [详细]
  • Ext JS MVC系列一:环境搭建与框架概览
    本文主要介绍了如何在项目中使用Ext JS 4作为前端框架,并详细讲解了Ext JS 4的MVC开发模式。文章将从项目目录结构、相关CSS和JS文件的引用以及MVC框架的整体认识三个方面进行总结。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
author-avatar
磊仔2502898265
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有