首页 > 其他分享 >k8s简介

k8s简介

时间:2024-06-04 09:58:45浏览次数:17  
标签:容器 Kubernetes 简介 API 服务器 pod k8s 节点

Kubernetes 的架构

Kubernetes 遵循客户端-服务器架构,其中主服务器安装在一台机器上,节点安装在单独的 Linux 机器上。它遵循主从模型,使用主服务器管理跨多个 Kubernetes 节点的 Docker 容器。主服务器及其控制的节点(工作节点)构成“Kubernetes 集群”。开发人员可以在 Kubernetes 主服务器的帮助下在 Docker 容器中部署应用程序。 

Kubernetes 的关键组件

1. Kubernetes-主节点组件

Kubernetes Master 负责管理整个集群,协调集群内的所有活动,并与工作节点通信以保持 Kubernetes 和应用程序运行。这是所有管理任务的入口点。当我们在系统上安装 Kubernetes 时,我们将安装 Kubernetes Master 的四个主要组件。Kubernetes Master 节点的组件包括: 

API 服务器

API 服务器是用于控制集群的所有 REST 命令的入口点。所有管理任务均由主节点内的 API 服务器完成。如果我们想在 Kubernetes 中创建、删除、更新或显示对象,则必须通过此 API 服务器。API 服务器验证和配置 API 对象(例如端口、服务、复制、控制器和部署),并负责为每个操作公开 API。我们可以使用名为kubectl的工具与这些 API 进行交互。'kubectl ' 是一个非常小的 go 语言二进制文件,它基本上与 API 服务器对话以执行我们从命令行发出的任何操作。它是一个用于针对 Kubernetes 集群运行命令的命令行界面 

Scheduler

它是主节点中负责分配工作负载的服务。它负责跟踪每个工作节点的工作负载利用率,然后将工作负载放在可用资源上并可以接受工作负载。调度程序负责根据您在配置文件中提到的约束在可用节点之间调度 pod,并相应地调度这些 pod。调度程序负责工作负载利用率并将 pod 分配给新节点。 

Controller Manager

也称为控制器。它是一个在非终止循环中运行的守护进程,负责收集信息并将其发送到 API 服务器。它通过执行生活方式功能(例如命名空间创建和生命周期事件垃圾收集、终止 pod 垃圾收集、级联删除垃圾收集、节点垃圾收集等)来管理 Kubernetes 集群。基本上,控制器监视集群的期望状态,如果集群的当前状态不符合期望状态,则控制循环采取纠正步骤以确保当前状态与期望状态相同。关键控制器是复制控制器、端点控制器、命名空间控制器和服务帐户控制器。因此,通过这种方式,控制器负责整个集群的整体运行状况,确保节点始终处于启动和运行状态,并且正确的 pod 正在运行,如规范文件中所述。 

ETC

它是一个分布式键值轻量级数据库。在 Kubernetes 中,它是一个中央数据库,用于存储任何时间点的当前集群状态,还用于存储配置详细信息,例如子网、配置映射等。它是用 Go 编程语言编写的。

2. Kubernetes-工作节点组件

Kubernetes Worker 节点包含管理容器之间的网络、与主节点通信以及为计划的容器分配资源所需的所有服务。Kubernetes Worker 节点的组件包括: 

Kubelet

它是一个主节点代理,与主节点通信并在集群内的每个工作节点上执行。它通过 API 服务器获取 pod 规范并执行与 pod 关联的容器,并确保 pod 中描述的容器正在运行且健康。如果 kubelet 注意到在工作节点上运行的 pod 存在任何问题,它会尝试在同一节点上重新启动 pod。如果问题出在工作节点本身,则 Kubernetes 主节点会检测到节点故障并决定在另一个健康节点上重新创建 pod。

Kube-Proxy

它是 Kubernetes 集群中的核心网络组件。它负责维护整个网络配置。Kube-Proxy 维护所有节点、pod 和容器的分布式网络,并将服务暴露给外界。它充当单个工作节点上服务的网络代理和负载均衡器,并管理 TCP 和 UDP 数据包的网络路由。它会监听 API 服务器以了解每个服务端点的创建和删除,因此它会为每个服务端点设置路由,以便您可以访问它。 

Pods

pod 是一组部署在同一主机上的容器。借助 pod,我们可以将多个依赖容器部署在一起,这样它就可以充当这些容器的包装器,这样我们就可以通过 pod 来交互和管理这些容器。 

Docker

Docker 是一个容器化平台,用于将您的应用程序及其所有依赖项以容器的形式打包在一起,以确保您的应用程序在任何环境中都能无缝运行,无论是开发、测试还是生产。Docker 是一种旨在使使用容器创建、部署和运行应用程序变得更加容易的工具。Docker 是世界领先的软件容器平台。它由一家名为 Dot cloud 的公司于 2013 年推出。它是用 Go 语言编写的。Docker 推出仅六年,但社区已经从虚拟机转向它。Docker 旨在使开发人员和系统管理员都受益,使其成为许多 DevOps 工具链的一部分。开发人员可以编写代码而不必担心测试和生产环境。系统管理员不必担心基础设施,因为 Docker 可以轻松扩展和缩减系统数量。Docker 在软件开发周期的部署阶段发挥作用。

 

 

