K8s小白入门

文章目录

  • 前言
  • 一、特性
  • 二、集群的结构
    • 控制平面内部组件
    • Node内部组件
  • 三、Docker与K8s的关系
  • 总结


前言

Kubernetes(K8s)是一个开源的容器编排平台,用于自动化容器化应用的部署、扩展和管理。是支持云原生部署的一个平台,它前生是谷歌的Borg系统,后经过Go语言重写,在2014 年开源了 Kubernetes 项目,并捐献给CNCF 基金会开源,即Kubernetes,之所以简称K8s,因为 Kubernetes 中间有 8个字母。


一、特性

  1. 自动化部署和回滚:K8s 允许用户声明应用的期望状态,并自动将实际状态调整为期望状态。这意味着可以自动部署新版本的应用,并在出现问题时自动回滚到之前的版本。

  2. 服务发现和负载均衡:K8s 可以使用 DNS 名称或自己的 IP 地址来暴露容器。如果进入容器的流量很大,K8s 可以负载均衡并分配网络流量,从而使部署稳定。

  3. 存储编排:K8s 允许自动挂载用户选择的存储系统,例如本地存储、公共云提供商等。

  4. 自动完成装箱计算:K8s 提供了资源调度功能,能够根据容器的资源需求,将其分配到合适的节点上,优化资源利用率。

  5. 自我修复:K8s 能够自动重启失败的容器、替换容器、杀死不响应用户定义的健康检查的容器,并且在准备好服务之前不将其通告给客户端。

  6. 密钥与配置管理:K8s 允许存储和管理敏感信息,例如密码、OAuth 令牌和 SSH 密钥。可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。

  7. 水平扩缩:K8s 支持根据 CPU 使用率或其他自定义指标,自动对应用进行扩展或缩减,确保应用在不同负载下都能高效运行。

  8. 可移植性和灵活性:K8s 支持在多种环境中运行,包括本地数据中心、公有云和混合云,提供一致的操作体验。

二、集群的结构

集群的结构主要由控制平面(Control Plane)和工作节点(Node) 两部分组成。

在这里插入图片描述

控制平面内部组件

Kubernetes 的控制平面(Control Plane)是集群的核心,负责管理和协调所有节点,确保集群处于期望的状态。控制平面由以下关键组件组成:

  1. API 服务器(kube-apiserver)

    • 功能:作为 Kubernetes 控制平面的前端,提供集群的 RESTful API 接口,处理所有的 API 请求,包括认证、授权、数据校验和集群状态变更。
    • 作用:所有其他组件都通过 API 服务器进行通信,是集群的统一入口。
  2. etcd

    • 功能:一个分布式、一致性、高可用的键值存储,用于保存集群的所有配置信息和状态数据。
    • 作用:作为集群的唯一数据源,存储了所有的集群数据,包括节点信息、Pod 状态、配置数据等。
  3. 调度器(kube-scheduler)

    • 功能:监视新创建且未指定运行节点的 Pod,并根据资源需求、硬件/软件/策略约束、亲和性/反亲和性规范等因素,将其分配到合适的节点上。
    • 作用:确保工作负载在集群中的合理分布,优化资源利用率。
  4. 控制器管理器(kube-controller-manager)

    • 功能:运行各种控制器进程,每个控制器负责维护集群的不同方面,确保实际状态与期望状态一致。

    • 常见控制器

      • 节点控制器:负责在节点出现故障时进行通知和响应。
      • 副本控制器:确保每个副本集(ReplicaSet)具有正确数量的 Pod 副本。
      • 端点控制器:填充 Endpoint 对象,维护服务与 Pod 之间的映射关系。
  5. 云控制器管理器(cloud-controller-manager)

    • 功能:嵌入特定云提供商的控制逻辑,允许将集群与云提供商的 API 集成。
    • 作用:管理与云平台相关的控制器,如节点控制器、路由控制器和服务控制器,处理云资源的创建、更新和删除。

Node内部组件

在这里插入图片描述

