kubernetes概念
- kubernetes blog
- cluster
cluster是计算、存储、和网络资源的集合,kubernetes利用这些资源运行各种基于容器的应用。
- master
master是cluster的大脑,它的主要职责是调度,即决定应用放在哪运行。为了实现高可用,可以运行多个master。
- node
node的职责是运行容器应用,node由master管理,node负责监控并汇报容器的状态,并根据master的要求管理容器的生命周期。
- pod
pod是kubernetes的最小工作单元。每个pod包含一个或多个容器,pod中的容器会作为一个整体被master调度到一个node上运行。
- pod的作用
- 方便管理关系密切的容器
- 方便通信和资源共享,pod中所有容器共享namespace,ip,port
-
Kubernetes运行容器(Pod)与访问容器(Pod)这两项任务分别由 Controller 和 Service 执行
- controller
kubernetes通常不会直接创建pod,而是通过controller来管理pod,如定义pod有几个副本,在什么样的node上运行等等。
- controller分类
- deployment,是最常见的是controller,它可以管理pod的多个副本,并确保按预期状态运行。
- job用于运行结束就删除的应用。而其他Controller中的pod通常是长期持续运行
- statefuleset,它能够保证pod的每个副本在整个生命周期中的名称是不变的,同时保证副本按照固定的顺序启动、更新或者删除。
- daemonset,它通常用于运行daemon
- ReplicaSet 实现了 Pod 的多副本管理
- service
- kubernetes service定义了外界访问一组pod的方式。service有自己的ip和port,并为pod提供了负载均衡。
- namespace
- 将多用户或项目组创建的controller,pod等资源分开,每个cluster就是一个namespace,不同的namespace的资源是完全隔离的。
- Kubernetes默认创建了两个Namespace。