kubernetes(K8S)笔记

文章目录

    • 大佬博客
    • 简介
    • K8S+Docker VS Docker
      • Docker+K8S简介
      • K8S配合docker相比较单纯使用docker

大佬博客

在这里插入图片描述
Kubernetes(通常缩写为K8s)是一个用于自动化容器化应用程序部署、管理和扩展的开源容器编排平台。它的构造非常复杂,由多个核心组件和附加组件组成,共同协作以实现容器集群的高可用性和可伸缩性。以下是Kubernetes的主要组件和其构造:

  1. Master节点(控制平面)

    • kube-apiserver:API服务器是Kubernetes的控制平面组件之一,充当所有控制平面组件和用户命令的入口点。它公开了Kubernetes API,允许外部和内部组件与集群交互。
    • etcd:etcd是一个高度可用的键值存储,用于保存集群的所有配置数据,包括应用程序配置、节点信息、服务发现等。
    • kube-scheduler:调度器负责决定在哪个节点上运行新创建的Pod。它考虑了节点资源、亲和性、反亲和性、争用和其他策略来选择合适的节点。
    • kube-controller-manager:控制器管理器运行一组控制器,这些控制器负责监控集群的状态,并确保期望的状态与实际状态保持一致。常见的控制器包括ReplicaSet Controller、Node Controller、Service Controller等。
    • cloud-controller-manager(可选):云控制器管理器是与云提供商相关的控制器,用于处理云资源,如负载均衡器、持久卷、虚拟机等。
  2. Node节点(工作节点)

    • kubelet:kubelet是运行在每个Node节点上的代理服务,负责与Master节点通信,管理节点上的Pod生命周期,确保Pod按照预期的方式运行。
    • kube-proxy:kube-proxy是用于服务发现和负载均衡的网络代理,它维护网络规则,将请求路由到正确的Pod。
    • Container Runtime:Kubernetes支持多种容器运行时,包括Docker、Containerd、CRI-O等。容器运行时负责在节点上创建和运行容器。

在Kubernetes中,一个宿主机通常只会被视为一个Node节点。Node节点代表物理或虚拟机器,它是Kubernetes集群中的一个工作节点,用于运行容器化的应用程序。
一台宿主机对应一个Node节点,不同宿主机上的Node节点是独立的,并且它们之间不会共享资源、容器、网络等。

Node节点的数量由Kubernetes集群的规模和配置决定。
您可以根据需要增加或减少Node节点来扩展或缩小集群的计算资源。每个Node节点上可以运行一个或多个容器,具体取决于Node的资源配置和负载需求。

在一些特殊情况下,您可以配置多个Node节点在同一台物理宿主机上,这被称为多Node容器化,但这通常是不常见的,而且需要高度的配置和管理,因为它涉及到共享宿主机上的资源和网络。

总之,一个宿主机通常对应一个Node节点,Kubernetes集群中的Node节点数量取决于您的集群规模和需求。要增加或减少Node节点,您可以根据需要添加或移除宿主机,并在Kubernetes中进行相应的配置。

  1. Pod:Pod是Kubernetes的最小部署单元,通常包含一个或多个容器,它们在同一网络命名空间、存储卷和节点上运行。Pod代表应用程序的一个实例。

  2. Service:Service定义了一组Pod的网络访问方式,提供了负载均衡、服务发现和DNS解析等功能,使应用程序能够稳定地运行。

  3. Volume:Volume是用于在Pod中持久化存储数据的抽象。它可以与Pod一起创建和销毁,并且可以挂载到Pod的一个或多个容器中。

  4. Namespace:Namespace用于将集群划分为多个虚拟集群,每个Namespace中可以有自己的Pod、Service和其他资源,以实现多租户和隔离。

  5. ConfigMap和Secret:ConfigMap用于存储配置数据,而Secret用于存储敏感数据,它们可以在Pod中以卷的形式挂载。

  6. Ingress:Ingress定义了HTTP和HTTPS流量的规则,允许外部流量访问集群内的服务。

  7. 其他附加组件:Kubernetes生态系统中还有许多其他附加组件,如监控工具、日志记录工具、自动伸缩控制器、认证和授权插件等,用于增强和扩展Kubernetes的功能。

