一文详解k8s体系架构知识
0.云原生

1.k8s概念


1. k8s集群的两种管理角色
-
Master:集群控制节点,负责具体命令的执行过程。master节点通常会占用一股独立的服务器(高可用部署建议用3台服务器),是整个集群的首脑。
Master节点一组关键进程:kubernetes API Servier(kubeapiserver)
kubernetes controller Manager(kube-controller-mannager)
kuberntes Scheduler(kube-scheduler) -
Node:是k8s的工作负载节点
Node节点一组关键进程:kubelet(负责pod对应的容器的创建、启动等任务)
kube-proxy(负责k8s service的通信与负载均衡机制)
docker-engine(Docker引擎,负责本机的容器的创建、管理工作)
2.k8s基本概念

pod:
Replication Controller(RC):就是定义一个期望的场景,即声明一种pod的副本数量在任意时刻都符合一个预期值;
RC的定义包含如下部分:
- pod期待的副本数(replicas);
- 用于筛选目标Pod的label Selector;
- 当pod的副本数量小于预期数量时,用于创建新pod的pod模板(template)
Deployment:解决pod的编排问题
Horizontal Pod autoscaler(HPA):通过追踪分析RC控制的所有目标Pod的负载变化情况,来确定是否需要针对性的调整目标pod的副本数
2.k8s 使用
1.k8s安装



2.k8s命令行







k8s常用命令:
对象管理
#创建deployment资源
kubectl create -f nginx-deployment.yaml
#查看deployment
kubectl get deploy
#查看ReplicaSet
kubectl get rs
#查看pods所有标签
kubectl get pods --show-labels
#根据标签查看pods
kubectl get pods -l app-nginx
#滚动更新镜像
kubectl set image deployment/nginx-deployment nginx-nginx:1.11
或者
kubectl edit deployment/nginx-deployment
或者
kubectl apply f nginx deployment.yaml
#实时观察发布状态:
kubectl rollout status deployment/nginx-deployment
#查看deploymnet 历史修订版本
kubectl rollout history deployment/nginx-deployment
kubectl rollout history deployment/nginx deploymnet rcvison=3
#滚动到以前版本
kubectl rollout undo deployment/nginx-deployment
kubectl rollout undo deployment/nginx-deployment --to-reverison=3
#扩展deployment的pod副本数量
kubectl scale deployment nginx deployment replicas=10
#设置启动扩展/缩容
kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80
#查看日志
kubectl logs -l app=nginx -f
#删除服务
kubectl delete -f nginx-deployment.yaml
kubectl delete -f nginx-service.yaml
#查看service endpoint后面节点
kubectl get ep nginx-service
pod管理,增删该查
#创建pod资源
kubectl create -f pod.yaml
#查看pods
kubectl get pods pod-test
#查看pod描述
kubectl describe pod pod-test
#替换资源
kubectl replace -f pod.yaml -force
#删除资源
kubeclt delete pod pod-test
kubectl get all
#查看启动实时日志
kubecl logs po/pod-test -f
#进入pod中容器
kubeclt exec pod-test -it bash
#查看容器中变量
echo $Test
#退出容器
exit
#查看pod详情
kubeclt describe pod-test
kubectl get pods -o wide
#查看k8s字段描述资源
kubectl explain pods.spec.containers
#访问页面
curl -I 192.164.11:80/index.html
kubectl get pods -n xx命名空间
Kubectl logs -f 服务实例id -n xx命名空
minikube get-k8s-versions: 查看k8s最新版本
minikube dashboard
minikube status



3.k8s网络








4.k8s负载均衡




5.k8s存储


















持久化存储:





6.k8s集群安全机制








7.heml使用







8.k8s监控





9.k8s部署java项目



