k8s(一):基本概念
在Kubernetes系统中,Kubernetes对象是持久化的实体。哪些容器化应用正在运行可以被应用使用的资源关于应用运行时行为的策略:重启策略,升级策略,容错策略在k8中使用yaml格式的文件表示Kubernetes对象。几乎每个对象都包含两个嵌套的对象字段对象spec(规约)和对象status(状态)spec表示你希望对象所具有的特征,期望状态status对象当前的状态描述对象的yaml文件
为什么是k8s
1. 因为k到s之前有8个字母
Kubernetes 中,k到s之间恰好有8个字母,所以简称k8s
2. 因为它是超好用的容器编排工具
- 自动化容器部署和扩展: Kubernetes允许开发人员和运维团队轻松地部署和管理容器化的应用程序。它可以自动处理应用程序的伸缩,根据负载自动调整实例数量,确保应用程序始终可用。
- 高度可扩展: Kubernetes是一个高度可扩展的平台,可以轻松地在集群中添加或移除节点。这使得系统可以根据需求进行横向扩展,以处理更多的工作负载。
- 自我修复: Kubernetes可以检测和替换故障节点或容器,确保应用程序的高可用性。如果某个节点或容器失败,Kubernetes将自动启动替代实例。
- 服务发现和负载均衡: Kubernetes具有内建的服务发现和负载均衡机制,使得在集群内部轻松通信和协同工作成为可能。它可以为服务分配稳定的网络地址,并通过负载均衡确保请求分布到可用的实例上。
- 多环境支持: Kubernetes可以在多个云提供商、私有数据中心或混合云环境中运行,使得应用程序可以在不同环境中无缝迁移。
- 灵活的部署选项: Kubernetes支持多种部署选项,包括Blue-Green部署、滚动升级等,使得应用程序可以以零停机的方式进行更新和升级。
- 声明式配置: Kubernetes使用声明式配置,允许用户描述他们希望系统处于的状态,而不需要定义系统如何进行状态转换。系统将自动调整以匹配所需的状态。
- 社区支持和生态系统: Kubernetes有一个庞大的开发者社区,拥有丰富的文档、教程和第三方工具。这个庞大的生态系统使得用户可以轻松找到解决方案和支持。
- 安全性: Kubernetes提供了一些安全性功能,例如基于角色的访问控制(RBAC)、容器隔离、密钥管理等,有助于保护容器化应用程序的安全性。
3. 常见的容器编排工具
- Kubernetes: Kubernetes是目前最流行和广泛使用的容器编排平台。它提供了高度可扩展的集群管理、自动化部署、服务发现和负载均衡等功能。Kubernetes具有强大的生态系统和广泛的社区支持,适用于大规模的容器化应用程序集群。
- Docker Swarm: Docker Swarm是Docker官方提供的容器编排工具。它集成在Docker引擎中,提供了简单的集群管理和服务编排功能。Docker Swarm适用于小型和中型规模的容器部署,易于上手和使用。
- Apache Mesos: Apache Mesos是一个通用的集群管理系统,可以用于管理多种类型的工作负载,包括容器。它提供了高可用性、资源调度和任务编排的功能。Mesos适用于复杂的分布式系统和混合工作负载的场景。
Kubernetes中的对象
什么是Kubernetes对象
在Kubernetes系统中,Kubernetes对象是持久化的实体。 Kubernetes 使用这些实体去表示整个集群的状态:
- 哪些容器化应用正在运行
- 可以被应用使用的资源
- 关于应用运行时行为的策略:重启策略,升级策略,容错策略
在k8中使用yaml格式的文件表示Kubernetes对象。几乎每个对象都包含两个嵌套的对象字段对象spec(规约)和对象status(状态)
- spec表示你希望对象所具有的特征,期望状态
- status对象当前的状态
描述对象的yaml文件中必须具备的字段
apiVersion
- 创建该对象所使用的 Kubernetes API 的版本kind
- 想要创建的对象的类别metadata
- 帮助唯一标识对象的一些数据,包括一个name
字符串、UID
和可选的namespace
spec
- 你所期望的该对象的状态
常见对象的类型
-
Pod:在 Kubernetes 中,Pod 是最小的可部署单元,用于容纳一个或多个容器。Pod 为容器提供了一个共享的环境,包括网络命名空间、存储卷和 IP 地址,使得这些容器可以紧密协同工作
kind: Pod
-
Service:是一种用于定义一组 Pod 的访问方式的抽象概念。它提供了一种稳定的网络入口,允许你动态地将请求路由到运行在集群内的 Pod
kind: Service
-
Deployment:是一种用于声明式管理 Pod 的高级控制器(Controller)。Deployment 提供了一种便捷的方式来定义、创建、升级和扩展应用程序的副本集
kind: Deployment
-
ConfigMap:文件挂载的一种途径,可以将非机密的配置数据与你的应用程序分开,以便在部署和维护过程中更轻松地进行管理
kind: ConfigMap
-
Secret:文件挂载:用于存储敏感信息,如密码、OAuth 令牌等。
kind: Secret
-
PersistentVolume:表示集群中的存储资源。
kind: PersistentVolume
更多推荐
所有评论(0)