案例速成k8s,个人笔记快速入门
更多个人笔记见github个人笔记仓库
个人学习,学习过程中还会不断补充~ (后续会更新在github上)
案例代码仓库:k8s学习代码
每一步重要的我都commit了,可以通过可视化软件比如github desktop 查看
简述
接下来通过案例速通k8s
概念部分和前面不需要使用代码,后面主要使用GO(goland)讲解,用别的语言的话结合ai就行,主要就是端口和服务部署的概念,主体程序是什么语言,什么模版换汤不换药
k8s知识概念
简述:k8s全称kubernetes,用于管理docker官网
比如学生是容器,那么老师就是 K8s
基础了解
- Pod:实例,比如有一个 Web 应用,部署了三个实例,就是三个pod
- Service:逻辑上的服务,可以认为这个是业务上 XXX 服务的直接映射。
- Deployment:用于管理 Pod 。比如增加pod,减少pod
文件概念上理解
重点是留个概念先,关键在实战例子
deployment
deployment中apiVersion是资源定义(如YAML配置文件)中的关键字段,用于指定该资源所属的API组和版本。它的作用是确保Kubernetes能够正确解析和处理资源对象的配置,同时支持API的版本迭代和功能扩
service
-
Deployment 你是没办法从外面访问的,用于将pod封装为逻辑上的服务,解决Pod的动态性问题,为应用提供稳定的网络访问入口和负载均衡。
(golang可以文件夹右键生成k8s resource 方便) -
理解port,Node port(如果不采用LoadBalancer负载均衡的话),target port
port是集群内部服务访问的端口
targetport是外部访问的端口~
如果没有设置targetport而是负载均衡的LoadBalancer设置,那么port也会作为外部可以访问的端口
这个结合后面的实例理解
pv和pvc
-
储存空间被抽象为 PersistentVolume(持久化卷)PVC多个“claim”,一个容器需要什么存储资源,是通过PersistentVolumeClaim 来声明的
-
绑定流程:
- 管理员创建PV(或通过
StorageClass动态生成)。 - 用户创建PVC,声明存储需求(如10Gi的
ReadWriteOnce存储)。 - K8s自动将PVC绑定到符合条件的PV
PV的生命周期独立于Pod,即使Pod删除,PV中的数据仍保留。
举个例子:你现在和对象一起去旅游,对象负责组织。那么PersistentVolumeClaim 就是你跟你对象说,我要去什么样的景点。而 PersistentVolume 就是卖票网站上说还有什么票可以买。
- 管理员创建PV(或通过
-
volumeMounts,意思是挂载到我容器的哪个地方。
-
volumns 是指,我这里挂载的东西究竟是什么。
-
AccessMode 是说明我这个 PV 支持什么访问模式
- ReadWriteOnce:只能被挂在到一个 Pod,被它读写。
- ReadOnlyMany:可以被多个 Pod 挂载,但是只能读。
- ReadWriteMany:可以被多个 Pod 挂载,它们都能读写。
ingress
- ingress 概念涉及到k8s部署nginx,Ingress 代表路由规则。你前端发过来的各种请求,在经过 Ingress 之后会转发到特定的 Service 上,再到pod
- Ingress controller 可以控制住整个集群内部的所有 Ingress,相当于ingress是配置而controller用于执行这些配置
ingress需要自己配置localhost的站点信息
案例速通
主要是了解k8s常见的配置文件等怎么书写
官方书写配置文档 可以参考,不过听说写的不太好
安装部署
配置终端代理
老生常谈了,见终端魔法代理(速通)
或者知道这个概念也是很好的
(curl指令中也有-x指定端口的用法)
安装k8s
(仅提供mac) 安装docker 软件,在设置中就能找到k8s,直接打开开启 Enable Kubernetes使用就行,第一次使用会下载一阵子,记得用魔法。
win听说最好是专业版的不然后面可能使用会有问题什么的(可以留个debug思路)
安装kubectl
用于执行命令管理k8s的工具 官网下载找到对应型号指令执行就行,比如我是 macos + apple
silcon
检查版本 :kubectl version --client 后面不常用
验证集群连接: kubectl cluster-info 后面不常用
检查配置文件:kubectl config view 后面不常用
查看节点状态:kubectl get nodes 我没咋用
还有一条思路是用rancher,不过不用优先考虑,了解就行
主体部署初体验
代码主要看代码仓库,这里不复制粘贴了,主要讲思路
代码仓库中有详细注释,
目标:通过基本web服务器代码体验打包镜像,部署deployment和service的过程
go初始化然后main中gin框架写一个路由,
makefile中打包镜像
终端执行:make docker 打包/更新镜像 (将会自动执行dockerfile中的代码,打包)
basic-deployment.yaml
basic-service.yaml
然后执行
kubectl apply -f basic-deployment.yaml
kubectl apply -f basic-service.yamlkubectl get deployments # 查看状态
kubectl get service #后面的pod,namespace等指令同理
kubectl delete deployment name
kubectl delete service name
接着通过postman 或者浏览器,访问设置的82端口 localhost:82/hello 就可以看到hello world
原本是通过8080端口访问的,同时现在也不用执行程序了,直接在容器中
后续会更新在github上
部署redis
目标:通过部署redis了解基本应用镜像管理
部署mysql
目标:通过部署sql了解对应部署方式和细节
通过pv,pvc将mysql持久化存储
目标:通过pv,pvc将mysql持久化存储,做到能够保存数据
部署nginx了解ingress
目标:通过部署nginx了解ingress是怎么分配管理访问流量的
(后续会更新在github上)
相关文章:
案例速成k8s,个人笔记快速入门
更多个人笔记见github个人笔记仓库 个人学习,学习过程中还会不断补充~ (后续会更新在github上) 案例代码仓库:k8s学习代码 每一步重要的我都commit了,可以通过可视化软件比如github desktop 查看 简述 接…...
声音识别(声纹识别)和语音识别的区别
目录 引言一、语音识别1.声学模型2.语言模型3.词典 二、声音识别(声纹识别)三、语音识别、声音识别、语义识别的区别四、总结 引言 咋一看这个标题是不是很多小伙伴都迷糊了,哇哈,这两个不是一样的吗? 结论是&#x…...
使用Mybaitis-plus提供的各种的免写SQL的Wrapper的使用方式
文章目录 内连接JoinWrappers.lambda和 new MPJLambdaWrapper 生成的MPJLambdaWrapper对象有啥区别?LambdaQueryWrapper 和 QueryWrapper的区别?LambdaQueryWrapper和MPJLambdaQueryWrapper的区别?在作单表更新时建议使用:LambdaU…...
springboot-基于Web企业短信息发送系统(源码+lw+部署文档+讲解),源码可白嫖!
摘要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。本系统采用B/S架构,数据库是MySQL…...
秀丸编辑器 使用技巧
参考资料 第II部〜知っていると便利な秀丸の機能 検索テキストファイルの16進表示について秀丸エディタヘルプ目次秀丸エディタQ&A集(第9.6版)(HTML 形式)テンプレート(Ver9.43対応版) 目录 零…...
什么是量子计算?它能做什么?
抛一枚硬币。要么正面朝上,要么反面朝上,对吧?当然,那是在我们看到硬币落地的结果之后。但当硬币还在空中旋转时,它既不是正面也不是反面,而是正面和反面都有一定的可能性。 这个灰色地带就是量子计算的简…...
Python Web开发常用框架介绍
Python Web开发常用框架介绍 Python 是一种简洁、易于学习且功能强大的编程语言,广泛应用于 Web 开发、数据分析、人工智能等领域。Python 的 Web 开发框架能帮助开发者更高效地创建和管理 Web 应用。本文将介绍几种常用的 Python Web 开发框架,帮助你选…...
【新能源科学与技术】MATALB/Simulink小白教程(一)实验文档【新能源电力转换与控制仿真】
DP读书:新能源科学与工程——专业课「新能源发电系统」 2025a 版本 MATLAB下面进入正题 仿真一:Buck 电路一、仿真目的二、仿真内容(一)Buck电路基本构成及工作原理(二)Buck电路仿真模型及元件连接…...
[Unity]ColdKD树 冷处理解决含有删除操作的最近邻问题
在 Unity 开发中,最近邻问题是一个常见的需求场景。例如,在游戏中的寻路系统、物体之间的交互检测、资源分配等场景中,都需要快速准确地找到某个点或物体的最近邻。然而,传统的暴力遍历方法在处理这类问题时,往往会暴露…...
快速生成安卓证书并打包生成安卓apk(保姆教程)
一.生成安卓证书 目前市面上生成可以快速生成安卓证书的网站有很多个人推荐香蕉云编以下是网站链接 香蕉云编-app打包上架工具类平台 1.进入网站如下图 2.点击生成签名证书 3.点击立即创建证书 4.点击创建安卓证书 5.按照指引完成创建 6.点击下载就可使用 二.打包安卓apk …...
mysql mvvc 实现方案
Mysql 事务隔离级别 并发问题 mysql中事务并发时,会产生的问题如下 脏读: 读到了其他事务中,暂未提交的数据 脏读 (Dirty Read) 是数据库事务隔离级别中最低的一种隔离级别 (READ UNCOMMITTED) 下可能出现的一种并发问题。 它指的是一个事务读取了另…...
校园外卖服务系统的设计与实现(代码+数据库+LW)
摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,外卖信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广…...
纷析云:开源财务管理软件的创新与价值
在企业数字化转型中,纷析云作为一款优秀的开源财务管理软件,正为企业财务管理带来新变革,以下是其核心要点。 一、产品概述与技术架构 纷析云采用微服务架构,功能组件高内聚低耦合,可灵活扩展和定制。前端基于现代框…...
Centos安装Dockers+Postgresql13+Postgis3.1
centos8安装docker步骤 1、# 强制卸载 podman 和 buildah 执行命令: yum erase podman buildah 2、# 添加阿里云仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 3、# 安装基础依赖包 yum install…...
【计算机网络 | 第二篇】常见的通信协议(一)
HTTP和HTTPS有什么区别? 端口号:HTTP默认是80端口,HTTPS默认是443。 URL前缀:HTTPHTTP 的 URL 前缀是 http://,HTTPS 的 URL 前缀是 https://。 安全性和资源消耗:HTTP协议运行在TCP上,都是明…...
基于Java与MAVLink协议的多无人机(Cube飞控)集群控制与调度方案问题
基于Java与MAVLink协议的多无人机(Cube飞控)集群控制与调度方案问题 背景需求: 我们目前有一个基于Cube飞控的无人机系统,需实现以下核心功能: 多机通信:通过MAVLink协议同时连接并控制多架无人机&#x…...
单片机——使用printf调试
配置printf()输出函数 1、来自于<stdio.h> 2、运行C语言时,输出到终端 3、单片机没有终端,需要使用串口,将要输出的内容传到电脑(串口调试助手)上 例子如下 #include <stdio.h> #include &qu…...
4.23晚间工作总结
主要工作:将ClassicDetail界面拆分成utils,apis,stores,css,vue多个文件,方便后续重用 具体代码截图:...
Spring 用到了哪些设计模式?
Spring 框架使用了多种设计模式,这些模式帮助其实现松耦合、高内聚和可扩展性。以下是 Spring 中常见的设计模式及其应用场景: 1. 工厂模式(Factory Pattern) 应用场景:Spring 的 BeanFactory 和 ApplicationContext 是…...
JavaEE学习笔记(第二课)
1、好用的AI代码工具cursor 2、Java框架:Spring(高级框架)、Servelt、Struts、EJB 3、Spring有两层含义: ①Spring Framework(原始框架) ②Spring家族 4、Spring Boot(为了使Spring简化) 5、创建Spring Boot 项目 ① ② ③…...
约束constraint
创建表时,可以给表的字段添加约束,可以保证数据的完整性、有效性。比如大家上网注册用户时常见的:用户名不能为空。对不起,用户名已存在。等提示信息。 约束通常包括: 非空约束:not null检查约束…...
【Qwen2.5-VL 踩坑记录】本地 + 海外账号和国内账号的 API 调用区别(阿里云百炼平台)
API 调用 阿里云百炼平台的海内外 API 的区别: 海外版:需要进行 API 基础 URL 设置国内版:无需设置。 本人的服务器在香港,采用海外版的 API 时,需要进行如下API端点配置 / API基础URL设置 / API客户端配置…...
解锁现代生活健康密码,开启养生新方式
在科技飞速发展的当下,我们享受着便捷生活,却也面临诸多健康隐患。想要维持良好状态,不妨从这些细节入手,解锁科学养生之道。 肠道是人体重要的消化器官,也是最大的免疫器官,养护肠道至关重要。日常可多…...
在kali中安装AntSword(蚁剑)
步骤一、下载压缩包 源码:https://github.com/AntSwordProject/antSword,下载压缩包。 加载器:https://github.com/AntSwordProject/AntSword-Loader,根据系统选择压缩包(kali选择AntSword-Loader-v4.0.3-linux-x64&…...
GateWay与Consul知识点
这是一个涵盖客户端访问、网关处理、服务注册发现、业务服务及鉴权授权的系统架构图,各部分解析如下: 客户端层 App 端、Web 端:代表不同类型的客户端,涵盖手机 App、电脑 Web 页面等。用户通过这些客户端发起请求,访…...
安宝特科技 | Vuzix Z100智能眼镜+AugmentOS:重新定义AI可穿戴设备的未来——从操作系统到硬件生态,如何掀起无感智能革命?
一、AugmentOS:AI可穿戴的“操作系统革命” 2025年2月3日,Vuzix与AI人机交互团队Mentra联合推出的AugmentOS,被业内视为智能眼镜领域的“iOS时刻”。这款全球首个专为智能眼镜设计的通用操作系统,通过三大突破重新定义了AI可穿戴…...
【数据结构和算法】1. 数据结构和算法简介、二分搜索
本文根据 数据结构和算法入门 视频记录 文章目录 1. 数据结构和算法简介1.1 什么是数据结构?什么是算法?1.2 数据结构和算法之间的关系1.3 “数据结构和算法”有那么重要吗? 2. 二分搜索(Binary Search)2.1 算法概念2…...
SpringBoot3设置maven package直接打包成二进制可执行文件
注意事项 SpringBoot普通native打包顺序clean compile spring-boot:process-aot native:compile 使用以下配置只会的打包顺序clean package(注意:使用此配置以后打包会有编译后的class文件、jar包、original源文件、二进制可执行文件【Linux是无后缀的包…...
LeetCode每日一题4.20
781.森林中的兔子 问题 问题分析 根据题目描述,我们需要解决的问题是:给定一个数组 answers,其中每个元素表示某只兔子回答的“还有多少只兔子与你颜色相同”,要求返回森林中兔子的最少数目。 思路 理解 answers 数组…...
Leetcode - 周赛446
目录 一、3522. 执行指令后的得分二、3523. 非递减数组的最大长度三、3524. 求出数组的 X 值 I四、3525. 求出数组的 X 值 II 一、3522. 执行指令后的得分 题目链接 本题就是一道模拟题,代码如下: class Solution {public long calculateScore(String…...
