一文详解k8s体系架构知识

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.rhkb.cn/news/42478.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu下docker 安装 graylog 6.1

下载docker compose相关仓库 https://github.com/Graylog2/docker-compose 按readme所述,拷贝.env.example并重命名 .env 按.env中的说明创建密码和密钥 创建GRAYLOG_PASSWORD_SECRET 用: pwgen -N 1 -s 96 创建GRAYLOG_ROOT_PASSWORD_SHA2 用: echo -n yourpa…

创新驱动 智领未来丨中威电子全景展示高速公路数字化创新成果

在数字经济与新型基础设施建设深度融合的背景下,中国智慧交通产业正迎来前所未有的发展机遇。3月27日,第27届中国高速公路信息化大会暨技术产品博览会在青岛市红岛国际会议展览中心盛大开幕。作为高速公路信息化领域的创新先锋,中威电子&…

计算机期刊征稿 | 计算机-网络系统:物联网系统架构、物联网使能技术、物联网通信和网络协议、物联网服务和应用以及物联网的社会影响

IEEE Internet of Things Journal 学科领域: 计算机-网络系统 期刊类型: SCI/SSCI/AHCI 收录数据库: SCI(SCIE),EI ISSN: 2327-4662 中科院: 1区 影响因子: 8.2 JCR: Q1 IEEE Internet…

springBoot统一响应类型3.3版本

前言: 通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往…

mapbox基础,加载popup弹出窗

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️popup 弹出窗 api1.3.1 ☘️构造函数1.…

MySQL基础语法1

目录 #1.创建和删除数据库 ​编辑#2.如果有lyt就删除,没有则创建一个新的lyt #3.切换到lyt数据库下 #4.创建数据表并设置列及其属性,name是关键词要用name包围 ​编辑 #5.删除数据表 #5.查看创建的student表 #6.向student表中添加数据,数据要与列名一一对应 #7.查询st…

【ESP32S3】esp32获取串口数据并通过http上传到前端

通过前面的学习(前面没发过,因为其实就是跑它的demo)了解到串口配置以及开启线程实现功能的工作流程,与此同时还有esp32作为STA节点,将数据通过http发送到服务器。 将这两者联合 其实是可以得到一个:esp32获…

CSS 美化页面(二)

一、CSS 属性详解 1、字体属性 (Font) 属性描述值示例简写属性font-family设置字体系列"Arial", sans-serif font: italic small-caps bold 16px/1.5 "Arial", sans-serif; font-size设置字体大小16px, 1.2em, 1remfont-weight设置字体粗细normal, bold,…

win32汇编环境,网络编程入门之十四

;win32汇编环境,网络编程入门之十四 ;在这一教程里&#xff0c;学习一下&#xff0c;如何得到网页的标题 ;这里需要理解一下html语言&#xff0c;<title> </title>标签对里面的内容即为网页的标题 ;其原理是把返回的字符串&#xff0c;按字节进行检查&#xff0c;发…

[已解决]服务器CPU突然飙高98%----Java程序OOM问题 (2024.9.5)

目录 问题描述问题排查问题解决参考资料 问题描述 业主单位服务器自8月29日晚上21:00起CPU突然飙高至98%&#xff0c;内存爆满&#xff0c;一直到9月5日&#xff1a; 问题排查 ①执行 top 命令查看Java进程PID top②执行top -Hp PID 命令查看具体的线程情况 top -Hp 3058输入上…

UI产品经理基础(六):如何解决用户的质疑?

在需求调查中遇到用户质疑“不专业”或“不了解需求”&#xff0c;本质上是用户对产品经理的信任缺失或沟通鸿沟导致的。要化解这种质疑&#xff0c;需从专业能力展示、沟通方式优化、用户参与感提升三个维度切入&#xff0c;结合具体场景采取针对性策略。以下是系统化的解决方…

小型水库大坝安全及水雨情监测技术方案

一、小型水库监测系统构成 小型水库雨水情测报和大坝安全监测系统由水库监测站点、通信网络和监测平台等组成&#xff0c;系统总体架构如图所示。 水库监测站点设施包括&#xff1a;雨量计、水位计、视频监视设备、渗压计、量水堰计、变形监测仪器、数据采集仪、遥测终端、水准…

win11+ubuntu双系统安装

操作步骤&#xff1a; 官网下载ubuntu 最新镜像文件 准备U盘 准备一个容量不小于 8GB 的 U 盘&#xff0c;用于制作系统安装盘。制作过程会格式化 U 盘&#xff0c;请注意提前备份数据。 制作U盘启动盘 使用rufus工具&#xff0c;或者 balenaEtcher工具&#xff08;官网安…

搭建前端环境和后端环境

搭建前端环境 ①、安装vscode&#xff0c;并安装相应的插件工具 ②、安装node.js&#xff0c;可以选择当前版本&#xff0c;或者其他版本 ③、创建工作区 创建一个空文件夹&#xff0c;然后通过vscode工具打开&#xff0c;保存为后缀名为.code-workspace ④、从gitee…

I.MX6ULL 开发板上挂载NTFS格式 U 盘

I.MX6ULL 开发板上挂载NTFS格式 U 盘 挂载失败安装NTFS-3G安装失败成功安装 移植挂载成功卸载U盘 挂载失败 我使用的U盘的格式是NTFS格式的 插入U盘时会有信息 我使用的是闪迪的U盘&#xff0c;大小标称是 32G &#xff0c;实际能用的只有 28G 左右 可以使用lsblk命令查看磁盘…

K. Dice Game(ICPC)

备赛ICPC时&#xff0c;我是没想到还有数学题&#xff0c;高数都快忘完了......... 题目链接&#xff1a;Problem - K - Codeforces 我们对于某一个抽到的值x&#xff0c;其他n个人中的某一个人赢我们的概率是&#xff1a; (m-x)/m(m-x)/m^2(m-x)/m^3....(m-x)/m^K&#xff0…

加油站小程序实战教程02宫格导航

目录 引言1 应用创建2 搭建页面布局3 大模型生成图标最终效果 引言 在《加油站小程序实战教程01》中我们详细介绍了站点基本信息数据维护功能的搭建。有了数据之后就需要考虑小程序展示部分该如何搭建&#xff0c;本篇我们介绍一下应用的创建、页面布局以及数据绑定的过程。 …

如何用 Postman 进行高效的 Mock 测试?

Postman 是一个强大的 API 开发和测试工具&#xff0c;它可以让你轻松地创建和发送各种 HTTP 请求&#xff0c;查看响应结果&#xff0c;并进行调试和优化。但是有时候&#xff0c;你可能还没有开发好后端服务&#xff0c;或者想要模拟不同的响应场景&#xff0c;这时候就可以使…

2025AWE观察:“无AI不家电”,但“AI”还是“AL”仍是个问题

文 | 智能相对论 作者 | 佘凯文 3月23日&#xff0c;2025中国家电及消费电子博览会&#xff08;AWE&#xff09;在上海完美闭幕。 这场以“AI科技、AI生活”为主题的展会&#xff0c;俨然成为家电行业向智能化跃迁的缩影。从冰箱、空调到扫地机器人&#xff0c;从全屋智能到…

【赵渝强老师】Oracle数据库的客户端工具

安装并成功创建Oracle数据库后&#xff0c;便可以使用客户端工具来连接Oracle数据库。Oracle官方提供的客户端工具有&#xff1a;SQL*Plus、Oracle Enterprise Manager Database Express和SQL Developer。 一、 【实战】使用命令行工具SQL*Plus 在Oracle数据库系统中&#xf…