kubernetes 基本概念和知识点脑图

基本概念

kubernetes 中的绝大部分概念都抽象成kubernets管理的资源对象,主要有以下类别:

  • Master : Master节点是kubernetes的控制节点,负责对整个集群的管理和控制,运行着kubernetes的核心管理、控制层组件。
  • kube-apiserver: 集群的入口,提供HTTP REST服务,同时又认证和授权访问功能
  • kube-controller-manager : 集群的控制层,负责集群资源的管理,自动化控制
  • kube-scheduler: 集群的调度器,负责pod的调度
  • Node: Node节点是kubernetes的工作节点,工作负载主要运行容器应用,由Master节点分配工作负载,Node节点主要包括以下组件:
    • kubelet: 管理node节点上的容器生命周期(创建、启动、监控、重启、销毁),同时协调Master节点工作,实现对集群的基本管理功能,是一个kube-apiserver的代理
    • kube-proxy: 实现kubernetes service的通信和负载均衡
    • docker: 负责运行容器化应用(Pod)

kubernetes 核心组件

  • etcd 保存了整个集群的状态,是一个数据库
  • apiserver 提供资源操作的唯一入口,并提供认证、授权、访问控制、api注册和发现机制
  • controller-manager 负责维护整个集群的状态,比如故障检测、自动扩展、滚动更新等
  • scheduler 负责资源的调度,按照预定的策略将资源调度到相应的机器上
  • kubelet 负责维护容器的生命周期,同时负责Volume(CSI)和网络(CNI)的管理
  • kube-proxy 负责为service 提供cluster的服务发现和负载均衡
  • Container runtime 负责镜像的管理以及pod和容器的真正运行(CRI)

标准配套组件:

  • kube-dns(core-dns)提供集群内部DNS服务
  • ingress controller 提供访问集群容器应用的网络接口

组件通信

Kubernetes 多组件之间的通信原理:

  • apiserver 负责 etcd 存储的所有操作,且只有 apiserver 才直接操作 etcd 集群
  • apiserver 对内(集群中的其他组件)和对外(用户)提供统一的 REST API,其他组件均通过 apiserver 进行通信
    • controller manager、scheduler、kube-proxy 和 kubelet 等均通过 apiserver watch API 监测资源变化情况,并对资源作相应的操作
    • 所有需要更新资源状态的操作均通过 apiserver 的 REST API 进行
  • apiserver 也会直接调用 kubelet API(如 logs, exec, attach 等),默认不校验 kubelet 证书,但可以通过 --kubelet-certificate-authority 开启(而 GKE 通过 SSH 隧道保护它们之间的通信)

比如最典型的创建 Pod 的流程:

  • 用户通过 REST API 创建一个 Pod
  • apiserver 将其写入 etcd
  • scheduluer 检测到未绑定 Node 的 Pod,开始调度并更新 Pod 的 Node 绑定
  • kubelet 检测到有新的 Pod 调度过来,通过 container runtime 运行该 Pod
  • kubelet 通过 container runtime 取到 Pod 状态,并更新到 apiserver 中

kubernetes资源对象

Pod k8s基本粒度单位

ReplicaController 管理k8s

ReplicaSet 下一代RC

Deployment 管理RS,最新版RC,支持事务,版本回滚,滚动升级

DaemonSet 守护程序部署,每个node节点都部署一个pod

StatefulSet 有状态应用,顺序启动,优雅关闭

Job 只执行一次任务类型

CronJob 定时任务类型

Namespace 逻辑隔离空间

Service 服务发现,负载均衡

HPA 自动弹性伸缩

ConfigMap 配置文件

Secret 加密配置文件,有三种类型

  • Opaque:base64 编码格式的 Secret,用来存储密码、密钥等;但数据也可以通过base64 –decode解码得到原始数据,所有加密性很弱。
  • kubernetes.io/dockerconfigjson: 用来存储docker registry的认证信息
  • kubernetes.io/service-account-token:用于被serviceaccount引用,serviceaccout 创建时Kubernetes会默认创建对应的secret。Pod如果使用了serviceaccount,对应的secret会自动挂载到Pod目录/run/secrets/kubernetes.io/serviceaccount中。

Ingress 负载均衡,外网访问接口

PersistentVolum pv持久化卷

PersistentVolumClaim pvc持久化卷声明,消耗pv资源

StorageClass 存储类,自动创建pv

RBAC 基于角色的访问控制

SA ServiceAccount用户

Role 角色

ClusterRole 集群角色

RoleBinding 角色权限绑定

ClusterRoleBinding 集群角色绑定

CustomResourceDefinition(CRD自定义资源对象)

kubectl api-resources 查看资源对象


kubectl api-version查看版本

