一文详解k8s体系架构知识

news2025/4/1 11:50:25

0.云原生

在这里插入图片描述

1.k8s概念

在这里插入图片描述
在这里插入图片描述

1. k8s集群的两种管理角色

  1. Master:集群控制节点,负责具体命令的执行过程。master节点通常会占用一股独立的服务器(高可用部署建议用3台服务器),是整个集群的首脑。

    Master节点一组关键进程:kubernetes API Servier(kubeapiserver)
    kubernetes controller Manager(kube-controller-mannager)
    kuberntes Scheduler(kube-scheduler)

  2. 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的创建?

  1. 用户提交Pod定义‌:用户到API Server
  2. 认证与鉴权(Authentication & Authorization)
    当执行kubectl apply -f pod.yaml时,请求首先到达API Server
  3. Kube-Scheduler调用资源,选择适合的节点运行pod
  4. 持久化存储(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编写工具

  1. https://k8syaml.com/
  2. idea k8s插件,效果如下:
    在这里插入图片描述
  3. k8s提供了在线动态模版,常见的预定义配置模版如下:
    • kcm :ConfigMap

    • kdep:Deployment

    • kpod:Pod

    • kres:Generic resource

  4. 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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

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…

【数电】半导体存储电路

组合逻辑电路输入和输出之间是确定关系,与之前的历史记录没有任何关系。时序逻辑电路则有相应的存储元件,要把之前的状态保存起来。 要构成时序逻辑电路,必须要有相应的存储元件,第五章讲述相应的存储元件 一、半导体存储电路概…

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…

基于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 互通》,跟着示例…

2023第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组(真题题解)(C++/Java题解)

本来想刷省赛题呢,结果一不小心刷成国赛了 真是个小迷糊〒▽〒 但,又如何( •̀ ω •́ )✧ 记录刷题的过程、感悟、题解。 希望能帮到,那些与我一同前行的,来自远方的朋友😉 大纲: 一、子2023-&#xff…

第十四章:JSON和CSV格式详解及Python操作

在数据处理和开发工作中,JSON和CSV是两种非常常见的数据格式。它们各有特点,适用于不同的场景。本文将分别介绍这两种格式的产生原因、应用场景,并结合Python讲解如何操作这两种文件格式,最后用表格总结它们的常用操作及特性。资源…

双磁条线跟踪控制

1问题 同学反馈小车跟随磁力线,双轮差速小车,左右侧各有2个磁条传感器和各1条磁条线,需要控制小车跟随磁条线轨迹。 2 方法 (1)普通小车可能没有速度反馈,则不考虑转弯半径,仅考虑一个控制关…

树莓派超全系列文档--(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…

【高并发内存池】第六弹---深入理解内存管理机制:ThreadCache、CentralCache与PageCache的回收奥秘

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】【项目详解】 目录 1、threadcache回收内存 2、centralcache回收内存 3、pagecache回收内存 1、threadcache回收内…

累积分布策略思路

一种基于概率密度和累积分布函数的量化交易策略,主要应用于期货市场。该策略通过计算价格数据的概率密度和累积分布函数(CDF),结合移动平均线和ATR(平均真实范围)等技术指标,实现多空交易的自动…