k8s基础认知

2023-05-16

一.什么是k8s:

k8s是一个使用go编写的谷歌内部容器管理系统的开源版,他由CNCF基金会进行管理。版本叠代周期为三个月

二.k8s的基本概念

(1)cluster:是计算、存储、网络的资源集合、k8s利用这些资源运行各种容器应用

(2)pod:是k8s的最小调度单位,一个pod对应一个或多个container使其作为一个逻辑单元更加便于管理,通常情况会将紧密相连的一组应用放到一个pod,所以一个pod里面的container关系一个网络栈和一块存储空间。同时pod也是k8s的直接管理对象,pod可以对封装在其内部的容器进行操作(例如docker和rkt)。同时同一个pod的container共享一个网络栈和存储使其可以直接互相访问并互相使用存储卷。可以将其理解为pod是虚拟机,内部容器是一个个服务。

(3)controller:是用来创建或管理pod的,它定义了pod的部署特性和在什么node上运行。

deployment:是最常用的controller用于管理多个pod副本并确保pod按正常状态运行并集成了上线部署、滚动升级、弹性伸缩等功能。

replicaset:实现了多个pod的副本管理,使用deployment时会自动创建replicaset可以说deployment是通过replicaset来管理多个pod的,所以我们通常不单独使用它而是和deployment一起使用。

daemonset:是用于每个node最多只运行一个pod的场景,daemonset通常用于运行daemon

statefuleset:用于保证pod的每个副本再整个生命周期中名称是不变的,当某个pod发生故障需要删除或重新启动是pod的名称会发生变化,同时statefulset会保证副本按照固定顺序启动、更新或删除

job:用于运行结束就删除的应用

(4)service:是一个负载均衡器,他是为一组功能相同的pod提供统一入口。同时service有自己的ip(cluster-ip)和端口(port)内部可以通过endpoint(clusterip+port)去访问引用但是这个cluster-ip是个Virtual IP它无法ping通,是通过调用ipvs进行网络转发的。

service的转发后端四种方式

1.cluster IP

2.nodeport(通过暴露宿主机的端口进行转发)

3.ingress(七层负载均衡)

