Kubernetes 基础

111 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第20天,点击查看活动详情

Kubernetes 是容器集群管理系统

使用 Docker 时,利用容器实现类似虚拟机的功能,但和虚拟机不同的是,容器技术不是虚拟硬件而是操作系统的虚拟化,与宿主机共享内核。

应用运行所需的程序,依赖的环境都打包成一个镜像,之后就可以快速加载到任何环境中部署运行。仅需一次构建,就可以到处运行,且轻量,快速。Docker 支持从构建,交付到运行整个生态链。

Kubernetes 是 Google 开源的容器集群管理系统。构建在 Docker 容器之上,为容器化应用提供资源调度,部署运行、服务发现、扩容缩容等功能。

Kubernetes 核心

  • Pod

    Pod 是 Kubernets 创建,调度和管理的最小单位。

    Pod 是若个容器的组合,它们在宿主机上运行,使用了相同的网络命名空间,IP地址和端口。一个Pod 内的容器之间的通信通过 localhost 。

  • Replication Controller

    是用来控制管理 Pod副本(实例)。Replication Controller 是用来保证 kubernetes 集群中有指定数量的 Pod 副本在运行,若少了,会自动启动新的Pod 副本,多了就会杀死多余的。

  • Service

    针对容器的服务发现与负载均衡机制,kuberneter 提供了 Service 资源。Service 是对一组提供相同功能的 Pods 的抽象,并为它们提供一个统一的入口。借助 Service,应用可以方便的实现服务发现与负载均衡,并实现应用的零宕机升级

  • Node

    Node 是 Pod 运行的宿主机。Node 是 Kubernetes 的操作单元,用来分配给 Pod进行绑定的。

  • Label

    是用于区分 Pod、Service 、Replication controller的 key/value 对。Kubernetes中任意的 API 对象都可以通过 Lable 进行标识。

Kubernetes 基本特点:

  • 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
  • 可扩展: 模块化,插件化,可挂载,可组合
  • 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展

Kubernetes 应用场景

  • 使用 k8s 来构建一套自动化运维平台,提供了应用部署,规划,更新,维护的一种机制
  • 多服务可以使用容器化部署,自动化运维、监控服务
  • 服务无差别进行迁移

参考资料