Kubernetes的这些组件共同协作,以实现容器化应用程序的高度可扩展性、可用性和自动化管理。不同版本的Kubernetes可能会有一些变化和新增组件,但这些基本组件构成了Kubernetes的核心架构。

简介

yml文件---->前台处理---->API Server---->Controller Manager------>Kubelet(Pod创建,修改,监控等全周期管理)
API Server是资源对象的唯一操作入口,所有执行,操作解析后都是调用API然后触发Controller Manager实现功能。

Pods:

  • 一个可以被创建、销毁、调度、管理的最小的部署单元,例如一个或一组容器
  • 每个Pod有一个独立的IP
  • 同一个Pod的容器共享网络,共享存储资源:localhost相互通信

Pods的使用

  • 具有密切连接关系(相互访问、共享数据) 的容器放在同一个Pod中

在这里插入图片描述

K8S+Docker VS Docker

Docker+K8S简介

Kubernetes(通常缩写为K8s)和Docker是两个不同但密切相关的容器技术。它们在容器化应用程序方面发挥不同的角色,通常一起使用以实现更好的容器化应用程序管理和部署。

  1. Docker(容器引擎):

    • Docker是一种容器化技术,它允许开发人员将应用程序和其依赖项打包到一个可移植的容器中。这个容器包含了应用程序的所有必要组件,包括代码、运行时环境、库和配置。
    • Docker容器具有以下优点:可移植性、隔离性、轻量级、快速启动和关闭、易于扩展等。
  2. Kubernetes(容器编排平台):

    • Kubernetes是一个开源的容器编排平台,用于自动化和管理容器化应用程序的部署、扩展、更新和运维。Kubernetes提供了一种容器编排的框架,以确保容器在集群中按照期望的方式运行。
    • Kubernetes的功能包括自动负载均衡、自动扩展、容器自愈、滚动升级、服务发现等。它还提供了用于定义应用程序架构的声明式配置(例如Pods、Services、Deployments等)。

联系:

  • Docker通常用于创建和管理单个容器,而Kubernetes用于协调和管理多个容器的集群。Kubernetes可以管理数百甚至数千个容器实例,确保它们在各种节点上正确运行,具备高可用性和容错性。
  • Kubernetes可以使用Docker作为容器运行时(Container Runtime),这意味着它可以直接与Docker引擎一起使用。但是,Kubernetes也支持其他容器运行时,如Containerd和CRI-O。
  • Kubernetes提供了对Docker容器的高级编排、自动化和管理功能,例如水平扩展、自动恢复、滚动升级等,使得容器化应用程序在生产环境中更容易管理和扩展。

总之,Docker是容器技术的核心,而Kubernetes是一个容器编排平台,用于自动化和管理大规模的Docker容器集群。它们一起使用,可以实现高度可伸缩、高可用性的容器化应用程序部署和管理。

K8S配合docker相比较单纯使用docker

K8S配合docker优势(单独使用docker劣势)

  • 调度:灵活资源分配(Pod的label+Scheduler)
  • 修复:容器跑出问题了,换个主机再跑跑(controller manager)
  • 自动扩缩容:超过人为设定的监控指标自动扩缩容(controller manager)

Kubernetes(K8s)与单纯使用Docker相比,具有一些重要的优势和适用场景。下面是一些比较:

  1. 自动化容器编排

    • Kubernetes允许您自动化地编排、管理和扩展容器化应用程序,而无需手动管理容器的生命周期。这包括自动部署、水平扩展、滚动升级、自动故障恢复等功能,减少了操作负担。
  2. 高可用性

    • Kubernetes提供了内置的高可用性机制,允许您在多个节点上运行应用程序的副本,以确保应用程序的可用性。如果某个节点或容器失败,Kubernetes可以自动迁移工作负载以保持应用程序的正常运行。
  3. 多租户支持

    • Kubernetes支持命名空间(Namespaces),可以将集群划分为多个虚拟集群,每个命名空间都有自己的资源隔离,适用于多租户环境。
  4. 服务发现和负载均衡

    • Kubernetes提供了内置的服务发现和负载均衡功能,允许应用程序组件相互发现并与其他服务通信,而无需硬编码IP地址和端口。
  5. 声明式配置

    • Kubernetes使用声明式配置来定义应用程序的状态和规模,而不是命令式的操作。这样,您只需描述所需的状态,而不必关心如何达到该状态,Kubernetes会负责实现。
  6. 自动伸缩

    • Kubernetes可以根据工作负载的需求自动扩展应用程序,以满足流量的变化。这可以节省资源并确保应用程序的性能。
  7. 滚动升级和回滚

    • Kubernetes支持滚动升级,允许您在不中断服务的情况下逐步更新应用程序。如果升级失败,您可以轻松地回滚到之前的版本。
  8. 资源管理

    • Kubernetes提供了资源管理功能,允许您限制容器的CPU和内存使用,以确保资源公平共享。
  9. 生态系统支持

    • Kubernetes具有丰富的生态系统,包括各种插件、工具和集成,用于监控、日志记录、安全性、认证等方面。

