k8s(一):基本概念

为什么是k8s

1. 因为k到s之前有8个字母

Kubernetes 中,k到s之间恰好有8个字母,所以简称k8s

2. 因为它是超好用的容器编排工具

  1. 自动化容器部署和扩展: Kubernetes允许开发人员和运维团队轻松地部署和管理容器化的应用程序。它可以自动处理应用程序的伸缩,根据负载自动调整实例数量,确保应用程序始终可用。
  2. 高度可扩展: Kubernetes是一个高度可扩展的平台,可以轻松地在集群中添加或移除节点。这使得系统可以根据需求进行横向扩展,以处理更多的工作负载。
  3. 自我修复: Kubernetes可以检测和替换故障节点或容器,确保应用程序的高可用性。如果某个节点或容器失败,Kubernetes将自动启动替代实例。
  4. 服务发现和负载均衡: Kubernetes具有内建的服务发现和负载均衡机制,使得在集群内部轻松通信和协同工作成为可能。它可以为服务分配稳定的网络地址,并通过负载均衡确保请求分布到可用的实例上。
  5. 多环境支持: Kubernetes可以在多个云提供商、私有数据中心或混合云环境中运行,使得应用程序可以在不同环境中无缝迁移。
  6. 灵活的部署选项: Kubernetes支持多种部署选项,包括Blue-Green部署、滚动升级等,使得应用程序可以以零停机的方式进行更新和升级。
  7. 声明式配置: Kubernetes使用声明式配置,允许用户描述他们希望系统处于的状态,而不需要定义系统如何进行状态转换。系统将自动调整以匹配所需的状态。
  8. 社区支持和生态系统: Kubernetes有一个庞大的开发者社区,拥有丰富的文档、教程和第三方工具。这个庞大的生态系统使得用户可以轻松找到解决方案和支持。
  9. 安全性: Kubernetes提供了一些安全性功能,例如基于角色的访问控制(RBAC)、容器隔离、密钥管理等,有助于保护容器化应用程序的安全性。

3. 常见的容器编排工具

  1. Kubernetes: Kubernetes是目前最流行和广泛使用的容器编排平台。它提供了高度可扩展的集群管理、自动化部署、服务发现和负载均衡等功能。Kubernetes具有强大的生态系统和广泛的社区支持,适用于大规模的容器化应用程序集群。
  2. Docker Swarm: Docker Swarm是Docker官方提供的容器编排工具。它集成在Docker引擎中,提供了简单的集群管理和服务编排功能。Docker Swarm适用于小型和中型规模的容器部署,易于上手和使用。
  3. 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 - 你所期望的该对象的状态

常见对象的类型

  1. Pod:在 Kubernetes 中,Pod 是最小的可部署单元,用于容纳一个或多个容器。Pod 为容器提供了一个共享的环境,包括网络命名空间、存储卷和 IP 地址,使得这些容器可以紧密协同工作

    kind: Pod
    
  2. Service:是一种用于定义一组 Pod 的访问方式的抽象概念。它提供了一种稳定的网络入口,允许你动态地将请求路由到运行在集群内的 Pod

    kind: Service
    
  3. Deployment:是一种用于声明式管理 Pod 的高级控制器(Controller)。Deployment 提供了一种便捷的方式来定义、创建、升级和扩展应用程序的副本集

    kind: Deployment
    
  4. ConfigMap:文件挂载的一种途径,可以将非机密的配置数据与你的应用程序分开,以便在部署和维护过程中更轻松地进行管理

    kind: ConfigMap
    
  5. Secret:文件挂载:用于存储敏感信息,如密码、OAuth 令牌等。

    kind: Secret
    
  6. PersistentVolume:表示集群中的存储资源。

    kind: PersistentVolume
    

你可能感兴趣的:(k8,kubernetes,容器,云原生)