K8s | 基本概念(2)

K8s | 基本概念(2)

资源联系图

image-20230707111328953

DNS

类比为基地的通信目录,DNS 组件会将服务名称解析为相应的 Pod IP 地 址,以便其他应用程序可以通过域名来访问服务。

每个服务都有一个唯一的名称,称为服务名称。DNS 组件会为每个服务分配一个 域名,该域名的格式通常为 <service-name>.<namespace>.svc.cluster.local

大白话:DNS为每个服务分配了一个唯一的域名

Namespace

将整个公司看作是 Kubernetes 集群,而每个部门和团队则是 Kubernetes 的 Namespace。每个部门和团队在自己的 Namespace 中工作,拥有独立的资源对象。Namespace 的作用是将资源对象进行逻辑隔离和分组,使得不同的部门和团队在同一个集群中可以同时运行而互不干扰

大白话:将不同的资源进行分组隔离

ConfigMap 和 Secret

有了Pod之后,同一个Pod内的容器可以共享很多信息,也可能需要读取同一份配置。比如Pod内有两个容器需要访问同一个数据库,那么我们可以把相关的配置信息写到ConfigMap

如果还有一些比较敏感的信息的话,就需要放到Secret对象中,它其实是一个保存在 Etcd 里的键值对数据

大白话:ConfigMapSecret 实现 Pod 内共享配置

image-20230706163250742

Job 和 CronJob

我们可能希望一个应用每天固定时间运行或者只允许运行一次,可能希望某个应用以守护进程的方式运行。假设我的系统内有一个全网信息排行榜展示,要求每天需要在凌晨0点的时候更新一次。这个需求在K8s里就可以用CronJob来搞定。而如果仅仅需要执行一次的任务,那就直接使用Job对象就可以了。

大白话:JobCronJob 可以实现任务的相关配置

image-20230706163603240

DaemonSet

需要以守护进程的方式运行一个应用。比如,我想要在后台进行日志的收集。这个时候DaemonSet就派上了用场,它会保证在所有的目标节点上运行一个Pod的副本。因此,监控、日志等任务很适合用DaemonSet的方式执行。

大白话:DaemonSet 就是在后台默默运行的资源

image-20230706163819313

Deployment 和 ReplicaSet

指挥官(Deployment)给出指示,例如要有10个士兵(副本数),并确保他们都穿着一样的军装(容器镜像)。然后,指挥官派出一个中士(ReplicaSet)来监督这些士兵,确保他们的数量保持一致。如果有士兵受伤或离开,中士会立即补充新的士兵,以保持总数不变。

ReplicaSet 是一个控制器,它用于确保指定数量的 Pod 副本在集群中运行。它的工作是根据定义的副本数和选择条件,监控现有的 Pod,并在需要时创建或删除 Pod,以保持副本数的一致性。

Deployment 用于管理应用程序的生命周期,它允许你指定所需的副本数、容器镜像、资源配置和更新策略等。Deployment 还支持滚动更新和回滚操作

大白话:ReplicaSet 用来控制pod的副本数量,Deployment用来管理pod

StatefulSet 有状态副本集

StatefulSet 类似于 Deployment,但它特别适用于有状态应用程序,例如一个数据库集群,在这种情况下,每个Pod具有自己的角色和标识,并且需要保持其特定的状态,如数据持久性。StatefulSet 确保每个(Pod)都有一个唯一的标识和状态,类似于每个团队成员都有一个独立的工作空间。如果有人离开或新成员加入,StatefulSet 会相应地创建新的应用程序实例或删除空余的应用程序实例,以保持应用程序实例的数量和状态的一致性。

大白话:管理有状态应用程序(pod)

Service 和 Ingress

对内提供服务:将服务提供给同一个集群内的其他服务使用,为什么不使用 pod 的ip呢?因为Pod是会被管理调度的,可能被调度到不同的机器上,同时生命周期也可能会发生变化。

Service是一个完全虚拟的网络层,并不会存在于任何网络设备上。它通过修改集群内部的路由规则,仅对集群内部有效。Deploment创建好应用之后,再为它生成一个Service对象。接下来就可以通过Service的域名访问到服务

对外提供服务Ingress 是集群的入口,集群外部的请求需要通过负载均衡转发到 service 在 Node 上暴露的 NodePort 上,然后再由 kube-proxy 通过边缘路由器 (edge router) 将其转发给相关的 Pod 或者丢弃,而 Ingress 就是为进入集群的请求提供路由规则的集合,也就是类似于Nginx的解析记录

Ingress 可以给 service 提供集群外部访问的 URL、负载均衡、SSL 终止、HTTP 路由等

大白话:Service对内提供网络服务,Ingress对外提供网络服务

image-20230706164907254

参考链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值