Kubernetes 概述

目录

  • 一、什么是K8s?
  • 二、K8s 的作用
  • 三、K8s 由来
  • 四、为什么要使用 K8s?
  • 五、K8s主要功能
  • 六、K8s 集群架构和组件
  • 七、K8s核心组件
    • 7.1、Master 组件
      • Kube-apiserver
      • Kube-controller-manager
      • Kube-scheduler
    • 7.2 配置存储中心
      • etcd
    • 7.3 Node 组件
      • Kubelet
      • Kube-Proxy
      • docker 或 contained
    • k8s 核心概念
      • Pod
      • Pod 控制器
        • Deployment:无状态应用部署。Deployment 的作用是管理和控制 Pod 和 ReplicaSet,管控它们运行在用户期望的状态中。
        • Replicaset:确保预期的 Pod 副本数量。ReplicaSet 的作用就是管理和控制 Pod,管控他们好好干活。但是,ReplicaSet 受控于 Deployment。
        • Daemonset:确保所有节点运行同一类 Pod,保证每个节点上都有一个此类 Pod 运行,通常用于实现系统级后台任务。
        • Statefulset:有状态应用部署
        • Job:一次性任务。根据用户的设置,Job 管理的 Pod 把任务成功完成就自动退出了。
        • Cronjob:周期性计划性任务
    • Label
    • Service

一、什么是K8s?

K8S 的全称为 Kubernetes (K12345678S),PS:“嘛,写全称也太累了吧,不如整个缩写”。

二、K8s 的作用

用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。
可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。

三、K8s 由来

K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。

云原生基金会(CNCF)于2015年12月成立,隶属于Linux基金会。CNCF孵化的第一个项目就是Kubernetes,随着容器的广泛使用,Kubernetes已经成为容器编排工具的事实标准。

四、为什么要使用 K8s?

  • 试想下传统的后端部署办法:把程序包(包括可执行二进制文件、配置文件等)放到服务器上,接着运行启动脚本把程序跑起来,同时启动守护脚本定期检查程序运行状态、必要的话重新拉起程序。

  • 设想一下,如果服务的请求量上来,已部署的服务响应不过来怎么办?传统的做法往往是,如果请求量、内存、CPU超过阈值做了告警,运维人员马上再加几台服务器,部署好服务之后,接入负载均衡来分担已有服务的压力。
    这样问题就出现了:从监控告警到部署服务,中间需要人力介入!那么,有没有办法自动完成服务的部署、更新、卸载和扩容

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