然而,对于一些简单的应用场景,使用Docker本身可能足够了,特别是在开发和测试阶段。Kubernetes在复杂的容器化应用程序中表现出色,但也需要更多的配置和管理工作。因此,选择Kubernetes还是纯粹使用Docker取决于您的应用程序需求和规模。如果应用程序较小且需要简单的容器管理,Docker可能足够;但如果需要高可用性、自动化和扩展性,那么Kubernetes可能更适合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/127779.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UNIAPP之js/nvue混淆探索

因项目需要对UNIAPP的js混淆做了一些调研 混淆教程: https://uniapp.dcloud.net.cn/tutorial/app-sec-confusion.html 按照教程配置进行打包正式包进行混淆 下载正式包将 .ipa改为.zip 解压获取到HBuilder.app 右键显示包内容 获取到混淆的key 不同时间进行打包混淆同一文…

Zabbix 利用 Grafana 进行图形展示

安装grafana和插件 配置zabbix数据源 导入模版 查看数据 1.安装grafana wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/Packages/grafana-10.0.0-1.x86_64.rpm [rootrocky8 apps]# yum install grafana-10.0.0-1.x86_64.rpm [rootrocky8 apps]# systemctl sta…

【公网远程手机Android服务器】安卓Termux搭建Web服务器

目录 概述 1.搭建apache 2.安装cpolar内网穿透 3.公网访问配置 4.固定公网地址 5.添加站点 概述 Termux是一个Android终端仿真应用程序,用于在 Android 手机上搭建一个完整的Linux 环境,能够实现Linux下的许多基本操作,不需要root权限…

springWeb

springweb就是spring框架中的一个模块,对web层进行了封装,使用起来更加方便。如何方便?参数接收框架进行封装 SpringWeb拥有控制器,接收外部请求,解析参数传给服务层。 SpringWeb运行流程 用户发起请求 ip:端口/项目名…

晶尔忠产业集团全面启动暨表彰大会

八月下旬,三伏已尽,初秋遂至。夏日的余热还没有完全散去,初秋的热浪随之席卷而来,大地依旧绿意盎然,万物正是生长最猛烈的时期,为秋天的收获做最后的冲刺,这是一个充满生机的时节,也…

设计模式之桥接模式、组合模式与享元模式

目录 桥接模式 简介 优缺点 结构 实现 运用场景 组合模式 简介 优缺点 结构 实现 运用场景 享元模式 简介 优缺点 结构 实现 运用场景 桥接模式 简介 将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降…

基于springboot的图片文字识别,支持中英文识别

概述 基于springboot的图片文字识别,支持中英文识别. 页面上传图片即可转换为中文或者英文. 详细 1.需求(要做什么) 识别图片文字, 实现页面上传图片即可转换为中文或者英文. 2.理论概述 OCR,即Optical Character Recognition&#xff…

数据结构与算法:概述

目录 算法 评价标准 时间的复杂度 概念 推导原则 举例 空间的复杂度 定义 情形 运用场景 数据结构 组成方式 算法 在数学领域,算法是解决某一类问题的公式和思想; 计算机科学领域,是指一系列程序指令,用于解决特定的…

数据结构插入排序

好久不见,这几天有点事情,都快一个礼拜没有学习,对键盘都要陌生起来了,今天也是刚刚学了一点排序,在这里也给大家更新一个插入排序,后面也会渐渐的把八大排序更新完的,还有就是二叉树&#xff0…

