在实际之前,必须先学习 k8s 的几个重要概念,他们是组成 k8s 的集群基石
1. Cluster:计算、存储和网络资源的汇合,k8s 利用这些资源运行基于容器的利用。
2. Master:次要工作时用来做调度应用的,治理各个节点的生命周期
3. Node:负责是容器的利用运行。由 Master 治理,Node 监控 Pod 的状况,并及时反馈。
4. Pod: k8s 的最小单元,每一个 Pod 有一个或多个容器。Pod 的一个整体在 Node 上运行,并被 Master 调度。
k8s 引入 Pod 次要是两方面
4.1 可管理性:pod 提供比容器更高的形象,将他们封装一个部署单元中,k8s 以 pod 最小单元进行调度,扩大,资源共享,治理生命周期
4.2 通信资源和资源共享:pod 中的所有容器都是用同一个 namespace,雷同的 Ip 地址和 Port 空间。同样的资源共享应用的 volume 到 pod。
pods 有两种应用的形式:
1)运行繁多容器:one-container-per-Pod 是 K8s 常常用到的模型。你能够了解为一个 pod 就是一容器。
2)运行多个容器:如果你容器和容器间接须要间接资源共享的话,这模型能够更好的解决问题。举个官网的例子
File Puller 会定期从内部的 Content Manager 中拉取最新的文件,将其存在共享的 volume 中。web Server 从 volume 读取文件,Response Consumer 的申请。
这两个容器有严密的合作,他们一起为 Consumer 提供最新的数据;同时也通过 volume 共享数据。
5 Controller
k8s 通常不能间接创立 pod,而是通过 Contoller 来治理 Pod。在 k8s 外面又提供了 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等。
1) Deploymen 是最罕用的 Controller,比方在线教程中就是通过创立 Deploymen 来部署利用的。Deploymen 能够治理多个 Pod 正本。并确保 Pod 依照冀望的状态运行。
2) ReplicaSet 实现多个 Pod 的多正本治理。应用 Deploymen 时会主动创立 ReplicaSet,也就是说 Deploymen 是通过 ReplicaSe 来治理多个正本的。
3) StatefuleSe:可能保障 Pod 整个生命周期名称是不变的。
4) Job 用于运行完结就删除的利用,而其余 Controller 中的 Pod 通常是长期应用运行的。
6 Service
Deploymen 能够部署 doge 正本,每个 Pod 都有本人的 Ip,内部是如何拜访这些正本呢?
通过 Pod 的 IP 嘛?
要晓得 Pod 很可能会被频繁地删除和重启,他们的 ip 是会变动,用 ip 来拜访不太事实。所以就有了 Service,k8s Service 定一个外界拜访一组特定的 Pod 的形式。Service 有本人的 Ip 和端口,Service 为 Pod 提供了负载平衡。
k8s 运行 Pod 与拜访容器 pod 这两项工作别离有 Contoller 和 Service 执行
7 Namespace
和 docker 一样应用 Namespace 进行隔离 Controller、Pod 等资源。
k8s 默认创立两个 Namespace
default:创立资源时如果不指定,将被放到这个 Namespace 中
kube-system:k8s 本人创立的系统资源将放到这个 Namespace 中。