Kubernetes 的应用

  • 微服务架构:Kubernetes 非常适合管理微服务架构,它将复杂的应用程序分解为可以独立部署和管理的更小的模块化组件。
  • 云原生开发:Kubernetes 是云原生开发的关键组件,它涉及构建旨在在云基础设施上运行的应用程序并利用云的可扩展性、灵活性和弹性。
  • 持续集成和交付:Kubernetes 与 CI/CD 管道很好地集成,从而更容易自动化部署过程并以最少的停机时间推出应用程序的新版本。
  • 混合和多云部署:Kubernetes 在不同的云提供商、内部数据中心甚至开发人员笔记本电脑之间提供一致的部署和管理体验,从而更容易构建和管理混合和多云部署。
  • 高性能计算:Kubernetes 可用于管理高性能计算工作负载,例如科学模拟、机器学习和大数据处理。
  • 边缘计算:Kubernetes 也用于边缘计算应用程序,可用于管理在边缘设备(如物联网设备或网络设备)上运行的容器化应用程序。

 

标签:容器,Kubernetes,简介,API,服务器,pod,k8s,节点
From: https://www.cnblogs.com/wonchaofan/p/18230200

相关文章

  • k8s应用一套yaml配置参考
    从ingress详情和配置来看,有两个svc,一个svc是ingress在往后调度;另外一个是kong网关专用的,直接在空网关里配置,用nodeip:nodeport方式配置转到kongsvc  1、资源[[email protected]]#kubectlgetingress--all-namespaces|grepai-mcwappmyprodnsai-m......
  • 笔记2:张量简介
    张量生成方法转自:https://www.cnblogs.com/miraclepbc/p/14329476.html张量的形状及类型张量的计算张量的梯度手写线性回归张量生成方法张量的形状及类型张量的计算张量的梯度手写线性回归......
  • k8s-配置资源管理
    一、Secret:1.Secret介绍:Secret是用来保存密码、token、密钥等敏感数据的k8s资源,这类数据虽然也可以存放在Pod或者镜像中,但是放在Secret中是为了更方便的控制如何使用数据,并减少暴露的风险。2.三种类型:●kubernetes.io/service-account-token:由Kubernetes自动创建,......
  • k8s在线修改alertmanager.yml
    简单说明有些情况下,我们可以进入集群查看某些secret的配置,这里如果想修改secret的配置时,没有secrets的源文件,可以采取如下的方案。例如我们需要修改alertmanager.yml的配置:查看导出配置$kubectlgetsecrets-nmonitoringalertmanager-prometheus-alertmanager-o"jsonpat......
  • 【维度建模】维度建模简介
    维度建模的简介维度模型通常不要求必须满足数据库的3NF,规范化的3NF对与数据仓库来说过于复杂,用户难以理解、检索。但维度模型包含的信息和3NF模型包含的信息基本一致,但为了查询性能的通常刻意不满足三范式。1.3.1 星型模型与OLAP关系数据库中实现的维度模型称......
  • 退背包简介 / NOI模拟 卖画
    退背包介绍之前居然完全没了解过“退背包”,其实是个很易于接受的思路,看了下最简单的板子题居然是个黄题,离谱。退背包的原理在于根据题意与状态设计,阶段顺序并不影响最终的答案,因此之前某个阶段的贡献是可以撤销的。具体撤销的方法就是通过原先从\(f_{i-1}\)转移到\(f_i\)的......
  • 第01章— 开篇词:cesium专栏简介和阅读建议
    引言Cesium.js作为一个强大且日益重要的地理空间信息可视化工具,其应用领域广泛却学习资料相对分散。我希望能够通过系统化、实战导向的教程,降低初学者的入门门槛,帮助读者快速掌握核心技能,同时为进阶开发者提供深层次的技术解析与优化策略。Cesium可以做什么?CesiumJs是一......
  • k8S的kube-proxy相关ipvs
     ipvsadm命令没想到自己之前二进制部署的,也是ipvs代理模式node2上没有装ipvs,也看不了一些ipvs规则 node1上安装ipvsadm,然后就可以看的k8s添加的规则了yuminstallipvsadmbrctl命令k8snode上默认也没有装上这个软件,不过可以安装上,看看容器的网络情况[root@mcwk8s05......
  • K8S-集群-二进制安装
    1、环境准备1.1安装规划 服务器准备服务器ip  组件master-1  192.168.177.15  ectd、api-server、controller-master、scheduler、dockernode-1     192.168.177.16etcd、kubelet、kube-proxy、dockernode-1     192.168.177.17e......
  • k8s——安装istio
    安装istioIstio/入门[root@master~]#curl-Lhttps://istio.io/downloadIstio|sh-%Total%Received%XferdAverageSpeedTimeTimeTimeCurrentDloadUploadTotalSpentLeftSpeed00......