当前位置: 首页 > news >正文

dede网站微信分享封面棋牌源码之家

dede网站微信分享封面,棋牌源码之家,小工程施工合同协议书,制作网站支付方式Kubernetes 的概述 Kubernetes 是一个可移植、可扩展的开源平台#xff0c;用于管理容器化的工作负载和服务#xff0c;方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统#xff0c;其服务、支持和工具的使用范围广泛。 Kubernetes 这个名字源于…Kubernetes 的概述 Kubernetes 是一个可移植、可扩展的开源平台用于管理容器化的工作负载和服务方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统其服务、支持和工具的使用范围广泛。 Kubernetes 这个名字源于希腊语意为“舵手”或“飞行员”。K8s 这个缩写是因为 K 和 s 之间有 8 个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在 Google 大规模运行生产工作负载十几年经验的基础上 结合了社区中最优秀的想法和实践。 为什么需要 Kubernetes它能做什么 容器是打包和运行应用程序的好方式。在生产环境中 你需要管理运行着应用程序的容器并确保服务不会下线。 例如如果一个容器发生故障则你需要启动另一个容器。 如果此行为交由给系统处理是不是会更容易一些 这就是 Kubernetes 要来做的事情 Kubernetes 为你提供了一个可弹性运行分布式系统的框架。 Kubernetes 会满足你的扩展要求、故障转移你的应用、提供部署模式等。 例如Kubernetes 可以轻松管理系统的 Canary (金丝雀) 部署。 Kubernetes 为你提供 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址来暴露容器。 如果进入容器的流量很大 Kubernetes 可以负载均衡并分配网络流量从而使部署稳定。存储编排 Kubernetes 允许你自动挂载你选择的存储系统例如本地存储、公共云提供商等。自动部署和回滚 你可以使用 Kubernetes 描述已部署容器的所需状态 它可以以受控的速率将实际状态更改为期望状态。 例如你可以自动化 Kubernetes 来为你的部署创建新容器 删除现有容器并将它们的所有资源用于新容器。自动完成装箱计算 你为 Kubernetes 提供许多节点组成的集群在这个集群上运行容器化的任务。 你告诉 Kubernetes 每个容器需要多少 CPU 和内存 (RAM)。 Kubernetes 可以将这些容器按实际情况调度到你的节点上以最佳方式利用你的资源。自我修复 Kubernetes 将重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器 并且在准备好服务之前不将其通告给客户端。密钥与配置管理 Kubernetes 允许你存储和管理敏感信息例如密码、OAuth 令牌和 SSH 密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置也无需在堆栈配置中暴露密钥。批处理执行 除了服务外Kubernetes 还可以管理你的批处理和 CI持续集成工作负载如有需要可以替换失败的容器。水平扩缩 使用简单的命令、用户界面或根据 CPU 使用率自动对你的应用进行扩缩。IPv4/IPv6 双栈 为 Pod容器组和 Service服务分配 IPv4 和 IPv6 地址。为可扩展性设计 在不改变上游源代码的情况下为你的 Kubernetes 集群添加功能。 Kubernetes 不是什么 Kubernetes 不是传统的、包罗万象的 PaaS平台即服务系统。 由于 Kubernetes 是在容器级别运行而非在硬件级别它提供了 PaaS 产品共有的一些普遍适用的功能 例如部署、扩展、负载均衡允许用户集成他们的日志记录、监控和警报方案。 但是Kubernetes 不是单体式monolithic系统那些默认解决方案都是可选、可插拔的。 Kubernetes 为构建开发人员平台提供了基础但是在重要的地方保留了用户选择权能有更高的灵活性。 Kubernetes 不限制支持的应用程序类型。 Kubernetes 旨在支持极其多种多样的工作负载包括无状态、有状态和数据处理工作负载。 如果应用程序可以在容器中运行那么它应该可以在 Kubernetes 上很好地运行。不部署源代码也不构建你的应用程序。 持续集成CI、交付和部署CI/CD工作流取决于组织的文化和偏好以及技术要求。不提供应用程序级别的服务作为内置服务例如中间件例如消息中间件、 数据处理框架例如 Spark、数据库例如 MySQL、缓存、集群存储系统 例如 Ceph。这样的组件可以在 Kubernetes 上运行并且/或者可以由运行在 Kubernetes 上的应用程序通过可移植机制例如开放服务代理来访问。不是日志记录、监视或警报的解决方案。 它集成了一些功能作为概念证明并提供了收集和导出指标的机制。不提供也不要求配置用的语言、系统例如 jsonnet它提供了声明性 API 该声明性 API 可以由任意形式的声明性规范所构成。不提供也不采用任何全面的机器配置、维护、管理或自我修复系统。此外Kubernetes 不仅仅是一个编排系统实际上它消除了编排的需要。 编排的技术定义是执行已定义的工作流程首先执行 A然后执行 B再执行 C。 而 Kubernetes 包含了一组独立可组合的控制过程可以持续地将当前状态驱动到所提供的预期状态。 你不需要在乎如何从 A 移动到 C也不需要集中控制这使得系统更易于使用且功能更强大、 系统更健壮更为弹性和可扩展。 Kubernetes 的历史背景 让我们回顾一下为何 Kubernetes 能够裨益四方。 传统部署时代 早期各个组织是在物理服务器上运行应用程序。 由于无法限制在物理服务器中运行的应用程序资源使用因此会导致资源分配问题。 例如如果在同一台物理服务器上运行多个应用程序 则可能会出现一个应用程序占用大部分资源的情况而导致其他应用程序的性能下降。 一种解决方案是将每个应用程序都运行在不同的物理服务器上 但是当某个应用程序资源利用率不高时剩余资源无法被分配给其他应用程序 而且维护许多物理服务器的成本很高。 虚拟化部署时代 因此虚拟化技术被引入了。虚拟化技术允许你在单个物理服务器的 CPU 上运行多台虚拟机VM。 虚拟化能使应用程序在不同 VM 之间被彼此隔离且能提供一定程度的安全性 因为一个应用程序的信息不能被另一应用程序随意访问。 虚拟化技术能够更好地利用物理服务器的资源并且因为可轻松地添加或更新应用程序 而因此可以具有更高的可扩缩性以及降低硬件成本等等的好处。 通过虚拟化你可以将一组物理资源呈现为可丢弃的虚拟机集群。 每个 VM 是一台完整的计算机在虚拟化硬件之上运行所有组件包括其自己的操作系统。 容器部署时代 容器类似于 VM但是更宽松的隔离特性使容器之间可以共享操作系统OS。 因此容器比起 VM 被认为是更轻量级的。且与 VM 类似每个容器都具有自己的文件系统、CPU、内存、进程空间等。 由于它们与基础架构分离因此可以跨云和 OS 发行版本进行移植。 容器因具有许多优势而变得流行起来例如 敏捷应用程序的创建和部署与使用 VM 镜像相比提高了容器镜像创建的简便性和效率。持续开发、集成和部署通过快速简单的回滚由于镜像不可变性 提供可靠且频繁的容器镜像构建和部署。关注开发与运维的分离在构建、发布时创建应用程序容器镜像而不是在部署时 从而将应用程序与基础架构分离。可观察性不仅可以显示 OS 级别的信息和指标还可以显示应用程序的运行状况和其他指标信号。跨开发、测试和生产的环境一致性在笔记本计算机上也可以和在云中运行一样的应用程序。跨云和操作系统发行版本的可移植性可在 Ubuntu、RHEL、CoreOS、本地、 Google Kubernetes Engine 和其他任何地方运行。以应用程序为中心的管理提高抽象级别从在虚拟硬件上运行 OS 到使用逻辑资源在 OS 上运行应用程序。松散耦合、分布式、弹性、解放的微服务应用程序被分解成较小的独立部分 并且可以动态部署和管理 - 而不是在一台大型单机上整体运行。资源隔离可预测的应用程序性能。资源利用高效率和高密度。 Kubernetes 架构 Kubernetes采用主从架构设计。Kubernetes 集群由一个控制平面相当于管理主机和一组用于运行容器化应用的工作机器相当于工作从机组成 这些工作机器称作节点Node。每个集群至少需要一个工作节点来运行 Pod。 工作节点托管着组成应用负载的 Pod。控制平面管理集群中的工作节点和 Pod。 在生产环境中控制平面通常跨多台计算机运行而一个集群通常运行多个节点以提供容错和高可用。 一个完整且可运行的 Kubernetes 集群所需的组件如下图。 控制平面组件 控制平面组件会为集群做出全局决策比如资源的调度。 以及检测和响应集群事件例如当不满足 Deployment 的 replicas 字段时要启动新的 Pod。 控制平面组件可以在集群中的任何节点上运行。 然而为了简单起见安装脚本通常会在同一个计算机上启动所有控制平面组件 并且不会在此计算机上运行用户容器。 kube-apiserver API 服务器是 Kubernetes 控制平面的组件 该组件负责公开了 Kubernetes API负责处理接受请求的工作。 API 服务器是 Kubernetes 控制平面的前端。 Kubernetes API 服务器的主要实现是 kube-apiserver。 kube-apiserver 设计上考虑了水平扩缩也就是说它可通过部署多个实例来进行扩缩。 你可以运行 kube-apiserver 的多个实例并在这些实例之间平衡流量。 etcd 一致且高可用的键值存储用作 Kubernetes 所有集群数据的后台数据库。 如果你的 Kubernetes 集群使用 etcd 作为其后台数据库 请确保你针对这些数据有一份 备份计划。 kube-scheduler kube-scheduler 是控制平面的组件 负责监视新创建的、未指定运行节点node的 Pods 并选择节点来让 Pod 在上面运行。 调度决策考虑的因素包括单个 Pod 及 Pods 集合的资源需求、软硬件及策略约束、 亲和性及反亲和性规范、数据位置、工作负载间的干扰及最后时限。 kube-controller-manager kube-controller-manager 是控制平面的组件 负责运行控制器进程。 从逻辑上讲 每个控制器都是一个单独的进程 但是为了降低复杂性它们都被编译到同一个可执行文件并在同一个进程中运行。 控制器有许多不同类型。以下是一些例子 Node 控制器负责在节点出现故障时进行通知和响应Job 控制器监测代表一次性任务的 Job 对象然后创建 Pod 来运行这些任务直至完成。EndpointSlice 控制器填充 EndpointSlice 对象以提供 Service 和 Pod 之间的链接。ServiceAccount 控制器为新的命名空间创建默认的 ServiceAccount。 cloud-controller-manager 一个 Kubernetes 控制平面组件 嵌入了特定于云平台的控制逻辑。 云控制器管理器Cloud Controller Manager允许将你的集群连接到云提供商的 API 之上 并将与该云平台交互的组件同与你的集群交互的组件分离开来。cloud-controller-manager 仅运行特定于云平台的控制器。 因此如果你在自己的环境中运行 Kubernetes或者在本地计算机中运行学习环境 所部署的集群不包含云控制器管理器。 与 kube-controller-manager 类似cloud-controller-manager 将若干逻辑上独立的控制回路组合到同一个可执行文件中以同一进程的方式供你运行。 你可以对其执行水平扩容运行不止一个副本以提升性能或者增强容错能力。 下面的控制器都包含对云平台驱动的依赖 Node 控制器用于在节点终止响应后检查云平台以确定节点是否已被删除Route 控制器用于在底层云基础架构中设置路由Service 控制器用于创建、更新和删除云平台上的负载均衡器 节点组件 节点组件会在每个节点上运行负责维护运行的 Pod 并提供 Kubernetes 运行时环境。 kubelet kubelet 会在集群中每个节点node上运行。 它保证容器containers都运行在 Pod 中。 kubelet 接收一组通过各类机制提供给它的 PodSpec确保这些 PodSpec 中描述的容器处于运行状态且健康。 kubelet 不会管理不是由 Kubernetes 创建的容器。 kube-proxy可选 kube-proxy 是集群中每个节点node上所运行的网络代理 实现 Kubernetes 服务Service 概念的一部分。 kube-proxy 维护节点上的一些网络规则 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信。 如果操作系统提供了可用的数据包过滤层则 kube-proxy 会通过它来实现网络规则。 否则kube-proxy 仅做流量转发。 如果你使用网络插件为 Service 实现本身的数据包转发 并提供与 kube-proxy 等效的行为那么你不需要在集群中的节点上运行 kube-proxy。 容器运行时 这个基础组件使 Kubernetes 能够有效运行容器。 它负责管理 Kubernetes 环境中容器的执行和生命周期。 Kubernetes 支持许多容器运行环境例如 containerd、 CRI-O 以及 Kubernetes CRI (容器运行环境接口) 的其他任何实现。 插件Addons ‌Addons的翻译是附加组件、插件或扩展程序。 插件使用 Kubernetes 资源DaemonSet、 Deployment 等实现集群功能。 因为这些插件提供集群级别的功能插件中命名空间域的资源属于 kube-system 命名空间。 下面描述众多插件中的几种。有关可用插件的完整列表 请参见插件Addons。 DNS 尽管其他插件都并非严格意义上的必需组件但几乎所有 Kubernetes 集群都应该有集群 DNS 因为很多示例都需要 DNS 服务。 集群 DNS 是一个 DNS 服务器和环境中的其他 DNS 服务器一起工作它为 Kubernetes 服务提供 DNS 记录。 Kubernetes 启动的容器自动将此 DNS 服务器包含在其 DNS 搜索列表中。 Web 界面仪表盘 Dashboard 是 Kubernetes 集群的通用的、基于 Web 的用户界面。 它使用户可以管理集群中运行的应用程序以及集群本身并进行故障排除。 容器资源监控 容器资源监控 将关于容器的一些常见的时序度量值保存到一个集中的数据库中并提供浏览这些数据的界面。 集群层面日志 集群层面日志机制负责将容器的日志数据保存到一个集中的日志存储中 这种集中日志存储提供搜索和浏览接口。 网络插件 网络插件 是实现容器网络接口CNI规范的软件组件。它们负责为 Pod 分配 IP 地址并使这些 Pod 能在集群内部相互通信。 架构变种 虽然 Kubernetes 的核心组件保持一致但它们的部署和管理方式可能有所不同。 了解这些变化对于设计和维护满足特定运营需求的 Kubernetes 集群至关重要。 控制平面部署选项 控制平面组件可以通过以下几种方式部署 传统部署 控制平面组件直接在专用机器或虚拟机上运行通常作为 systemd 服务进行管理。 静态 Pod 控制平面组件作为静态 Pod 部署由特定节点上的 kubelet 管理。 这是像 kubeadm 这样的工具常用的方法。 自托管 控制平面在 Kubernetes 集群本身内部作为 Pod 运行 由 Deployments、StatefulSets 或其他 Kubernetes 原语管理。 托管 Kubernetes 服务 云平台通常将控制平面抽象出来将其组件作为其服务的一部分进行管理。 工作负载调度说明 含控制平面组件在内的工作负载的调度可能因集群大小、性能要求和操作策略而有所不同 在较小或开发集群中控制平面组件和用户工作负载可能在同一节点上运行。较大的生产集群通常将特定节点专用于控制平面组件将其与用户工作负载隔离。一些组织在控制平面节点上运行关键组件或监控工具。 集群管理工具 像 kubeadm、kops 和 Kubespray 这样的工具提供了不同的集群部署和管理方法 每种方法都有自己的组件布局和管理方式。 Kubernetes 架构的灵活性使各组织能够根据特定需求调整其集群平衡操作复杂性、性能和管理开销等因素。 定制和可扩展性 Kubernetes 架构允许大幅度的定制 你可以部署自定义的调度器与默认的 Kubernetes 调度器协同工作也可以完全替换掉默认的调度器。API 服务器可以通过 CustomResourceDefinition 和 API 聚合进行扩展。云平台可以使用 cloud-controller-manager 与 Kubernetes 深度集成。 Kubernetes 架构的灵活性使各组织能够根据特定需求调整其集群平衡操作复杂性、性能和管理开销等因素。 参考Kubernetes中文文档
http://www.dnsts.com.cn/news/50695.html

