k8s集群部署

k8s的概念和作用

是一个开源的Docker容器编排系统

源于google的borg,2015年7月k8s v1.0正式发布,调度计算机群节点,动态管理节点上的作业, 使用【labels】和【pods】概念,将应用按逻辑单元分组, 

主要用途

自动化部署,扩展和管理容器应用                                        服务发现 

资源调度                                                                                扩展缩容 (指的是某个资源的自动缩减)

部署管理                                                                                 监控

k8s的好处

裸容器的不足

宿主机宕机造成主机的容器不可用,无法自行恢复

容器的健康状态的检擦不到位,容器在运行,却无法访问

应用程序的部署,回滚,扩缩苦难

数千个容器和端口,难以维护

使用k8s的好处

可以管理大量跨主机的容器

快速部署和扩展应用

无缝对接的应用功能

节省资源,优化硬件资源的使用

k8s的组件
 

Master组件
kube-apiserver
  • 功能:API 服务器是 Kubernetes 控制平面的前端,它提供了 HTTP REST API,用于处理集群的增删改查(CRUD)操作和监听资源变化。
  • 特点:支持水平扩展,通过部署多个实例并平衡流量来增强性能。
Etcd
  • 功能:etcd 是一个一致且高度可用的键值存储系统,用作 Kubernetes 所有集群数据的后备存储。
  • 特点:etcd 的数据需要定期备份以防止数据丢失。
Kube-scheduler

       功能:负责监视新创建的没有分配节点的 Pod,并基于调度算法(如资源需求、硬件/软件/策略约束等)为它们选择合适的节点运行

kube-contrcller-maneger
  • 功能:运行控制器进程,负责维护集群的状态,确保所有资源对象(如节点、Pod、服务等)处于期望的状态。
  • 包含的控制器示例:Node 控制器(负责节点故障响应)、Job 控制器(处理一次性任务)、Service 控制器(管理服务和端点)等。

[节点控制器,复制控制器,端点控制器,服务账户和命令控制器]

Node组件
Kubelet
  • 功能:负责维护容器的生命周期,如启动、停止、更新容器等。
  • 特点:与容器运行时(如 Docker 或 containerd)交互,确保容器按预期运行。
kube-proxy
  • 功能:负责提供集群内部的服务发现和负载均衡。通过 iptables 或 IPVS 规则将服务流量转发到后端的 Pod。
  • 特点:支持多种网络模式,确保服务的高可用性和负载均衡。
Docker Engin
  • 是Docker Engine的后台进程,负责管理所有Docker容器的创建、启动、停止和删除。
  • 还负责管理Docker镜像的下载、构建和保存。
  • 通过REST API与Docker客户端进行通信,以便管理Docker容器和镜像。

你可能感兴趣的:(kubernetes,容器,云原生)