Vivado 2017.04版本安装教程

文章目录 前言一、vivado 简介二、vivado 下载三、vivado 安装四、vivado 申请证书五、关闭升级提醒六、资源自取 前言 本文记录了在 windows 11 下安装 vivado 2017 的详细步骤。 一、vivado 简介 Vivado 是 Xilinx 公司于 2012 推出的新一代集成设计环境,虽然目…

学习笔记|定时器|STC中断|定时器时间计算|STC32G单片机视频开发教程(冲哥)|第十一集:定时器的作用和意义

文章目录 1.定时器的作用和意义定时器中断定时器是定时器和计数器的统称。 2.STC32G单片机定时器使用原理2.1 先设置功能为定时器/计数器(本质都是加法计数器)2.2、在定时器模式下,设置不分频或者12分频∶Tips:选择不分频还是12分频2.3、定时器的工作模式…

算法竞赛个人注意事项

浅浅记录一下自己在算法竞赛中的注意事项。 数据类 注意看数大小,数学库中的函数尽量加上 * 1.0,转成double,防止整型溢出。,int型相乘如果可能溢出,乘 * 1LL。 数据范围大于1e6,注意用快读。 浮点数输…

HCIP自我重修总笔记

第一章.复习OSITCP/IP 模型 (2023 9/5) OSI 模型: 开放式系统互联参考模型 应用层:抽象语言-->编码表示层:编码--->二进制会话层:提供会话地址,建立应用程序端到端的会话 上三层为应用程序对数据加…

初识Python

初识Python Python背景知识1. 编程语言2. Python优缺点 搭建Python环境1.找到官网2. 下载3.安装4.检查 安装PyCharm1.找到官网下载2. 安装3. 检查 Python官网文档学习 Python背景知识 1. 编程语言 编程语言通常可以分为以下三类: 高级语言(High-Level…

PostgreSQL 查询修改max_connections(最大连接数)及其它配置

文章目录 查询max_connections(最大连接数)修改max_connections(最大连接数)其他配置 查询max_connections(最大连接数) SHOW max_connections;修改max_connections(最大连接数) 要设置PostgreSQL数据库的最大连接数,你需要修改数据库的配置文件 postgresql.conf。…

el-table中加图标文字提示

<el-table :data"tableData" style"width: 100%" max-height"250"><el-table-column fixed prop"aaa" label"日期" width"150" /><el-table-column prop"bbb" label"日期" wi…

【技能树笔记】网络篇——练习题解析(二)

目录 前言 一. 数据链路层的作用 1.1 数据链路层作用 1.2 数据链路层封装 1.3 数据链路层功能 1.4 数据帧格式 二. MAC地址及分类 2.1 MAC地址 2.2 MAC地址分类 三. 交换机的作用 3.1 交换机的作用 3.2 交换机作用 四.交换机的工作原理 4.1 交换机的工作原理 4.…

决策树算法学习笔记

一、决策树简介 首先决策树是一种有监督的机器学习算法&#xff0c;其采用的方法是自顶向下的递归方法&#xff0c;构建一颗树状结构的树&#xff0c;其具有分类和预测功能。其基本思想是以信息熵为度量构造一棵熵值下降最快的树&#xff0c;到叶子节点处的熵值为零。决策树的构…

MVC,MVP,MVVM的理解和区别

MVC MVC &#xff0c;早期的开发架构&#xff0c;在安卓里&#xff0c;用res代表V&#xff0c;activity代表Controller层&#xff0c;Model层完成数据请求&#xff0c;更新操作&#xff0c;activity完成view的绑定&#xff0c;以及业务逻辑的编写&#xff0c;更新view&#xf…

51单片机项目(9)——基于51单片机的电子琴设计

简易电子琴设计设计内容: 1.用矩阵键盘代表琴键&#xff0c;至少能弹出8个音符&#xff0c;分别是:音符1.23.4.,5,6, 2.键按下的时间长短表征节拍的长短&#xff0c;用蜂鸣器发出声音 3.数码管显示出当前音符 4.音量可调 &#xff08;代码及其工程文件放在最后&#xff09; …