k8s容器内的东西复制出来_K8s核心概念入门

前言

新的一年还是要学习一些新技术的,先从k8s开始吧。 作为一个想成为“微服务技术专家”,除了上层类spring cloud的解决方案,服务治理方案之外,k8s作为底层基础设施,所承担的自动扩缩容,devops等功能也是微服务架构中很重要的一环。

k8s

k8s作为容器化操作系统,包括了部署,调度,节点集群间扩展。docker作为k8s底层的调度组件。主要具备:

  • 自动化容器的部署和复制

  • 随时扩展或收缩容器部署

  • 打包容器组,并提供容器间的负载均衡

  • 提供容器弹性操作等

k8s集群

k8s的集群,一般以一组物理节点或虚拟机节点组成,在节点上部署k8s,架构图如下: 9599597a6cdf1046d5051b2c304d2de5.png

通过上图可以观察到一些名词:

  • Container

  • Pod

  • Label

  • Replication Controller

  • Service

  • Node

  • K8s Master

Pod

Pod安装在节点上,包含一组容器和卷,同一个Pod里面的容器共享网络命名空间,可以使用localhost进行通信。pod是随时创建销毁的。

  • 因为pod是短暂的,所以需要使用k8s的挂载卷存储持久化容器数据。

  • pod的创建可以通过手动创建,也可以使用replication controller根据pod模板创建出拷贝。

  • 引入service解决因为pod创建销毁带来的ip地址改变的问题。

Label

Label是一个键值对,可以用来标记pod,service或者replication controller可以通过selectors选择带有指定label的pod。

Replication Controller

通过RC可以确保任何时间都存在指定数量的pod副本。比如创建3个副本,k8s会监控他们,随时确保永远有3个副本在运行。

创建RC时,需要指定两个东西:

  • Pod模板:用来创建Pod副本。

  • Label:RC需要监控的Pod的副本集。

Service

多个Pod副本可以通过Service做负载均衡。

由于Pod的IP是短暂的,所以引入了Service,Service是个逻辑概念,Service通过selector筛选label和Pod进行绑定。

在Service对pod进行绑定时会做以下事情:

  • 为Service创建一个DNS入口,前端Pod会根据DNS查找service并解析出ip地址。

  • 前端pod在得到service的ip地址后,会根据service的负载均衡策略,请求到具体的pod上,底层通过node上的kube-proxy完成。

Node

Node叫做节点,一般是物理机或者虚拟机,是k8s的工作节点,node上有k8s相关的关键组件:

  • Kubelet:主节点代理

  • Kube-proxy:Serivce使用其路由到Pod

  • Docker:用于容器创建

K8s Master

Master是集群的主节点,拥有K8s api server,可以对外提供rest交互,master节点可以用来创建和复制pod的RC。

9d3c33ce4d6ae588c004c8e116eada04.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值