K8S笔记

作者: 千沙qiansha | 来源:发表于2023-05-19 13:19 被阅读0次

组件的用途

  • Api Server: 所有服务的访问入口
  • Controller Manager(RC,RS):维持期望的副本数。
  • Schedule:将pod调度到合适的node上。
  • Etcd:存储k8s的运行参数信息,重要的会持久化。
  • Kubelet: 跟容器引擎交互,实现容器的生命周期管理。把k8s的指令翻译成docker识别的指令,然后通过docker引擎来管理容器
  • Kube-proxy: 将规则写入到IPVS或IPTables(防火墙代理),实现服务映射访问。实现pod间的访问,负载均衡
  • CoreDNS:给集群中的svc创建A记录,实现域名访问。

POD

  • RS支持集合似的selector打标签,然后通过标签来搜索符合条件的pod,RC不支持。
  • deployment通过新增一个RS,来实现pod的滚动更新。旧RS删一个,新的RS加一个
    -HPA:可以设定条件,通过控制RS来实现扩缩容。例如,cpu的利用率达到80%时,创建一个pod,直到降下来,最多十个,最小两个
  • Stateful SET: 用来解决有状态服务的问题。
    1. 稳定的持久化存储,即使pod被调度,也能正常访问到。
    2. 稳定的网络标志。重新生成之后,hostname和podname不变
    3. 有序部署,有序缩容。
  • Daemon Set:保证每隔node上都有一个pod的副本。一般用来收集node上的日志
  • Service:可以把带有同样标签的pod抽象成一个service,然后在其他pod访问时,直接找service就能到对应的pod上。service与pod之间的通信,用各节点的iptales/lvs规则
  • flannel:保证每个pod的IP唯一,当pod访问其他节点的pod时,数据包到docker0之后,flannel抓取出来,然后去etcd查要访问的pod所在的节点的IP,然后发送到网卡上,iptables或lvs在数据包封装一层
    1. 把当前宿主机的IP和目标机器的IP加上。
    2. etcd会存储每个节点的信息,和每个pod的IP。
    3. 同一个节点的pod互相访问,不经过flannel,直接通过docker0网桥。

相关文章

网友评论

      本文标题:K8S笔记

      本文链接:https://www.haomeiwen.com/subject/byzwsdtx.html