在 Kubernetes 集群中,节点(Node) 是实际运行容器化应用的工作单元。每个节点包含以下关键组件:

  1. kubelet

    • 功能:节点上的核心代理,负责与控制平面通信,确保容器按照定义正确运行。
    • 作用:接收并执行来自 API 服务器的 Pod 指令,监控 Pod 和容器的状态,报告节点和 Pod 的状态信息。
  2. kube-proxy

    • 功能:节点上的网络代理,负责维护网络规则,处理服务的网络代理和负载均衡。
    • 作用:实现 Kubernetes 服务的通信与负载均衡机制,确保网络流量正确路由到相应的 Pod。
  3. 容器运行时(Container Runtime)

    • 功能:负责实际运行容器的底层软件。
    • 作用:管理容器的生命周期,包括创建、启动、停止和删除容器。常见的容器运行时包括 Docker、containerd、CRI-O 等。

这些组件共同协作,确保节点能够高效地运行和管理容器化的应用程序,提供稳定的运行环境。

三、Docker与K8s的关系

互补性: Docker 提供了容器化的技术基础,使应用程序可以在任何地方以一致的方式运行;而 Kubernetes 则提供了容器编排和管理的能力,帮助更轻松地管理和扩展应用程序。

集成性: Kubernetes 可以使用 Docker 作为容器运行时接口的一部分。这意味着 Kubernetes 可以利用 Docker 来运行容器,但 Kubernetes 也可以与其他容器运行时(如 containerd、CRI-O 等)一起工作。

抽象层: Kubernetes 提供了一层抽象,使得用户无需关心底层基础设施的具体细节,而是专注于应用的部署和服务管理。


总结

K8s的概念较为复杂,但基本的结构就是这些。如今K8s是现代云原生应用的首选平台。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[asdf] 管理erlang 版本--ubuntu 16.04

部分网址 asdf 官网:快速入门 | asdf elang 插件网址:https://github.com/asdf-vm/asdf-erlang rebar 插件网址:https://github.com/Stratus3D/asdf-rebar 安装asdf 先安装依赖,默认装了git 可只安装curl apt install curl git 2、安装as…