10.k8s常见知识点
1.静态pod与普通pod的区别?
静态Pod: 是直接在Kubernetes集群的某个节点上运行,而不是通过Kubernetes的API服务器进行管理的;这些Pod不是由Kubernetes的控制器(如Deployment、StatefulSet等)管理的,而是通过节点上的特定配置文件直接创建的。
动态Pod: 是通过Kubernetes API服务器管理的,它们由控制器(如Deployment、StatefulSet等)动态创建和管理的。这些Pods的生命周期、扩展和故障恢复都是自动管理的;
需要直接与节点交互或在集群初始化阶段快速部署Pods,使用静态Pod可能更合适。
如果需要自动化管理、高可用性和易于扩展的特性,使用动态Pod(通过控制器管理) 更合适。
2.Node与Node,Pod与Node之间的通信?
Node与Node之间通过容器网络插件flannel实现;
Pod与Node之间通信:
同一 Node 上的 Pod:可以直接通过 IP 地址或 DNS 名称进行通信
不同 Node 上的 Pod:通过 Kubernetes service或 Ingress 进行通信
3.pod的创建?
- 用户提交Pod定义:用户到API Server
- 认证与鉴权(Authentication & Authorization)
当执行kubectl apply -f pod.yaml时,请求首先到达API Server - Kube-Scheduler调用资源,选择适合的节点运行pod
- 持久化存储(etcd写入)
API Server将Pod配置写入etcd集群,此时Pod处于Pending状态
4.docker /containerd /CRI区别?
docker: 是一个完整的容器管理平台,提供镜像构建、容器运行、网络管理、存储卷等全生命周期功能。它包含 Docker CLI(用户交互工具)、Docker Daemon(守护进程)等组件,底层依赖 Containerd 作为运行时
containerd: 是轻量级容器运行时,专注于容器的生命周期管理(创建、启动、监控、销毁)和镜像传输/存储。作为 Docker 的底层组件,Containerd 独立于 Docker,通过 CRI 直接与 Kubernetes 集成,无需额外适配层
CRI: 是 Kubernetes 定义的接口规范(基于 gRPC),用于标准化容器运行时与 Kubelet 的交互。CRI 不直接管理容器,而是为 Kubernetes 提供统一的容器操作接口,支持多种运行时(如 Containerd、CRI-O)
5.k8s使用的网络是什么?flannel
3. k8s yaml编写工具
- https://k8syaml.com/
- idea k8s插件,效果如下:

- k8s提供了在线动态模版,常见的预定义配置模版如下:
-
kcm :ConfigMap
-
kdep:Deployment
-
kpod:Pod
-
kres:Generic resource
-
- idea k8s插件使用参考连接:
https://juejin.cn/post/7122400716110430245
https://blog.csdn.net/J080624/article/details/14346370
4.heml包管理









5.k8s与rancher架构方案:




6. 生产就绪的检查清单

