Kubernetes从零到精通(03-资源对象)

今天我们开始研究Kubernetes中的资源对象,资源对象是Kubernetes这个软件定义的抽象逻辑概念,这些资源对象及其对应的属性(如资源对象之间的对应关系),都会保存到ectd数据库中并通过Kubernetes各控制组件实时更新,下面我们先看一下资源对象的分类和用途,然后再根据一个示例图熟悉一下:

1.基础资源对象,例如节点Node,容器组Pod,服务Service,存储卷Volume等;

2.事务与控制器资源对象,例如标签Label,注解Annotation,命名空间Namespace,水平扩容HorizontalPodAutoscaler,配置(ConfigMap、Secret),持久化存储(StorageClass、PersistentVolume、PersistentVolumeClaim),工作负载控制器等(Deployment、StatefulSet、DeamonSet、Job、CronJob)等;

3.管控与权限资源对象,例如资源限制LimitRange,资源配额ResourceQuota,角色Role,角色绑定RoleBinding等;

4.网络相关资源对象,例如Ingress,网络策略NetworkPolicy等;

上图示例展示的内容如下:

1.有一个3个工作节点(Node1,Node2,Node3)的Kubernetes集群(这里我们不关心master节点);

2.Pod是Kubernetes中的最基础概念,一个Pod中可以由一个或者多个业务相关性紧密的容器组成。类似于一个docker-compose启动了一个或多个容器,这些容器共享一些信息;

3.Deployment、StatefulSet通过ReplicaSet分别来管理无状态服务、有状态服务(如redis、kafka等)的Pod副本集;

4.DaemonSet用来实现每个Node上只创建一个Pod的需求,如日志采集Pod,监控Pod;Job/CronJob是一次性任务/定时任务,用来实现批处理任务Pod,执行完成后退出,不需要持续运行;

5.Horizontal Pod Autoscaler通过实时监控由Metrics Server等提供的聚合api,实现自定义的水平扩容方案(例如根据CPU<60%的指标,让Pod副本数在3-10之间自动增减);

6.Service为一组Pod提供一个虚拟的网络IP地址,供其他容器访问(如图所示,Node3中有两个Pod容器通过一个Service来访问其他业务的Pod容器);

7.由于环境变量这种Kubernetes服务发现机制的局限性,一般会部署DNS服务,各业务应用在互相调用的时候由IP+端口改为DNS域名;

8.互联网用户访问Kubernetes中的业务应用方式,可以通过Ingress(Ingress类似于Service的边缘代理,如常见的Nginx Ingress等);

9.互联网用户访问Kubernetes中的业务应用方式,可以通过Service的NodePort模式(相当于NAT端口映射到Node主机上,访问Node的IP+端口);

10.互联网用户访问Kubernetes中的业务应用方式,可以通过Service的LoadBalancer模式,这种模式一般由云服务厂商提供集成(例如AWS,用户定义Service的配置,会自动创建出AWS的NLB等);

11.未体现出的资源对象,如持久化存储多用于有状态服务的Pod,配置用来分离容器应用所需的配置信息(如参数,密钥,配置文件等),命名空间用来实现多租户(如不同的业务组下的资源逻辑隔离),等等。

整体看下来比较简单,接下来会逐个深入了解这些资源对象。

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炸裂狸花猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值