k8s学习总结

64 阅读2分钟

k8s的组件有哪些

一、在node节点上面

每个节点有个kube-proxy,在每个node上面运行。负责pod和pod之间,pod和外面的网络通信。

每个节点还有kubelet,接收api-server的指令,负责pod的创建/销毁,上报pod的状态给面板。

每个节点还有容器运行时,负责跟容器接口,一般有docker ,contianerd,CRI_O等

二、控制组件

kube-apiserver, 负责认证授权,跟etcd打交道。

etcd,保存集群状态,pod配置,节点信息,服务规则等等。

kube-scheduler,负责pod调度,分配到合适的node上面

kube-controller-manager: 1)node控制器 2)副本控制器 3)部署控制器,负责回滚和部署 4)维护service和pod之间的关系 5)自动更新service和ip之间的对应关系

三、附加组件(Add-ons)

附加组件用于增强集群功能,常见的有:

  1. CoreDNS

    • 提供集群内部的 DNS 服务,解析 Service 和 Pod 的域名(如my-service.default.svc.cluster.local),实现 Pod 之间通过服务名通信。
  2. Ingress Controller

    • 实现 Ingress 资源的功能,管理外部访问集群内服务的 HTTP/HTTPS 路由(如 Nginx Ingress、Traefik)。
  3. Dashboard

    • Kubernetes 的 Web UI,用于可视化查看集群状态、管理资源(如创建 Pod、查看日志)。
  4. 监控组件

    • Prometheus + Grafana:采集和展示集群及应用的监控指标(CPU、内存、响应时间等)。
  5. 日志组件

    • EFK/ELK Stack(Elasticsearch + Fluentd + Kibana):集中收集、存储和查询容器日志。

k8s主要是pause ,pause里面可能有多个pod,共享存储,网络,资源。 k8s的pod是核心,可以是无状态的deployment,可以是有状态的StatefulSet k8s的service 对应很多个pod ,ingress对应service k8s的ingress,配置域名,以及后端服务的node ip, port,实现负载均衡,对外提供服务 k8s的config map,给容器提供环境变量配置 k8s的pvc 对应底层的磁盘,pv是一个商品,比如10GB的容量,一个pvc跟service绑定,service可能不用关心pv, k8s负责为pvc找到合适的pv。实际管理员可以指定。

k8s的每个node最好是一个独立的物理机,上面安装了容器组件,contarind。拉取的镜像会在每个物理机缓存,如果容器pull失败,则去看物理机是否能拉取成功。