特点

  • 便携性

    无论公有云、私有云、混合云还是多云架构都全面支持
  • 可扩展

    模块化、可插拔、可挂载、可组合,支持各种形式的扩展
  • 自修复

    自保持应用状态、自重启、自复制、自缩放,声明式语法

组件

  • etcd 保存整个集群状态,充当数据库角色,只与API Server通讯
  • api server 提供资源操作的唯一入口,提供认证、授权、访问控制、API注册和发现等机制
  • controller manager 负责维护集群状态,比如故障检测、自动扩容、滚动更新等
  • scheduler 负责资源的调度,按照预定的策略将Pod调度到相应的机器上
  • kubelet 负责维护容器生命周期,同时负责Volume和网络管理
  • Container runtime 负责镜像管理以及Pod和容器运行
  • kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡

scheduler和controller-manager都是通过apiservier从etc中获取各种资源状态进行相应的调度和控制操作

第三方组件

  • kube-dns 负责为整个集群提供DNS服务
  • Ingress Controller 为服务提供外网人口
  • Heapster 提供资源监控
  • Dashboard 提供GUI

组件之间的关系

所有组件均通过API Server进行通信,在生产环境中master部署为多节点

etcd主要存储机器里的信息比如集群状态,集群的各Node信息等,只有API能与其通信,应部署成多节点3-5个节点

Scheduler负责整个集群的调度,通过API Server来检测Node上Pod的状态,然后根据定义的策略来调度pod并绑定Node

Controller manager 负责Pod的控制,常见的比如定义一个Pod的relicaSet,因某些原因当前pod挂掉了,这时Controller manager自动在Node重启该Pod  

kubelet是Node上的组件,检测Node上的Pod,并将状态更新到API Server

kube-proxy负责代理转发,主要控制service,将service状态更新到API Server

kubectl 集群管理组件,主要调用API Server,进行整个集群管理

K8S基本概念和组件的更多相关文章

  1. ASP.NET Core on K8S学习初探(2)K8S基本概念快速一览

    在上一篇<单节点环境搭建>中,通过Docker for Windows在Windows开发机中搭建了一个单节点的K8S环境,接下来就是动人心弦的部署ASP.NET Core API到K8S ...

  2. k8s学习 - 概念 - master/node

    k8s学习 - 概念 - master/node 在k8s中,有各种各样的概念和术语.这些概念是必须要学习和掌握的.我们先罗列下所有概念,然后再一个个看具体实例. 大概说一下这些概念: Master: ...

  3. k8s记录-k8s基本概念和术语

    每次个节点上当然都要运行Docker.Docker来负责所有具体的映像下载和容器运行. Kubernetes主要由以下几个核心组件组成: etcd保存了整个集群的状态: apiserver提供了资源操 ...

  4. 一文讲明白K8S各核心架构组件

    目录 一.写在前面 二.K8S为我们提供了怎样的能力 三.架构 3.1.MasterNode 3.2.WorkerNode 四.核心组件 4.1.ApiServer 4.1.1.概述 4.1.2.是集 ...

  5. k8s学习 - 概念 - Pod

    k8s学习 - 概念 - Pod 这篇继续看概念,主要是 Pod 这个概念,这个概念非常重要,是 k8s 集群的最小单位. 怎么才算是理解好 pod 了呢,基本上把 pod 的所有 describe ...

  6. k8s学习 - 概念 - ReplicationController

    k8s学习 - 概念 - ReplicationController 我们有了 pod,那么就需要对 pod 进行控制,就是同一个服务的 podv我需要启动几个?如果需要扩容了,怎么办?这里就有个控制 ...

  7. k8s学习 - 概念 - ReplicaSet

    k8s学习 - 概念 - ReplicaSet 首先,ReplicaSet 和 ReplicationController 基本上一样,除了上篇说到的selector有不同之外,没有啥区别.(官网也是 ...

  8. k8s学习 - 概念 - Deployment

    k8s学习 - 概念 - Deployment 有了 ReplicaSet 还需要有 Deployment 的原因是希望有一个控制器能管理部署更新时候的版本控制问题.一个 Deployment 可以管 ...

  9. K8s 一、(1、容器基本概念 2、k8s基本概念 )

    1.容器基本概念 容器其实就是一种特殊的进程,容器是一个 '单进程'模型. Namespace :隔离 Namespace 技术实际上修改了应用进程看待整个计算机"视图",即它的& ...

  10. k8s重要概念及部署k8s集群(一)--技术流ken

    重要概念 1. cluster cluster是 计算.存储和网络资源的集合,k8s利用这些资源运行各种基于容器的应用. 2.master master是cluster的大脑,他的主要职责是调度,即决 ...

随机推荐

  1. kubernetes系列(六) - 资源清单

    目录 1. kubernetes中的资源 1.1 定义 1.2 资源类型 1.2.1 工作负载型资源对象(workload) 1.2.2 服务发现及均衡资源对象 1.2.3 配置与存储资源对象 1.2 ...

  2. 百万架构师的第二课:设计模式:Spring 源码版本命名规则及下载安装

    第二章--SpringWeb应用开发篇 二.Spring 源码版本命名规则及下载安装 2.1.Spring源码版本命名规则 (1) 首先看看某些常见软件的版本号: Linux Kernel: 0.0. ...

  3. MSM8953/SDM450 去PMI的USB3.0 TYPE-C Micro USB OTG功能适配

    提前说明一下有哪些"坑". 1.PM8953 GPIO_8的TZ权限 2.PM8953 GPIO_8寄存器的写入保护 3.去掉高通默认的ID检测 4.增加dwc3的ID检测 5.增 ...

  4. ABP 系列总结

    2019年第一次接触 ABP 框架,那时候还是比较笨重的旧版本的,后来升级到 vNext 版本,我也基于 ABP 模块化的设计方式开发了一些模块用于日常工作.这个系列主要为了系统地记录一下日常工作与学 ...

  5. SpringBoot(六) - 阿里巴巴的EasyExcel

    1.依赖 <!-- 阿里EasyExcel start --> <dependency> <groupId>com.alibaba</groupId> ...

  6. Netty5 服务端和客户端-copy

    概述netty 5 已经放弃掉了,作为学习netty4和5的差别不大,本例子是基于netty5 https://github.com/netty/netty/issues/4466 线程安全一个thr ...

  7. 第三章 消息摘要算法--MD5--SHA--MAC

    6.1.MD5 推荐使用CC(即Commons Codec)实现 虽然已被破解,但是仍旧广泛用于注册登录模块与验证下载的文件的完整性 可以自己写一个注册登录模块:自己下载一个MD5加密的文件,然后通过 ...

  8. LeetCode 未验证规则

    1. for循环容易忘记break,很多提交不过,都是因为这个 2. 左右指针,思考起来比较复杂,但是以代码容易理解.code精简为主,不要在乎省下一两次运算时间 3. 左右指针,有时候以left & ...

  9. Docker实践:创建并运行一个自定义的Docker Image

    1 目标: 创建一个自定义的Image,在该Image中,包含一个自己的Python程序,通过docker运行该Image 容器,并执行我们自己的Python程序,通过添加数据卷,在本机能够查看Pyt ...

  10. RockyLinux9编译安装MySQL8

    Linux版本: Rocky Linux release 9.5 (Blue Onyx) 1.下载 打开MySQL-Community-Server官方下载页面:https://downloads.m ...