Kubernetes:开始使用
了解如何开始部署和管理容器化应用程序。
关于容器的初级指南
在开始使用 Kubernetes 之前,了解集装化的工作原理至关重要。
正如航运业使用物理容器来隔离不同的货物,以便在轮船、火车、卡车和飞机上运输一样,软件开发技术也越来越多地使用一个名为集装化的概念。
单个软件包(也称为容器)将应用程序的代码与相关配置文件、库以及运行应用所需的依赖项捆绑在一起。这使得开发者和 IT 专业人员能够更快、更安全地创建和部署应用程序。
集装化在应用程序的整个生命周期工作流中提供了隔离、可移植性、灵活性、可伸缩性和控制优势。从主机操作系统中抽象出来的容器是独立的,并且可移植性更高,它能够跨任何平台或云运行,且在任何基础结构上保持统一和一致。
Kubernetes 组件和概念
群集
在最高级别上,Kubernetes 被组织为虚拟机或本地计算机群集。这些计算机称为节点,它们共享计算、网络和存储资源。每个群集都有一个连接到一个或多个工作器节点的主节点。工作器节点负责运行容器化应用程序和工作负载组(称为 Pod),而主节点管理哪些 Pod 在哪个工作器节点上运行。
控制平面
为使主节点与工作器节点进行通信,并使用户与主节点进行通信,Kubernetes 提供了大量共同构成控制平面的对象。
开发人员和操作人员主要通过主节点使用 kubectl(安装在本地操作系统上的命令行接口)与群集交互。通过 kubectl 向群集发出的命令由 kube-apiserver(驻留在主节点上的 Kubernetes API)接收。然后,kube-apiserver 将请求传达给主节点中的 kube-controller-manager,后者负责处理工作器节点操作。来自主节点的命令由工作器节点上的 kubelet 接收。
部署应用和工作负载
Kubernetes 入门的下一步是部署应用和工作负载。主节点始终在 etcd(一个键值存储数据库)中维护 Kubernetes 群集的当前状态和配置。要通过容器化应用和工作负载运行 Pod,需要以 YAML 文件的形式向群集描述新的所需状态。Kube-controller-manager 使用 YAML 文件,并向 kube-scheduler 发送任务,使其根据预先确定的约束来确定应用或工作负载应运行哪些工作器节点。Kube-scheduler 与每个工作器节点的 kubelet 协同工作,启动 Pod、监视计算机状态,并全面负责资源管理。
在 Kubernetes 部署中,描述的所需状态将成为 etcd 中的当前状态,但前一个状态不会丢失。Kubernetes 支持回滚、滚动更新和暂停推出。此外,部署在后台使用 ReplicaSet 来确保具有相同配置的指定数量 Pod 正在运行。如果一个或多个 Pod 失败,ReplicaSet 将替换它们。以这种方式来看,Kubernetes 可以说是具有自我修复能力。
构建并保护 Kubernetes 环境
部署应用或工作负载后,Kubernetes 入门的最后一步是组织它们并确定可以访问它们的对象。通过创建名称空间(Kubernetes 中的一种分组方法),可以让服务、Pod、控制器和卷轻松协同工作,同时将它们与群集的其他部分隔离开来。此外,还可使用 Kubernetes 的命名空间概念将一致的配置应用于资源。
此外,每个工作器节点都包含一个 kube-proxy,用于确定如何从外部访问群集的各个方面。将敏感的非公开信息(例如令牌、证书和密码)存储在另一 Kubernetes 对象(即机密)中,该对象在运行时前始终在进行编码。
最后,通过使用基于角色的访问控制 (RBAC),指定谁可以查看群集的哪些部分并与之交互,以及如何允许他们交互。
实现完全托管的 Kubernetes 解决方案
通过 Azure Kubernetes 服务 (AKS) 管理托管的 Kubernetes 环境。在没有容器业务流程经验的情况下部署并维护容器化应用。按需预配、升级和缩放资源,无需使应用脱机。
Kubernetes 快速入门:50 天内启动并运行
使用此分步指南开始使用 Kubernetes,并获取有关使用 Kubernetes 组件、功能和解决方案的实践经验。