- Deployment
- StatefulSet
- Daemonset
- replicaSet
- Replicacontroller // 从K8S的近期版本中将逐渐移除rc
- Job
- cronjob
K8s 网络:
- 平台中的POD如何通信:
- CNI 容器网络插件
- Coredns的组件 负责提供平台中的名称解析
- 平台中的应用如何被客户端访问
- Service // 将部署的应用暴露给一个统一的入口
- ClusterIP // 平台内部IP地址
- NodePort // 节点的端口 从30000以上的端口中随机选择一个端口来暴露服务对应的pod,可以从K8S集群的任意节点IP加端口号 访问服务
- ExternalIP // 外部IP 需要管理员手动分配一个既不属于节点IP所在网段,也不属于集群IP地址段,也不能POD地址段重复的公网IP地址
- Loadbalance // 负载均衡 通过公有云服务上提供的负载均衡服务来实现对于pod的访问
- Ingress // 应用层路由 ingress controller
- 应用网关 // kong nginx等 应用层路由
- Service // 将部署的应用暴露给一个统一的入口
K8S 存储:
- 任何容器在运行时,都需要获取一定的存储空间来存储容器所使用的镜像数据,以及容器的copy-on-write技术,对镜像层数据进行修改
- 使用卷这个抽象概念来定义容器所需要使用的存储
- 在k8s平台中卷是对应pod的概念
卷使用属性:
- 临时卷 // 伴随pod的生命周期,动态制备,在未指定存储驱动的情况下。直接使用pod所在节点的文件系统创建emptydir解决
- 持久卷 // 可以通过持久卷配置对于pod的存储、以及在pod被移除的时候,仅仅卸载卷,而不删除卷的数据 持久卷不是通过卷名来映射并挂在到容器,一般需要引入一个PVC 实现pvc-pv的对应关系,而容器的mount中只需要说明pvc的名称和挂载点
从卷存储驱动角度:简单的说就是卷中的数据会被存储到那个地方
- 节点上本地文件系统、逻辑卷、块设备、分区:
- Hostpath // 指定的路径必须已经在工作节点上存在
- Empdir // empty 一般会在pod删除时,清空数据
- Local // 不支持动态制备
- 基于一些网络文件共享服务: // 需要预先设置好,对应服务的服务端,并在客户端,也就是K8S的节点上,预先配置好客户端的环境
- Nfs
- Iscsi
- 基于公有云的云存储服务,所提供的存储驱动:下面列出了常见的公有云厂商
- Aws
- Azure
- Vshpere
- 基于常规云存储服务:
- Cinder // openstack的一个组件,用来提供块存储服务
- 基于常规的分布式存储解决方案:
- Ceph
- Glusterfs
- 直接将已有的文件|数据(可以在本地,也可以保存在某个网上的地址)制备成卷,然后挂载到pod中 //需要注意卷的更新是否及时同步到容器中
- Config-map
- Secret
- downloadAPI
- Gitrepos
CSI // 容器的存储接口
存储类 : 提供卷的存储引擎 卷的存储空间来自哪里?
K8S 平台中支持同时创建多个存储类,同时只能有一个存储类是默认的存储类
持久卷的使用步骤:
- PV制备
- 静态制备
- Pv 生命周期和pvc 不绑定。删
- 静态制备