软件开发架构师

第二章 重要概念

架构 139 2019-03-22 23:12

1 Cluster : 

2 Master:Cluster的大脑,主要职责是调度,可以运行多个master来保证高可用。

3 Node:职责是运行容器应用,Node由Master管理,负责监控并汇报容器的状态,同时根据Master的要求管理容器的生命周期。

4 Pod: Pod 是K8s的最小工作单元。每个Pod包含一个或多个容器。

  • 有些容器天生就是需要紧密联系,一起工作。Pod提供了比容器更高层次的抽象,K8s以Pod为最小单位进行调度、扩展、共享资源、管理生命周期。
  • Pod中的所有容器使用同一个网络的namespace,即相同的IP地址和Port空间。它们可以直接用localhost通信。同样的,这些容器可以共享存储,当K8s挂载Volume到Pod上,本质上是将volume挂载到Pod中的每一个容器。

5 Controller:K8s通常不直接创建Pod,而是通过Controller来管理Pod。Controller中定义了pod的部署属性,比如几个副本、在什么样的Node上运行等。

                        K8s提供了多种Controller,包括Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job等。

6 Service:Deployement可以部署多个副本,每个Pod都有自己的副IP,外界如何访问这些副本。

              Pod会被频繁的销毁和重启,IP实时变化,不能用IP, 答案是通过service。

              K8s service 定义了外界访问一组特定Pod的方式。service有自己的IP和端口,service为Pod提供了负载均衡。

              K8S 运行Pod与访问Pod这两项任务分别由Controller和Service执行。

7 Namespace: Namespace将物理的Cluster逻辑上划分成多个虚拟Cluster,每个Cluster就是一个Namespace。不同的Namespace里的资源是完全隔离的。

                  default:默认的namespace

                  kube-system:  K8s自己创建的的系统资源放到这个namespace

 

文章评论