kubernetes 基本概念和资源对象汇总
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 基本概念和资源对象汇总的更多相关文章
- kubernetes之常用核心资源对象
部门产品线本身是做DEVOPS平台,最近部署架构也在往K8S上靠了,不得不学一下K8S.自己搭建了K8S集群与harbor仓库来学习. 1.kubernetes之常用核心资源对象 1.1.K8s服务部 ...
- k8s基本概念,资源对象
kubernetes里的master指的是集群控制节点 master负责是整个集群的管理和控制 kubernetes3大进程 API server 增删改查操作的关键入口 controller man ...
- kubernetes核心概念
摘抄自: https://www.cnblogs.com/zhenyuyaodidiao/p/6500720.html 1.基础架构 1.1 Master Master节点上面主要由四个模块组成:A ...
- Kubernetes核心概念总结
目录贴:Kubernetes学习系列 1.基础架构 1.1 Master Master节点上面主要由四个模块组成:APIServer.scheduler.controller manager.etcd ...
- Kubernetes重要概念理解
Kubernetes重要概念理解 kubernetes是目前最主流的容器编排工具,是下一代分布式架构的王者.2018年的kubernetes第一个版本1.10已经发布.下面整理一下,kubernete ...
- Kubernetes基本概念和术语之《Master和Node》
Kubernetes中的大部分概念如Node.Pod.Replication Controller.Service等都可以看作一种“资源对象”,几乎所有的资源对象都可以通过Kubernetes提供的k ...
- Kubernetes 基本概念和术语
Kubernetes 基本概念和术语 Kubernetes 中大部分概念如 Node.Pod.Replication Controller. Service 等都可以看做一种 "资源对象&q ...
- Kubernetes基本概念和术语之《Pod》
Pod是Kubernetes的最重要也最基本的概念.我们看到每个Pod都有一个特殊的被称为“根容器”的Pause容器对应的镜像属于Kubernetes平台的一部分.除了Pause容器,每个Pod还包含 ...
- kubernetes基础概念
kubernetes是基于容器技术的分布式架构领先方案.具有完备的集群管理能力,包括多层次的安全防护和准入机制.多租户应用支撑能力.透明的服务注册和服务发现机制.内建智能负载均衡器.强大的故障发现和自 ...
随机推荐
- css几个优先级测试和!important
css样式不加!important情况下的有默认优先级 ,用!important提高优先级,最常见的css样式选择器的优先级测试.之前博文里也用到了提升优先级的方法: 测试结果:加了!importan ...
- flex布局大全 2019
有句话叫做:存在即是合理. 最近很喜欢flex布局模式,不过还在摸索中,这里正一边在项目中使用和总结,也在学习一些大牛们总结的东西和布局思考. 鉴于自己很苦恼,到处去ha资料,真的,就没有一个系统的, ...
- PHPExcel 中文使用手册详解 二
$objPHPExcel = new \PHPExcel(); //定义配置 $topNumber = 2;//表头有几行占用 $xlsTitle = iconv('utf-8', 'gb2312', ...
- RDB和AOF持久化
RDB和AOF持久化 https://www.cnblogs.com/Tu9oh0st/p/11229317.html Redis提供了不同的持久化选项: RDB持久化以指定的时间间隔保存那个时间点的 ...
- LeetCode 290. 单词规律(Word Pattern) 41
290. 单词规律 290. Word Pattern 题目描述 给定一种规律 pattern 和一个字符串 str,判断 str 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如,pattern ...
- Python 爬取陈都灵百度图片
Python 爬取陈都灵百度图片 标签(空格分隔): 随笔 今天意外发现了自己以前写的一篇爬虫脚本,爬取的是我的女神陈都灵,尝试运行了一下发现居然还能用.故把脚本贴出来分享一下. import req ...
- DNS欺诈的三种简单方法总结
使用arpspoof.ettercap以及driftnet的简单组合. ①arpsppof+driftnet arpspoof -i eth0 -t 目标ip 目标网关 driftnet -i eth ...
- docker(四):集群swarm
docker使用入门(四):集群swarm swarm是一组位于同一集群且运行docker的机器,用户可以通过swarm manager向swarm输入命令,swarm中的机器可以是虚拟机也可以是物理 ...
- Android手机的分区以及一些刷机术语的了解
最早以前的手机基本都是下载一个刷机软件(像刷机精灵.刷机大师),一键root,一键刷机,这就以前的傻瓜式刷机,至少我在高中(2015年开始接触)的时候也是这么干的.那时候,好像有种手机开机界面会出现“ ...
- docekr安装mysql,redis,git和maven 脚本
编写脚本 images_install.sh #!/bin/bash # author:qiao # 安装脚本 # reids:3.2(自启) mysql:5.7(自启)或者JDK:1.8 tomca ...