4.loadblance(去控制公有云的负载均衡器自动添加port规则进而利用负载均衡器进行转发

service的三种端口类型

1.port (本身端口)

2.targetport (pod的端口)

3.nodeport(在宿主机上暴露的端口)

(5)namespace:是用于将用户创建的controller和pod等资源进行分开的,他可以将一个物理cluster划分成多个虚拟的cluster整理资源的同时还可以进行管理(类似与open stack的project)还可以对不同的namespace设置quota

k8s默认的namespace:

1.default(默认创建的资源将放在这个namespace里面)

2.kube-system(k8s自己创建的系统资源将放在这里面)

3.kube-punlic(k8s自己创建的命名空间用于保证整个集群公开看到的某些资源创建pod时指定namespace)

(6)label:以key|value为键值对的形式附加到各种对象上,如pod、node等。service通过selector label建立service和pod的关联,简单来说资源和资源之间都是通过label关联的,通过给一个资源绑定一个或多个label来实现多维度的资源管理,selector label类似于sql语句的where。

三.k8s的架构

典型的master-slave架构

1.master:作为集群大脑 node用于承载部署的容器应用

master节点有kube-apiserver(管理整个节点的api接口,所有对集群的操作和查询都需要经过它。整个集群内模块通信的枢纽用于集群内其他模块的相互通信。集群安全控制,提供集群安全验证和角色权限分配。连接etcd。)、kube-controller-manage(复制集群的故障检测和修复,根据deployment的定义维持正确pod副本数。根据service与pod的管理关系完成服务的endpoints对象创建和更新。为新的namespace创建账户和api访问token)、etcd(k8s的后端数据存储系统,cluster中的所有资源对象数据都存储在这用于配置共享和服务发现)、kube-scheduler(创建pod是选择合适的node进行调度)它主要是用于资源管理、调度、认证、弹性伸缩、安全认证。

2.node:运行容器应用,由master管理接受master节点的各类请求,进行容器的创建和管理,并将运行在上面的容器应用上报到master节点

node节点有kubelet(负责node节点容器创建、删除监控等生命周期管理,上报node信息如cpu、内存、pod的ip等信息到master节点的api-server kube-proxy用于实现端口映射和负载均衡。kube-proxy主要有两种模式iptables和ipvs)

四.k8s的全生命周期管理

在k8s进行管理应用的时候,基本步骤是:创建集群,部署应用,发布应用,扩展应用,更新应用。

那么问题来了为什么我们要创建集群呢?为什么这么多服务都需要用到集群呢?

熟话说人多力量大,切菜一个人一分钟只能切一颗,但是要是我们有三个人呢?

    使用集群为了掩盖底层的无能,在各种环境中,底层的硬件各不相同,有的是各种低廉的服务器,有的各种云环境,有的是各种vm,有的各种host machine,要想屏蔽底层的细节,增强可靠性和稳定性,并且集群可以从而需要创建集群。

    创建集群的好处就是,统一对外提供接口,无须进行各种复杂的调用;提供更好的可靠性,服务器宕机那么频繁,物理磁盘那么容易损坏,无须担心,集群统一进行调配;提供更好的性能,组合集群中各个机器的计算存储网络资源,提供更好的TPS和PS;提供横向扩容的能力,在进行横向扩容的时候,性能基本上能呈线性增长。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

k8s基础认知 的相关文章

  • 【ARM裸板】LCD硬件原理、时序及初始化

    文章目录 1 LCD与OLED的区别2 LCD原理2 1 颜色如何确定 xff1f 2 2 LCD如何 行扫描 xff1f 2 3 如何跳到下一行进行 行扫描 xff1f 2 4 如何进行下一个 场扫描 xff1f 3 LCD时序4 LCD
  • 【电赛】2019电赛纸张计数显示装置Github仓库说明

    Github项目地址 设计下载 内含 xff1a 电赛论文 程序设计 机械结构设计 硬件电路设计 综合测评相关设计 交互显示设计 设计详细说明 纸张计数显示装置Github仓库说明 x1f604 个人主页 x1f57a 电赛论文 x1f4d
  • 【Linux】mjpg-streamer 源码分析

    文章目录 1 总体流程2 主进程的源码分析2 1 参数接收与解析2 2 获取参数2 3 调用输入函数2 3 1 程序手动中断信号2 3 2 strchr 函数2 3 3 strndup 函数2 3 4 分离参数 3 输入通道源码分析3 1
  • STM32之TIM 舵机控制PWM

    目录 大概步骤 定时器介绍 输入通道 输入滤波器和边沿检测器 捕获通道 定时器初始化结构体详解 1 TIM TimeBaseInitTypeDef 定时器基本初始化结构体 TIM OCInitTypeDef 定时器比较输出初始化结构体 3
  • 【树莓派】树莓派采用MJPG-Streamer双摄推流至上位机,实测延时低至200ms[CSI摄像头+USB摄像头]

    树莓派采用MJPG Streamer双摄推流至上位机 实测延时低至200ms CSI摄像头 43 USB摄像头 总体流程1 硬件连接与软件及驱动配置1 xff09 检测是否存在USB摄像头设备2 xff09 安装 MJPG Streamer
  • 【DIY】基于OpenMV的STM32追球小车

    目录 xff1a 总体设计1 基础硬件DIY设计1 xff09 整体原理图2 xff09 PCB电路 2 OpenMV简单识别程序设计 与 STM32控制程序设计1 xff09 OpenMV简单识别程序设计 microPython 2 xf
  • 【电赛】2017年电赛A题——三相逆变电源EG8030测试

    目录 xff1a 一 相关简介二 专用逆变芯片E8030控制板三 驱动板四 实物测试 xff1a Github项目地址 设计下载 注 xff1a 本文仅用于学习交流分享 xff0c 若有不妥之处 xff0c 请指正 xff0c 感谢 关键词
  • 【STM32】STM32 OLED打点划线画圆 OLED电子罗盘 程序

    目录 xff1a 一 画点函数二 动态划线效果演示 xff1a 三 画圆函数效果演示 四 实心圆函数 注 xff1a 本文仅用于学习分享 用到的工具 xff1a STM32 MCU Keil 5 用到的库函数为 正点原子 STM32F4 库
  • 【STM32】OV2640摄像头学习笔记

    目录 xff1a 一 OV2640 Camera二 读取OV2640模块图像数据过程 xff1a 三 DCMI xff08 Digital camera interface xff09 接口四 SCCB协议1 起始信号2 停止信号 五 OV
  • 【笔记】MS5837-30BA压力传感器调试笔记

    文章目录 一 MS5837 30BA相关介绍1 技术参数2 典型应用电路3 PROM中的标定参数 二 MS5837 30BA数据解算1 解算流程图2 初始化读取标定参数并进行CRC校验 MS5837复位 MS5837 CRC4 bit 校验
  • 【通信协议】1-Wire 单总线

    文章目录 一 1 Wire相关介绍1 典型命令序列 xff1a 2 典型电路图 xff1a 二 1 Wire通信过程1 初始化2 写操作3 读操作 三 1 Wire程序 xff08 以DS18B20为例 xff09 DS18B20功能命令
  • linux 安裝mitmproxy

    1 安装mitmproxy sudo apt install python3 pip amp amp sudo pip3 install U pip amp amp sudo pip3 install mitmproxy 接下来需要安装证书
  • C++ 多态性的一些个人总结

    关于继承 xff1a public继承 xff0c 和其它两种继承方式 xff0c 子类对象可以访问基类的Public成员 xff0c 保护成员和私有成员只能在子类中访问 xff0c 而不能由子类对象进行访问 关于虚函数 xff08 每个虚
  • ubuntu用Dockerfile配置ros+cuda+torch镜像及rviz可视化

    dockerfile配置ros 43 cuda 43 torch镜像及rviz可视化 Dockerfile创建容器 Dockerfile 因工作环境 xff0c 需要有深度学习的那一套环境 xff0c 还要用到一些可视化的东西 xff0c
  • 简单理解TCP/IP协议栈

    协议定义的是一系列的通信标准 xff0c 通信双方需要共同按照这一标准进行正常的数据收发 xff1b 信的双方需要共同按照这一个标准进行正常的数据收发 xff1b xff08 两人 xff0c 说共同的语言 xff0c 不然不能交流 xff
  • ubuntu查看系统版本和linux内核版本

    lsb release a No LSB modules are available Distributor ID Ubuntu Description Ubuntu span class token number 18 04 span 5
  • 电路设计——教你如何阅读数据手册

    我们为什么要看数据手册 xff0c 数据手册又有什么作用呢 xff1f 我们能够从中得到哪些东西呢 xff1f 哪些是我们所需要的呢 xff1f 下面我们以AD847芯片为例来说一说我们在工作中以及设计中需要注意哪些方面 下面是芯片的数据手
  • ORB-SLAM3笔记(编译、踩坑、论文、看代码)

    目前基于orb slam想做的方向 提升动态建图精度 xff08 东西Map就是上不去 KITTI有几个groundtruth官网下架了找不到而且 红外相机退化环境下的点线融合 数据集https sites google com view
  • 【树莓派】Ubuntu-mate安装及ROS安装

    树莓派使用之Ubuntu mate 烧录镜像至SD卡下载镜像烧录SD卡 将SD插入树莓派实物GIF安装流程 树莓派开机sudo reboot换源下载SSH首先得下载net tools下载openssh 电脑远程操作下载 Xshell设置远程
  • 【SLAM】ORB_SLAM3 初步调试运行详细记录

    前言 相关解析及参考 xff1a 超详细解读ORB SLAM3单目初始化 xff08 下篇 xff09 ORB SLAM3和之前版本有什么不同 xff1f 小白学视觉的技术博客 51CTO博客 orbslam3 官方源码地址 xff1a h

随机推荐

  • 如何实现一个简单的Ubuntu远程虚拟桌面

    文章目录 前言一 什么是noVNC xff1f 二 如何部署1 安装VNC服务端1 1 安装tigervnc standalone server1 2 安装tigervnc standalone server1 3 安装xserver xo
  • 软件开发经验总结 读源代码的艺术

    读取源代码是每一个开发人员成长的必经之路 xff0c 一份优秀的源代码 xff0c 是作者多年开发技术的心血结晶 xff0c 研究一份优秀的源代码 xff0c 总是能够让你的技术得到一定程度的提升 然后 xff0c 读别人的源代码并不是拿着
  • vsCode用户设置vue.js、保存格式化代码

    34 window zoomLevel 34 0 34 workbench iconTheme 34 34 vscode icons 34 34 editor wordWrap 34 34 on 34 vscode默认启用了根据文件类型自动
  • PX4姿态控制算法分析

    PX4姿态控制流程图 图片来源 Px4的姿态控制分为角度环 外环 和角速度环 内环 xff0c 角度环使用P控制 xff0c 角速度环使用PID控制 xff0c 由于偏航通道响应较慢 多旋翼飞行器的俯仰和滚转运动由旋翼的升力力矩产生 xff
  • 滤波器的设计(一)

    滤波器的设计 引言 对实际的控制系统而言 xff0c 采集到的原始信号往往是有噪声的 xff0c 而噪声往往会对系统的稳定性能产生隐患 xff1b 或为了提取有用的控制信号 xff0c 滤除不必要的频域成分 xff0c 数字滤波技术必不可少
  • 算法

    算法 xff08 Algorithm xff09 xff1a 计算机解题的基本思想方法和步骤 算法的描述 xff1a 是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述 xff0c 包括需要什么数据 xff08 输入什么数据 输出什
  • 延迟环节对控制系统的影响

    本文内容来自知乎浅谈控制器的增益大小 xff08 下 xff09 区分惯性环节与延迟环节 惯性环节 1 T s 43
  • 控制系统中"带宽"的理解

    本文来自对知乎文章如何入门自动控制的一些理解 首先来看几个概念 xff1a 带宽频率也称为闭环截止频率 xff0c 是指当闭环幅频特性下降到频率为零时的分贝值以下3dB时 xff0c 对应的频率 xff0c 记作 w b w b w b 开
  • 多旋翼无人机建模-牛顿欧拉法

    多旋翼无人机建模 建模之前我们先分析一下多旋翼无人机有哪些状态量 xff1a 用于表示线运动的三轴位置 速度和加速度 xff1b 用于表示角运动的三轴姿态角和姿态角速度 xff1b 这一共是15个状态量 首先来看线运动方程的建立过程 xff
  • 基于最小二乘法的磁力计椭球拟合方法

    基于最小二乘法的磁力计椭球拟合方法 在写飞控代码时 xff0c 必然要对磁力计的测量数据进行校正 xff0c 本文将介绍一种简单实用的校正方法 基于最小二乘法的椭球拟合方法 本文椭球拟合部分来自博文IMU加速度 磁力计校正 xff0d xf
  • 多旋翼无人机飞控系统设计之详细设计方案

    在进行多旋翼无人机飞控系统设计之前 xff0c 有必要列写一份详细的设计方案书 xff1b 这是飞控系统设计的基石 xff0c 并且在一定程度上指导了后续的研发工作 本篇博文列写了之前笔者在进行无人机飞控开发过程中所撰写的精简版本的设计方案
  • 梅森公式确定系统的传递函数

    梅森增益公式 xff1a 对于一些比较复杂的系统 xff0c 采用结构图等效简化的方法求系统的传递函数是比较麻烦的 而使用梅森公式 xff0c 则可以不用做任何变换 xff0c 只要通过对信号流图进行相应的分析就能直接写出系统的传递函数 下
  • 多旋翼无人机控制之完整闭环控制设计

    本文主要讲解了多旋翼无人机整个闭环系统的设计流程 xff0c 对各个控制器的控制输入与输出 xff0c 控制器的设计要点进行了详细描述 控制逻辑 Q 要让多旋翼无人机按照预设的航线进行飞行 xff0c 需要设计哪些控制器呢 xff1f A
  • 频域分析之超前校正

    本文将主要介绍使用频域响应法进行控制器设计时一种常用且重要的方法 超前校正 超前校正能使系统的瞬态响应得到显著改善 xff0c 而对系统稳态精度的影响则很小 首先来看超前校正的一般形式 K c T
  • 飞控中的一些知识点总结

    本文主要总结了飞控研发过中一些比较重要的知识点 xff0c 部分为本人的实际经验 xff0c 部分为知乎转载 影响飞控性能的一些因素 xff1a 飞控姿态控制算法比较固定 xff0c 基本上都是角度环和角速度环组成的串级PID算法 xff0
  • STM32内存管理以及堆和栈的理解

    今天仔细读了一下内存管理的代码 xff0c 然后还有看了堆栈的相关知识 xff0c 把以前不太明白的一些东西想通了 xff0c 写下来 xff0c 方便以后查看 xff0c 也想大家看了能指出哪里不对 xff0c 然后修改 首先 xff0c
  • 卡尔曼滤波器原理简介

    引用知乎中的一段话 xff1a PID和卡尔曼滤波乃是控制工程师的两大法宝 几十年过去了卡尔曼滤波在理论研究上仍然保持着活跃 xff0c 研究方向包括各种非线性的 xff0c 噪声统计参数未知的自适应和鲁棒滤波 更重要的是现在计算机的发展将
  • 傅里叶变换

    此篇博文主要简述傅里叶变换的相关概念以及如何代码实现离散序列的傅里叶变换 傅里叶变换的一般形式 我们都知道 xff0c 傅里叶变换是频域分析的重要工具 xff1b 其将信号从时域转换到了频域 xff0c 以更直观的角度向我们展示了信号的本质
  • 开源AR库ArUco的原理与位姿估计实战

    近期在搭建SLAM AR的过程中 xff0c 需要用到Marker作为虚拟坐标系的参考 xff0c 使用了开源库ArUco实现了该功能 本文最早发布于keenster cn 参考文献 ArUco marker detection aruco
  • k8s基础认知

    一 什么是k8s xff1a k8s是一个使用go编写的谷歌内部容器管理系统的开源版 xff0c 他由CNCF基金会进行管理 版本叠代周期为三个月 二 k8s的基本概念 1 cluster xff1a 是计算 存储 网络的资源集合 k8s利