1 kubernetes
1.1 pod
Pod 是 Kubernetes 定义的“容器运行模型”,Docker(或 containerd)只是把模型落地成 Linux 进程的工具。 Pod 运行时不安装操作系统;容器只携带用户态环境,所有 Pod 都运行在宿主机同一个 Linux 内核之上。
docker runc 使用的是:Linux namespaces 或 cgroups
Pod 可以认为是容器的封装,一个 Pod 中可以存在一个或者多个容器。
1.2 Namespace
Namespace 是 kubernetes 系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。
默认情况下,kubernetes 集群中的所有的 Pod 都是可以相互访问的。但是在实际中,可能不想让两个 Pod 之间进行互相的访问,那此时就可以将两个 Pod 划分到不同的 namespace 下。kubernetes 通过将集群内部的资源分配到不同的 Namespace 中,可以形成逻辑上的”组”,以方便不同的组的资源进行隔离使用和管理。
1.3 Deployment
2 Flink on k8s

https://juejin.cn/post/7038404897628225573
https://juejin.cn/post/7199235461045960759
https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main/docs/concepts/architecture/
2.1 Flink on Kubernetes的两种模式
2.1.1 Application模式

2.1.2 Session模式

2.1.3 峰峦(pre-job模式)
| 模式 | 原理 | 优点 | 缺点 | 对我们 |
|---|---|---|---|---|
| Application模式 | 每个作业各有一个JM | 1. 资源隔离,负载均衡保证 2. 作业间彼此独立,互不影响 |
||
| Session模式 | 所有作业共享一个JM | 资源隔离差,作业间相互影响 | ||
| 峰峦Pre-job模式 |
2.2 Kubernetes vs Yarn
what is Kubernetes API? how to use?
what is 峰峦?
2.3 Oceanus/Flink调度峰峦资源

2.4 Kubernetes调度过程
K8S不仅能将用户提供的单个容器运行起来,将其对外暴露出去提供服务。还提供了:路由网关、集群监控、灾难恢复,以及应用的水平扩展等能力。

