初始K8s

ops/2024/12/22 2:57:01/

K8S 基本概念:
K8S 的全称为 Kubernetes (K12345678S),PS:“嘛,写全称也太累了吧,不如整个缩写”。

作用:
用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。
可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。

K8S是一款强大的容器编排平台,可以帮助企业实现容器化的业务部署和管理,提升效率和可靠性。

K8S是一个容器集群管理系统,在Docker等容器技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。 

K8S 的特点包括:
●自动化管理:大大减少了人工干预,提高了应用部署和管理的效率。
●弹性伸缩:能够根据负载自动调整容器的副本数量,实现资源的高效利用。
●高可用性:通过副本和故障转移机制,确保应用的持续可用。
●负载均衡:可以在多个节点上自动分配负载,实现负载均衡。
●跨平台支持:可以在不同的基础设施上运行,包括物理机、虚拟机和云平台。

核心组件

K8S有 master 和 worker node 两类节点

master:

Kube-apiserver:集群的统一入口,负责接收、验证和转发请求。

controller-manager:控制器管理器,负责管理K8s各种资源对象的控制器,通过apiserver监控整个k8s集群的资源状态,并确保资源始终处于预期的工作状态。

scheduler:资源调度器,负责pod资源的调度,通过调度算法(预选/优选策略)为待部署的Pod选择最适合的node节点。

etcd:K8S集群的数据库,是一种键值对存储结构的分布式数据库,负责存储K8S集群所有配置和状态信息,仅apiserver拥有访问和读写权限

work node节点:负责运行工作负载,即容器应用

kubelet:接受apiserver的请求,创建和管理pod 及其容器的生命周期,定期收集节点的资源使用情况,并上报给apiserver。

kube-proxy:负责实现pod网络代理,维护网络规则和四层负载均衡。

K8S创建Pod资源对象的工作流程:

用户通过客户端发送创建pod请求给apiserver,apiserver接收到请求并进行认证后,将请求信息存储到etcd中;contorller-manager通过list-watch监听到apiserver的指令后,根据请求信息中的资料模板配置创建pod资源(这里是个抽象的pod);scheduler也通过list-watch监听到api-server的指令,调度新创建的pod,根据调度算法(预选优选策略)选出最合适的node节点部署pod,node节点上的kubelet也通过list-watch监听api-server的指令,会在指定node的节点上创建pod,并管理容器的生命周期;用户还可以用过apiserver在kube-proxy上配置网络规则,实现网络代理和负载均衡。

K8S资源对象
Pod:是K8S能够创建和管理的最小单元。一个Pod里可以包含一个或多个应用容器,同一个Pod里的容器之间共享网络、存储等资源(容器之间可以通过localhost相互访问,还可以共享Pod的存储卷)
                                                                                              
Pod控制器:

  1. deployment:部署无状态应用(没有实时数据需要存储);同时也负责管理replicaset(维持Pod副本数量始终符合预期状态)和Pod(容器化的应用程序)
  2. statefulset:部署有状态应用(有实时数据需要存储)
  3. daemonset:在每个node节点上都部署一个Pod副本
  4.  job:一次性的部署短期任务的Pod(执行完任务后会自动退出)
  5.  cronjob:周期性的部署短期任务的Pod(执行完任务后会自动退出)

service:在K8S集群内部,为通过标签选择器相关联的一组Pod提供一个统一的访问(clusterIP)和负载均衡(只支持四层)
service 通过标签选择器关联Pod的标签,从而自动发现相关联Pod的端点(Pod的IP和端口)

ingress:作为K8S集群外部的访问入口,可定义ingress规则根据不同的域名或URL路径绑定并转发请求给指定的service,支持七层负载均衡

volume:Pod中容器可以访问的文件系统

k8s集群外部访问的过程:

 集群外部访问需要用ingress作为集群外部入口访问入口,ingress根据不同的域名或者url路径绑定不同的servers,根据外部的路径,转发给相应的servers,再通过servers想关联的pod进行转发。


http://www.ppmy.cn/ops/86277.html

相关文章

“微软蓝屏”全球宕机,敲响基础软件自主可控警钟

上周五,“微软蓝屏”“感谢微软 喜提假期”等词条冲上热搜,全球百万打工人受此影响,共同见证这一历史性事件。据微软方面发布消息称,旗下Microsoft 365系列服务出现访问中断。随后在全球范围内,包括企业、政府、个人在…

Java学习笔记(七)面向对象编程(中级部分)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍Java面向对象编程(中级部分)包、访问修饰符、封装、继承、super关键字、多态、向上(下)转型、equals、hashCode、断点调试等知识的详细使用以及部分理论知识 🍉欢迎点赞 …

【b站-湖科大教书匠】5 运输层 - 计算机网络微课堂

课程地址:【计算机网络微课堂(有字幕无背景音乐版)】 https://www.bilibili.com/video/BV1c4411d7jb/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 5 运输层 5.1 运输层概述 5.2 运输层端口号、复用与分用…

java发送https请求支持tls1.3

说明:java 8_u201及以下版本不支持tls1.3协议发送。最直接的方法是升级到该版本之上。 另外:需要修改一下代码强行使用tls1.3协议。如果只修改代码,不升级java版本会报错找不到该协议。

如何从零搭建一个动态网站

静态网站和动态网站的区别 静态网站和动态网站的本质区别在于内容是否在服务器端动态生成,以及是否有服务器端逻 辑处理用户请求和数据。 静态网站像是一本已经印刷好的书籍,而动态网站则像是根据读者需求即时编写和提供内容 的智能机器。 创建动态网…

C++20之设计模式:观察者模式

观察者模式 观察者属性观察者Observer\<T>Observable<T> 连接观察者和被观察者依赖问题取消订阅和线程安全 可重入通过 Boost.Signals2 来实现 Observer总结 观察者 观察者模式是一种流行且必需的模式&#xff0c;QT的信号槽机制本质上就是观察者模式。 属性观察…

05 循环神经网络

目录 1. 基本概念 2. 简单循环网络 2.1 简单循环网络 2.2 长程依赖问题 3. 循环神经网络的模式与参数学习 3.1 循环神经网络的模式 3.2 参数学习 4. 基于门控的循环神经网络 4.1 长短期记忆网络 4.2 LSTM网络的变体网络 4.3 门控循环单元网络 5. 深层循环神经网络…

谷粒商城实战笔记-56~57-商品服务-API-三级分类-修改-拖拽功能完成

文章目录 一&#xff0c;56-商品服务-API-三级分类-修改-拖拽功能完成二&#xff0c;57-商品服务-API-三级分类-修改-批量拖拽效果1&#xff0c;增加按钮2&#xff0c;多次拖拽一次保存完整代码 在构建商品服务API中的三级分类修改功能时&#xff0c;拖拽排序是一个直观且高效的…