网站搭建岗位及要求,wordpress 吃cpu,贵阳小程序定制开发,做网站用cms好吗什么是K8s Kubernetes 也称为 K8s#xff0c;是用于自动部署、扩缩和管理容器化应用程序的开源系统。
Kubernetes 最初是由 Google 工程师作为 Borg 项目开发和设计的#xff0c;后于 2015 年捐赠给 云原生计算基金会#xff08;CNCF#xff09;。
什么是 Kubernetes 集群…什么是K8s Kubernetes 也称为 K8s是用于自动部署、扩缩和管理容器化应用程序的开源系统。
Kubernetes 最初是由 Google 工程师作为 Borg 项目开发和设计的后于 2015 年捐赠给 云原生计算基金会CNCF。
什么是 Kubernetes 集群
有效的 Kubernetes 部署称为集群也就是一组运行 Linux容器的主机。您可以将 Kubernetes 集群可视化为两个部分控制平面与节点或称为计算设备。 每个节点都是其自己的 Linux 环境并且可以是物理机或虚拟机。每个节点都运行由若干容器组成的容器集。
控制平面负责维护集群的预期状态例如运行哪个应用以及使用哪个容器镜像。计算机则负责应用和工作负载的实际运行。控制平面接受来自管理员或 DevOps 团队的命令并将这些指令转发给计算机。
此交接将与许多服务协同以自动决定哪个节点最适合执行该任务。服务会将工作定义与容器集解耦并自动将服务请求分发到正确的容器集——无论这个容器集会移动到集群中的哪个位置甚至可以被替换掉。然后它将在该节点分配资源并指派容器集来完成任务请求。
Kubernetes 在操作系统上运行并与节点上运行的容器集交互。
Kubernetes 集群的预期状态定义了应运行哪些应用或其他工作负载、应使用哪些镜像、应提供哪些资源以及其他配置详情。
在使用这种基础架构时管理容器的方式基本不变。但您需要在更高级别参与容器管理无需对独立的容器或节点实施微观管理就能更好地控制容器。
您可以自己决定具体在哪里运行 Kubernetes。可以是裸机服务器、虚拟机VM、公共云提供商、私有云和混合云环境。Kubernetes 的一大优势就是它可以在许多不同类型的基础架构上运行。
Kubernetes vs.Docker
Docker 可被用作由 Kubernetes 编排的容器运行时。当 Kubernetes 将容器集调度到节点上时该节点上的 kubelet确保每个容器都在运行的服务会指示 Docker 启动指定的容器。
然后kubelet 持续从 Docker 收集这些容器的状态并将该信息聚合到控制平面中。Docker 将容器拉到该节点上并启动和停止这些容器。
将 Kubernetes 与 Docker 搭配使用带来的区别在于自动化系统要求 Docker 在所有节点上对所有容器执行这些操作而非要求管理员手动操作。
Kubernetes 的用途是什么
Kubernetes 可以帮助您交付和管理容器化、传统和云原生应用以及重构为微服务的应用。
为了满足日新月异的业务需求开发团队需要能够快速构建新的应用和服务。云原生开发模式从容器内微服务开始不仅可以加快开发速度同时能够更轻松地转换和优化现有应用。
使用 Kubernetes 进行应用开发 生产应用跨越多个容器而这些容器必须部署到多个服务器主机上。Kubernetes 可以提供所需的编排和管理功能以便您针对这些工作负载大规模部署容器。
借助 Kubernetes 编排功能您可以构建跨多个容器的应用服务、跨集群调度、扩展这些容器并长期持续管理这些容器的健康状况。有了 Kubernetes您便可切实采取一些措施来提高 IT 安全性。
Kubernetes 还需要与联网、存储、安全性、遥测和其他服务整合以提供全面的容器基础架构。
一旦把它扩展到生产环境和多个应用您显然需要许多托管在相同位置的容器来协同提供各种服务。
Linux 容器可为基于微服务的应用提供理想的应用部署单元和独立的执行环境。通过将微服务放入容器就能更加轻松地编排各种服务包括存储、网络和安全防护。
随着这些容器的累积环境中容器的数量会急剧增加复杂度也随之增长。
Kubernetes 通过将容器分类组成 “容器集”解决了容器激增带来的许多常见问题。容器集为分组容器增加了一个抽象层可帮助您调度工作负载并为这些容器提供所需的服务如联网和存储等。
Kubernetes 的其他部分可帮助您在这些容器集之间平衡负载同时确保运行正确数量的容器充分支持您的工作负载。
如果能正确实施 Kubernetes再辅以其他开源项目例如 Open vSwitch、OAuth 和 SELinux您就能够轻松编排容器基础架构的各个部分。
核心概念 节点 命名空间 容器组 副本集 部署 服务
nodes 节点
Kubernetes 通过将容器放入在节点Node上运行的 Pod 中来执行你的工作负载。 节点可以是一个虚拟机或者物理机器取决于所在的集群配置。 每个节点包含运行 Pod 所需的服务 这些节点由控制面负责管理。
通常集群中会有若干个节点而在一个学习所用或者资源受限的环境中你的集群中也可能只有一个节点。
节点上的组件包括 kubelet、 容器运行时以及 kube-proxy。
namespaces 命名空间
在 Kubernetes 中命名空间Namespace 提供一种机制将同一集群中的资源划分为相互隔离的组。 同一命名空间内的资源名称要唯一但跨命名空间时没有这个要求。 命名空间作用域仅针对带有命名空间的对象 例如 Deployment、Service 等这种作用域对集群范围的对象 例如 StorageClass、Node、PersistentVolume 等不适用。
pods 容器组
Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。
Pod就像在鲸鱼荚或者豌豆荚中是一组一个或多个 容器 这些容器共享存储、网络、以及怎样运行这些容器的规约。 Pod 中的内容总是并置colocated的并且一同调度在共享的上下文中运行。 Pod 所建模的是特定于应用的 “逻辑主机”其中包含一个或多个应用容器 这些容器相对紧密地耦合在一起。 在非云环境中在相同的物理机或虚拟机上运行的应用类似于在同一逻辑主机上运行的云应用。
除了应用容器Pod 还可以包含在 Pod 启动期间运行的 Init 容器。 你也可以注入临时性容器来调试正在运行的 Pod。
replicaset 副本集
ReplicaSet 的作用是维持在任何给定时间运行的一组稳定的副本 Pod。 通常你会定义一个 Deployment并用这个 Deployment 自动管理 ReplicaSet。
ReplicaSet 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合。 因此它通常用来保证给定数量的、完全相同的 Pod 的可用性。
deployment 部署
Deployment 用于管理运行一个应用负载的一组 Pod通常适用于不保持状态的负载。
一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。
你负责描述 Deployment 中的目标状态而 Deployment 控制器Controller 以受控速率更改实际状态 使其变为期望状态。你可以定义 Deployment 以创建新的 ReplicaSet或删除现有 Deployment 并通过新的 Deployment 收养其资源。
service 服务
将在集群中运行的应用通过同一个面向外界的端点公开出去即使工作负载分散于多个后端也完全可行。
Kubernetes 中 Service 是 将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法。
Kubernetes 中 Service 的一个关键目标是让你无需修改现有应用以使用某种不熟悉的服务发现机制。 你可以在 Pod 集合中运行代码无论该代码是为云原生环境设计的还是被容器化的老应用。 你可以使用 Service 让一组 Pod 可在网络上访问这样客户端就能与之交互。