Kubernetes的API对象

Namespace:名称空间

实现同一集群上的资源隔离(逻辑隔离)一个名称空间内不可创建相同名称的pod,但是不同名称空间可以

Pod

K8s的最小运行单元(Pod里面运行容器,可运行多个,一般一个Pod运行一个容器)

ReplicaSet

pod的上层管理,来控制pod的调度,守护或者负责一些服务的数量,实现pod平滑迭代更新及回滚用,
这个不需要我们实际操作.在上面有个更上层的Deployment来管理它,
当我们部署一个Deployment的时候会生成一个ReplicaSet会去生成对应数量的pod

Deployment

在k8s用来发布无状态应用,这个应用在容器里面可以直接跑,可以横向扩容,不是有状态的,什么是有状态?
比如我们要在k8s上跑一套redis clust集群,redis clust的集群相互之间的pod他就会有一些状态去关联,
每个redis都需要知道谁是master谁知slave.正常来说我们业务服务的话大部门都是无状态的.

Health Check

健康检测,对于一个业务服务在k8s的话必须要有这个机制去检测这个服务是否为正常,如果没有正常运行,
k8s会做出一些相应的策略,比如去重启,把流量断掉不让客户的流量进来
Readiness/Liveness/maxSurge/maxUnavailable 服务健康状态检测

Service和Endpoint

实现同一个lables下的多个pod流量负载均衡
Service可以理解为k8s内部服务某个对应服务的抽象的负载均衡,实现内部多个pod,比如A服务有10个pod,
那10个pod我们怎么去使流量负载均衡到每个pod,就需要通过Service来的
Endpoint不需要自己去创建的,他是有Service去关联的,我们通过Service对应的Endpoint下面找对应的pod

Labels

标签,服务间选择访问的重要依据

Ingress

服务在k8s发布上后,实际上只能通过k8s节点在内部访问的,业务需要在公网提供访问的话,
就必须要这个Ingress提供一个流量入口去访问我们具体的pod上去

DaemonSet

用来发布守护应用,例如我们部署的CNI插件
在每一个节点上部署类似于客户端的东西,比如我们要部署一个日志收集的组件,agent,
那么我们用这个就比较合适了,他的话会在每一天node上去跑一个数量的pod不会跑多,
也不会跑少,每台节点上一个

HPA

Horizontal Pod Autoscaling 自动水平伸缩
比如我定义当使用的资源达到百分之70我就进行扩容,扩容多少,比如说这波流量高峰过去之后,
我们cpu降下来了,我定义一个最小收回多少,比如最小收回到5个,他就跑五个,比如有活动,流量多,
扩容到100个pod,200个都是可以的,合理利用资源,也不会长期占用

Volume

存储卷
对于数据存储的服务,做很好的数据存储

PV、PVC、StorageClass

持久化存储,持久化存储 声明,动态存储pv

StatefulSet

用来发布有状态应用的

job,CronJob

一次性任务及定时任务fuwu
有时候我们只需要服务跑一次,对于临时的服务
如果我们每天要在凌晨一点做一个数据库备份,我们就可以在k8s上跑cronjob

Configmap,serect

服务配置及服务加密配置
ConfigMap在Kubernetes中的作用是用来存储非敏感性配置数据的键值对,以供Pod中运行的容器使用。
secrect与Configmap类似但这是秘密的,比如数据库账号密码这些隐私的配置我们通常用Secrect去配置,
他会在k8s上生成一些密文的

kube-proxy

提供service服务流量转发的功能支持,这个不需要我们实际

RBAC, serviceAccount, role, rolebindings, clusterrole, clusterrolebindings

基于角色的访问控制
默认的安全机制
RBAC类似Linux中sudo权限

Events

K8s事件流,可以用来监控相关事件用,这个不需要我们实际操作