相关文章:

  • 公司网站建设知乎深圳大事件
  • 福州网站建设加q479185700vi设计怎么做
  • 网站建设毕业设计心得华为云云速建站
  • 网站建设都有哪些方面网页设计公司背景
  • 长沙网站建设策划ps网页设计案例
  • 网站全面推广方案织梦制作网站地图
  • iis网站属性没有asp.net网站建设人员组成
  • 去哪网站备案吗wordpress 英文企业站
  • 安徽省住房和城乡建设厅门户网站wordpress 站外链接
  • 站酷海报设计图片超级优化
  • 医院网站建设规范做米业的企业网站
  • 网站开发的核心技术西安建筑网站建设
  • 当富广州网站建设安徽网站建设科技
  • html代码网站贺州住房和城乡建设部网站
  • 说明电子商务网站的建设流程wordpress更换模板
  • 唐山石家庄做网站哪家好有谁知道网站优化怎么做
  • 网站我优化视频网站不赚钱为什么还做
  • 一个域名怎么用来做多个网站大连网站开发多少钱
  • 做网站链接容易吗网站 需求分析
  • 网站首页设计分析软件工程主要是学什么
  • 无锡网站制作建设凡科建站手机版登录
  • 苏州知名网站制作建设局电话965559
  • 东莞哪里能学建设网站商务卫士包括网站建设
  • 微网站建设找哪家保定有哪些做网站的地方
  • 泰州网页网站制作博罗营销网站制作
  • 10大免费软件下载网站关于江西建设监督网网站迁移
  • 网站建设东营小程序商城系统平台
  • 国外设计公司网站欣赏做网站一个月能赚多少钱
  • 网站建设有免费的吗ic电子网站建设
  • 自定义表单网站有源码搭建网站难不难