微信小程序 uniapp网络记账设计个人理财系统

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 aa账簿 (自动编号、用户id、用户账号、备注、登记时间、消费类型、创建时间、消费金额); 配置文件 (自动编…

【VR】PICO 手部追踪 steamvr内无法识别,依旧识别手柄的解决方案

一、问题描述 && 原因分析 1.PICO4 手部追踪 steamvr内无法识别,依旧识别手柄的解决方案 尽管平放(或关闭手柄连接)之后,在 PICO 一体机中进入了手部追踪状态, 但只要进入 steamvr,就无法正确识别…

React中类组件和函数组件的理解和区别

react代码模块分为类组件和函数组件。 从语法和定义、内部状态管理、生命周期、性能、可读性和维护性、上下文、集成状态管理库等角度对比React中类组件和函数组件。 1、语法和定义 类组件: 使用 ES6 的类(class)语法定义的 React 组件。…

ruoyi-vue集成tianai-captcha验证码

后端代码 官方使用demo文档&#xff1a;http://doc.captcha.tianai.cloud/#%E4%BD%BF%E7%94%A8demo 我的完整代码&#xff1a;https://gitee.com/Min-Duck/RuoYi-Vue.git 主pom.xml 加入依赖 <!-- 滑块验证码 --><dependency><groupId>cloud.tianai.captc…

ctfshow(316)--XSS漏洞--反射性XSS

Web316 进入界面&#xff1a; 审计 显示是关于反射性XSS的题目。 思路 首先想到利用XSS平台解题&#xff0c;看其他师傅的wp提示flag是在cookie中。 当前页面的cookie是flagyou%20are%20not%20admin%20no%20flag。 但是这里我使用XSS平台&#xff0c;显示的cookie还是这样…

move_base

move_base 官方介绍&#xff1a;http://wiki.ros.org/move_base 如果在仿真环境下&#xff0c; sensor source、odometry source 和 sensor transforms 都已提供好&#xff0c;我们只需要完成以下部分&#xff1a; 一、编写导航程序 ①创建 ROS 工作空间 和 pkg 包 mkdir -p …

探索开放资源上指令微调语言模型的现状

人工智能咨询培训老师叶梓 转载标明出处 开放模型在经过适当的指令调整后&#xff0c;性能可以与最先进的专有模型相媲美。但目前缺乏全面的评估&#xff0c;使得跨模型比较变得困难。来自Allen Institute for AI和华盛顿大学的研究人员们进行了一项全面的研究&#xff0c;探索…

微信小程序uniapp基于Android的流浪动物管理系统 70c3u

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 以往流浪猫狗的救助网站相关信息的管理&#xff0c;都是工作人员手工统计。这种方式不但时效性低&#xff0c;而且需要查…

MiniWord

1.nuget 下载配置 2.引用 3. var value = new Dictionary<string, object>() { ["nianfen"] = nianfen, ["yuefen"] = yuefen, ["yuefenjian1"] = (int.Par…

【算法与数据结构】【链表篇】【题1-题5】

题1.从尾到头打印链表 题目&#xff1a;输入一个链表的头结点&#xff0c;从尾到头反过来打印出每个节点的值。链表的定义如下&#xff1a; struct ListNode {int mValue;ListNode *mNext;ListNode *mPrev; }; 1.1 方法一&#xff1a;栈 思路&#xff1a;要反过来打印&…

8.机器学习--决策树

(⊙﹏⊙)下周有要开组会&#xff0c;不知道该说啥&#xff0c;啊啊啊啊&#x1f62b; 目录 1.基本概念 2.ID3算法 3.C4.5算法 4.CART算法 5.连续与缺失值处理 5.1.连续值处理 5.2.缺失值处理 6.剪枝处理 6.1.预剪枝策略 6.2.后剪枝策略 7.实例代码 1.基本概念 提…

C#的6种常用集合类

一.先来说说数组的不足&#xff08;也可以说集合与数组的区别&#xff09;&#xff1a; 1.数组是固定大小的&#xff0c;不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小&#xff0c;但是该方法是重新创建新设置大小的数组&#xff0c;用的是旧数组的元素初始…

以太网交换安全:MAC地址漂移

一、什么是MAC地址漂移&#xff1f; MAC地址漂移是指设备上一个VLAN内有两个端口学习到同一个MAC地址&#xff0c;后学习到的MAC地址表项覆盖原MAC地址表项的现象。 MAC地址漂移的定义与现象 基本定义&#xff1a;MAC地址漂移发生在一个VLAN内的两个不同端口学习到相同的MAC地…

qt QHttpMultiPart详解

1. 概述 QHttpMultiPart是Qt框架中用于处理HTTP多部分请求的类。它类似于RFC 2046中描述的MIME multipart消息&#xff0c;允许在单个HTTP请求中包含多个数据部分&#xff0c;如文件、文本等。这种多部分请求在上传文件或发送带有附件的邮件等场景中非常有用。QHttpMultiPart类…

【SQL实验】高级查询(难点.三)含附加数据库操作

完整代码在文章末尾【代码是自己的解答&#xff0c;并非标准答案&#xff0c;也有可能写错&#xff0c;文中可能会有不准确或待完善之处&#xff0c;恳请各位读者不吝批评指正&#xff0c;共同促进学习交流】 将素材中的“学生管理”数据库附加到SQL SERVER中&#xff0c;完成以…

基于Spring Boot+Vue的助农销售平台(协同过滤算法、限流算法、支付宝沙盒支付、实时聊天、图形化分析)

&#x1f388;系统亮点&#xff1a;协同过滤算法、节流算法、支付宝沙盒支付、图形化分析、实时聊天&#xff1b; 一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构&#xff1a;B/S架构 运行环境&#xff1a;win10/win11、jdk1…

std::copy

std::copy 是 C 标准库中的一个算法&#xff0c;用于将一个序列中的元素复制到另一个位置。这个算法定义在 <algorithm> 头文件中。 --- 函数原型 std::copy 有几个不同的重载版本&#xff0c;但以下是最常用的两个&#xff1a; template <class InputIterator, c…

Linux之sed命令详解

文章目录 &#x1f34a;自我介绍&#x1f34a;sed概述&#x1f34a;sed语法讲解格式&#xff1a;options 命令选项{commmand}[flags] &#x1f34a;场景训练 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&#xff08;一键四连&#xff…

现代Web开发:React Hooks深入解析

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 现代Web开发&#xff1a;React Hooks深入解析 现代Web开发&#xff1a;React Hooks深入解析 现代Web开发&#xff1a;React Hook…