7.参考资料
- https://www.w3cschool.cn/kubernetes/
- KubeSphere 容器管理平台:https://kubesphere.io/zh/
- rancher容器管理平台:https://www.rancher.cn/quick-start/
- portainer :容器管理工具 https://github.com/portainer/portainer
- MinIO:对象存储库,兼容aws s3云存储服务 https://github.com/minio/minio
- 日志分析软件splunk:https://www.aizws.net/course/splunk/splunk-index#article_content
- k8s playground: killercoda.com
- https://www.yuque.com/leifengyang/oncloud
相关文章:
一文详解k8s体系架构知识
0.云原生 1.k8s概念 1. k8s集群的两种管理角色 Master:集群控制节点,负责具体命令的执行过程。master节点通常会占用一股独立的服务器(高可用部署建议用3台服务器),是整个集群的首脑。 Master节点一组关键进程…...
wx162基于springboot+vue+uniapp的在线办公小程序
开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…...
Baklib内容中台的核心优势是什么?
智能化知识管理引擎 Baklib的智能化知识管理引擎通过多源数据整合与智能分类技术,实现企业知识资产的自动化归集与动态更新。系统内置的语义分析算法可自动识别文档主题,结合自然语言处理技术生成结构化标签体系,大幅降低人工标注成本。针对…...
【C++】C++11介绍列表初始化右值引用和移动语义
个人主页 : zxctscl 如有转载请先通知 文章目录 1. C11简介2. 统一的列表初始化2.1{}初始化2.2 std::initializer_list 3. 声明3.1 auto3.2 decltype3.3 nullptr 4. 范围for循环4.1 范围for的语法4.2 范围for的使用条件 5. STL中一些变化6. 右…...
搜广推校招面经六十一
美团推荐算法 一、ANN算法了解么?说几种你了解的ANN算法 ANN 近似最近邻搜索(Approximate Nearest Neighbor Search)算法 1.1. KD-Tree(K-Dimensional Tree,K 维树) 类型: 空间划分数据结构适用场景: 低…...
人工智能与软件工程结合的发展趋势
AI与软件工程的结合正在深刻改变软件开发的流程、工具和方法,其发展方向涵盖了从代码生成到系统维护的整个生命周期。以下是主要的发展方向和技术趋势: 1. 软件架构体系的重构 从“面向过程”到“面向目标”的架构转型: AI驱动软件设计以目标…...
nacos 外置mysql数据库操作(docker 环境)
目录 一、外置mysql数据库原因: 二、数据库准备工作 三、构建nacos容器 四、效果展示 一、外置mysql数据库原因: 想知道nacos如何外置mysql数据库之前,我们首先要知道为什么要外置mysql数据库,或者说这样做有什么优点和好处&am…...
动力电池热失控:新能源汽车安全的“隐形火山”如何预防?
一、火山爆发前的征兆:热失控的演化逻辑 在锂离子电池内部,正负极材料与电解液的 “亲密接触” 本是能量转换的基石,但当温度突破 180℃临界点,电解液就像被点燃的火药库。以三元锂电池为例,镍钴锰氧化物在 200℃以上…...
【数电】半导体存储电路
组合逻辑电路输入和输出之间是确定关系,与之前的历史记录没有任何关系。时序逻辑电路则有相应的存储元件,要把之前的状态保存起来。 要构成时序逻辑电路,必须要有相应的存储元件,第五章讲述相应的存储元件 一、半导体存储电路概…...
Jenkins插件安装失败如何解决
问题:安装Jenkins时候出现插件无法安装的情况。 测试环境: 操作系统:Windows11 Jenkins:2.479.3 JDK:17.0.14(21也可以) 解决办法一: 更换当前网络,局域网、移动、联通…...
postman测试文件上传接口详解
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 postman是一个很好的接口测试软件,有时候接口是Get请求方式的,肯定在浏览器都可以测了,不过对于比较规范的RestFul接口&#x…...
什么是贴源库
贴源库的定义与核心概念 贴源库(Operational Data Store, ODS)是数据架构中的基础层,通常作为数据仓库或数据中台的第一层,负责从业务系统直接抽取、存储原始数据,并保持与源系统的高度一致性。其核心在于“贴近源头”…...
UE5中开启ACES工作流程
首先要开启OCIO插件 OpenColorIO 创建配置 下载ACES https://github.com/colour-science/OpenColorIO-Configs/tree/feature/aces-1.2-config 加载ACES的ocio 选择Srgb 选择ACES 参考链接: https://zhuanlan.zhihu.com/p/534357694 https://www.youtube.com/watch?vBo3Bvh…...
数据湖的数据存储与管理策略:构建高效的数据管理框架
数据湖的数据存储与管理策略:构建高效的数据管理框架 在大数据时代,数据湖作为存储和管理海量数据的关键技术,已经成为众多企业数字化转型的重要组成部分。数据湖的核心优势在于其能够支持结构化、半结构化和非结构化数据的存储,然而,随着数据量的增加和复杂度的提升,如…...
Vue学习笔记集--watch
watch 在 Vue 3 的 Composition API 中,watch 和 watchEffect 是用于响应式侦听数据变化的核心 API。它们都能追踪依赖并执行副作用,但在使用方式和场景上有显著差异。以下是详细解析: watch 和 watchEffect 对比 特性watchwatchEffect依赖…...
基于springboot+vue的农产品电商平台
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
解决Dubbo3调用Springcloud接口报No provider available from registry RegistryDirectory
解决Dubbo调用Springcloud接口报No provider available from registry RegistryDirectory 问题发现问题解决 问题发现 在学习Dubbo过程中,Dubbo官网有一篇文章《微服务最佳实践,零改造实现 Spring Cloud & Apache Dubbo 互通》,跟着示例…...
使用 Avada 主题实现高级表单功能的技术指南
Avada 是 WordPress 上功能最强大的多功能主题之一,其内置的 Avada Builder 和灵活的选项使其非常适合创建高级表单功能。无论是联系表单、注册表单还是复杂的多步骤表单,Avada 都能通过与插件的集成和自定义设计满足多样化需求。本文将详细介绍如何利用…...
2023第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组(真题题解)(C++/Java题解)
本来想刷省赛题呢,结果一不小心刷成国赛了 真是个小迷糊〒▽〒 但,又如何( •̀ ω •́ )✧ 记录刷题的过程、感悟、题解。 希望能帮到,那些与我一同前行的,来自远方的朋友😉 大纲: 一、子2023-ÿ…...
计算机底层基石:原码、反码、补码、移码深度剖析
在计算机的世界里,所有数据最终都以二进制的形式进行存储与运算。原码、反码、补码和移码作为二进制数据的重要编码方式,对计算机实现高效数据处理起着关键作用。接下来,我们将深入剖析这几种编码。 一、原码 1.1 定义 原码是最简单…...
第十四章:JSON和CSV格式详解及Python操作
在数据处理和开发工作中,JSON和CSV是两种非常常见的数据格式。它们各有特点,适用于不同的场景。本文将分别介绍这两种格式的产生原因、应用场景,并结合Python讲解如何操作这两种文件格式,最后用表格总结它们的常用操作及特性。资源…...
双磁条线跟踪控制
1问题 同学反馈小车跟随磁力线,双轮差速小车,左右侧各有2个磁条传感器和各1条磁条线,需要控制小车跟随磁条线轨迹。 2 方法 (1)普通小车可能没有速度反馈,则不考虑转弯半径,仅考虑一个控制关…...
【每日算法】Day 12-1:滑动窗口算法精讲——子串/子数组问题的优化利器(C++实现)
攻克子串问题的效率密码!今日深入解析滑动窗口算法的核心思想与实战技巧,覆盖最小覆盖子串、最长无重复子串等高频场景,彻底掌握O(n)时间复杂度的窗口滑动艺术。 一、滑动窗口核心思想 滑动窗口(Sliding Window) 是一…...
树莓派超全系列文档--(7)RaspberryOS播放音频和视频
播放音频和视频 播放音频和视频VLC 媒体播放器vlc GUIvlc CLI使用 cvlc 在没有图形用户界面的情况下播放媒体 在 Raspberry Pi OS Lite 上播放音频和视频指定音频输出设备指定视频输出设备同时指定音频和视频输出设备提高数据流播放性能 文章来源: http://raspberr…...
chrome浏览器下载和Chrome浏览器的跨域设置
Chrome浏览器的跨域设置 下载chrome浏览器设置chrome跨域 下载chrome浏览器 点击官方下载,然后逐步安装即可 设置chrome跨域 1、然后在D盘创建个文件夹命名为ChromeDevSession。 2、右击chrome浏览器选择属性。 3、在目标编辑栏的最后加上:–disabl…...
Android14 SystemUI中添加第三方AIDL
由于特殊需求,需要在SystemUI中添加第三方AIDL,去做一些客制化的修改。现在记录一下AIDL添加的过程。 1.将AIDL文件拷贝到frameworks/base/packages/SystemUI/src/下,我要添加的AIDL文件是com/test/myctr/IDevicectr.aidl,添加后的…...
Appium中元素定位之一组元素定位API
应用场景 和定位一个元素相同,但如果想要批量的获取某个相同特征的元素,使用定位一组元素的方式更加方便 在 Appium 中定位一组元素的 API 与定位单个元素的 API 类似,但它们返回的是一个元素列表(List<MobileElement>&am…...
【高并发内存池】第六弹---深入理解内存管理机制:ThreadCache、CentralCache与PageCache的回收奥秘
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】【项目详解】 目录 1、threadcache回收内存 2、centralcache回收内存 3、pagecache回收内存 1、threadcache回收内…...
累积分布策略思路
一种基于概率密度和累积分布函数的量化交易策略,主要应用于期货市场。该策略通过计算价格数据的概率密度和累积分布函数(CDF),结合移动平均线和ATR(平均真实范围)等技术指标,实现多空交易的自动…...
【JavaScript】九、JS基础练习
文章目录 1、练习:对象数组的遍历2、练习:猜数字3、练习:生成随机颜色 1、练习:对象数组的遍历 需求:定义多个对象,存数组,遍历数据渲染生成表格 let students [{ name: 小明, age: 18, gend…...
