什么是K8S

什么是K8S

概述

Kubernetes(简称K8S)是一个开源的容器编排平台,可自动完成容器的部署,管理和扩容等操作。

功能与优势

使用k8s的主要优势在于,提供了一个便捷有效的平台,可以在物理机和虚拟机(VM)集群上调度和运行容器。
更广泛一点说,它可以在生产环境中完全实施并依赖基于容器的基础架构。由于k8s的实质在于实现运维任务自动化,所以可以将其它应用平台或管理系统分配的许多相同任务交给容器来执行。

K8S 的核心功能:

  • 服务发现与负载均衡;
  • 容器的自动化调度;
  • 容器的自动化恢复;
  • 自动发布与应用回滚,应用相关的配置管理;
  • 支持集群的水平伸缩;

架构

整体架构

Kubernets整体架构,如下所示:

kubernetes-architechture
整个系统由控制面(Master)和数据面(Work nodes)组成。

Master核心组件
  • Apiserver: 集群的控制入口,负责公开 k8s API,处理接受请求的工作, 是各个组件通信的中心枢纽

  • Scheduler: 集群的调度器,负责在K8S集群中为Pod资源对象找到合适节点并使其在该节点上运行。调度决策考虑的因素包括单个 Pod 及 Pods 集合的资源需求、软硬件及策略约束、 亲和性及反亲和性规范、数据位置、工作负载间的干扰及最后时限

  • Controller-manager: 负责运行控制器进程。每个控制器都是一个单独的进程, 但是为了降低复杂性,它们都被编译到同一个可执行文件,并在同一个进程中运行。包括:

    • 节点控制器(Node Controller): 负责在节点出现故障时进行通知和响应;
    • 任务控制器(Job Controller): 监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成;
    • 端点分片控制器(EndpointSlice controller): 填充端点分片(EndpointSlice)对象(以提供 Service 和 Pod 之间的链接);
    • 服务账号控制器(ServiceAccount controller): 为新的命名空间创建默认的服务账号(ServiceAccount)
  • etcd: 一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库

  • cloud-controller-manager

Worker Nodes

k8S-node

  • Kubelet: 负责Pod对应容器的创建,启动和停止等操作,与master节点合作,是部署在Node上的一个agent

  • kube-proxy: 是集群中每个节点(node)上所运行的网络代理, 实现 K8S 服务(Service) 概念的一部分

  • Storage plugin: 配置容器存储

  • Network plugin: 配置容器网络

  • Container Runtime: 启动配置这个容器和这个容器的运行环境Pod

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值