kubernetes 基本概念和资源对象汇总的更多相关文章

  1. kubernetes之常用核心资源对象

    部门产品线本身是做DEVOPS平台,最近部署架构也在往K8S上靠了,不得不学一下K8S.自己搭建了K8S集群与harbor仓库来学习. 1.kubernetes之常用核心资源对象 1.1.K8s服务部 ...

  2. k8s基本概念,资源对象

    kubernetes里的master指的是集群控制节点 master负责是整个集群的管理和控制 kubernetes3大进程 API server 增删改查操作的关键入口 controller man ...

  3. kubernetes核心概念

    摘抄自:  https://www.cnblogs.com/zhenyuyaodidiao/p/6500720.html 1.基础架构 1.1 Master Master节点上面主要由四个模块组成:A ...

  4. Kubernetes核心概念总结

    目录贴:Kubernetes学习系列 1.基础架构 1.1 Master Master节点上面主要由四个模块组成:APIServer.scheduler.controller manager.etcd ...

  5. Kubernetes重要概念理解

    Kubernetes重要概念理解 kubernetes是目前最主流的容器编排工具,是下一代分布式架构的王者.2018年的kubernetes第一个版本1.10已经发布.下面整理一下,kubernete ...

  6. Kubernetes基本概念和术语之《Master和Node》

    Kubernetes中的大部分概念如Node.Pod.Replication Controller.Service等都可以看作一种“资源对象”,几乎所有的资源对象都可以通过Kubernetes提供的k ...

  7. Kubernetes 基本概念和术语

    Kubernetes 基本概念和术语 Kubernetes 中大部分概念如 Node.Pod.Replication Controller. Service 等都可以看做一种 "资源对象&q ...

  8. Kubernetes基本概念和术语之《Pod》

    Pod是Kubernetes的最重要也最基本的概念.我们看到每个Pod都有一个特殊的被称为“根容器”的Pause容器对应的镜像属于Kubernetes平台的一部分.除了Pause容器,每个Pod还包含 ...

  9. kubernetes基础概念

    kubernetes是基于容器技术的分布式架构领先方案.具有完备的集群管理能力,包括多层次的安全防护和准入机制.多租户应用支撑能力.透明的服务注册和服务发现机制.内建智能负载均衡器.强大的故障发现和自 ...

随机推荐

  1. Pytorch IO提速

    1. 把内存变成硬盘,把需要读的数据塞到里面去,加快了io. Optimizing PyTorch training code 如何给你PyTorch里的Dataloader打鸡血 轻轻松松为你的Li ...

  2. Consul ACL集群配置说明以及ACL Token的用法

    在上一篇文章里面,我们讲了如何搭建带有Acl控制的Consul集群.这一篇文章主要讲述一下上一篇文章那一大串配置文件的含义. 1.配置说明#1.1 勘误上一篇文章关于机器规划方面,consul cli ...

  3. SQL查询优化思维即SQL子查询

    一. 什么叫子查询 定义及分类 子查询又称内部查询,而包含子查询的语句称之外部查询(又称主查询).所有的子查询可以分为两类,即相关子查询和非相关子查询. 非相关子查询是独立于外部查询的子查询,子查询总 ...

  4. VMware vSphere6.0 服务器虚拟化部署安装图解(最全,最详细)-搭建的所有步骤

    VMware vSphere6.0 服务器虚拟化部署安装图解 一 .VMware vSphere部署的前期规划要点 1.vSphere的优点 (略) 2如何利用现在的设备架构虚拟化环境 在虚拟化过程中 ...

  5. LeetCode 92. 反转链表 II(Reverse Linked List II)

    92. 反转链表 II 92. Reverse Linked List II 题目描述 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明: 1 ≤ m ≤ n ≤ 链表长度. LeetC ...

  6. eclipse下载SpringBoot插件及创建SpringBoot项目

    一.eclipse在线下载SpringBoot插件 1.help->eclipse marketplace->popular-选择spring tool suite(STS)进行下载 ​ ...

  7. SpringAOP异常:org.springframework.aop.aspectj.AspectJExpressionPointcut cannot be cast to com.....

    Exception in thread "main" java.lang.ClassCastException: org.springframework.aop.aspectj.A ...

  8. stm32F103片上串口USART1通信实验

    硬件说明:如原理图所示, 103的PA10 PA11分别接CP2102usb转串口芯片的TXD RXD引脚.CP2102芯片是将串口和电脑USB接口进行了转接,方便应用灵活. 片上串口驱动代码如下. ...

  9. Tensorflow基本概念笔记

    一.TensorFlow使用简单,部署快捷 TensorFlow使用数据流图(计算图)来规划计算流程,可以将计算映射到不同的硬件和操作平台.凭借着统一的架构,TensorFlow可以方便的部署剑各种平 ...

  10. kafka服务端实验记录

    kafka单机实验: 环境准备: 1.下载kafka,zookeeper,并解压 wget http://mirror.bit.edu.cn/apache/kafka/2.3.0/kafka_2.11 ...