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 地址,使得这些容器可以紧密协同工作

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

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

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

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

    yaml 复制代码
    kind: Secret
  6. PersistentVolume:表示集群中的存储资源。

    yaml 复制代码
    kind: PersistentVolume
相关推荐
没有名字的小羊1 小时前
2.安装Docker
运维·docker·容器
xiezhr1 小时前
50 个常用 Docker 命令
运维·docker·容器
退役小学生呀9 天前
三、kubectl使用详解
云原生·容器·kubernetes·k8s
被困者10 天前
Linux部署Sonic前后端(详细版)(腾讯云)
spring cloud·云原生·eureka
程序员小潘10 天前
Kubernetes多容器Pod实战
云原生·容器·kubernetes
进击的码码码码N10 天前
Docker 镜像加速
运维·docker·容器
Q_w774210 天前
基于 Docker 的服务部署探索(Day 2)
运维·docker·容器
white.tie10 天前
docker方式启动Jenkins
docker·容器·jenkins
阿里云云原生10 天前
语音生成+情感复刻,Cosyvoice2.0 极简云端部署
云原生·serverless
阿里云云原生10 天前
编程简单了,部署依旧很难|Karpathy 演讲的 5 点解读
云原生