Kubernetes in action-初相识
初相识Kubernetes
- 1、构建、运行以及共享镜像
- 1.1 运行镜像
- 1.2 构建镜像
- 1.3 推送镜像
- 2、Kubernetes初相识
- 2.1 介绍Pod
- 2.2 从构建到运行整体流程
- 2.3 kubectl命令行工具
如有侵权,请联系~
如有错误,也欢迎批评指正~
本篇文章大部分是来自学习《Kubernetes in action》的笔记
虽然业务的发展,单体应用已经无法满足业务的诉求,大家已经从单体应用转向微服务。但是微服务有个难题就是随着服务的增加维护成本变得越来越高,系统的资源不能很好的利用。例如如果某个服务发布部署到哪个机器上,以及服务上的某个机器挂了怎么自动的进行故障转移。所以,Kubernetes就诞生了,可以做到开发维护是一个人,即devops.
1、构建、运行以及共享镜像
在运行之前肯定是先安装docker,安装可以参考官方文档: dockerdocs。
1.1 运行镜像
通过如下命令可以运行执行的镜像:
docker run <image>
docker run 是一个复合命令,它完成了以下两个主要任务:
- 检查本地是否存在镜像
Docker 会首先检查本地是否已经存在指定的镜像。如果镜像已经存在,则直接使用本地镜像。 - 如果镜像不存在,则自动拉取镜像
如果本地没有找到指定的镜像,Docker 会尝试从远程镜像仓库(如 Docker Hub 或私有仓库)拉取镜像。
因为镜像存在不同的版本,每个版本都有唯一的tag名,可以在运行的时候显示的指定tag名,如果没有指定则是最新的latest。
docker run <image>:<tag>
完整的命令格式:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- IMAGE:要运行的镜像名称。
- [COMMAND] [ARG…]:可选参数,指定容器启动时运行的命令及其参数。
- [OPTIONS]:用于配置容器的各种选项。
如:
// -d 后台运行容器
docker run -d nginx
// -p 将主机端口映射到容器端口
docker run -p 8080:80 nginx
// -v 挂载主机的文件到容器中
docker run -v /host/data:/container/data my-image
1.2 构建镜像
业务代码和DockerFile文件准备
首先肯定是先写自己的业务代码然后进行打包,并且将创建一个DockerFile文件【将应用打包成镜像】,DockerFile文件中包含了一系列构建镜像时的命令。DockerFile内容如下:
FROM centos:latest // 这个镜像是基于centos:latest镜像继续创建的COPY ${APP_NAME}.tgz /home/admin/${APP_NAME}/target/${APP_NAME}.tgz
ENTRYPOINT ["source /home/admin/start.sh"] // 容器启动的时候执行如下命令,该命令可以启动应用代码服务
业务代码和DockerFile文件创建完成之后,就可以构建镜像。
执行构建命令
docker守护进程【服务端】就会根据DockerFile文件【需要docker客户端传递给服务端】进行构建镜像,如果docker服务端没有基础镜像【本文是centos:latest】则会从docker仓库拉取。
docker build [OPTIONS] PATH | URL | -
- PATH:指定包含 Dockerfile 的目录路径。
- URL:可以从远程仓库(如 Git 仓库)拉取 Dockerfile。
- -:从标准输入(stdin)读取 Dockerfile 内容。
常用选项:
- -t 或 --tag:为生成的镜像指定名称和标签(如 my-image:1.0)。
- –file 或 -f:指定自定义的 Dockerfile 文件名。
- –no-cache:禁用构建缓存,确保每次重新构建所有层。
- –pull:强制拉取最新的基础镜像。
例如:
docker build -t [构建之后的镜像名] .
docker build -t my-image -f MyDockerfile .
1.3 推送镜像
镜像构建完只存在本地,只有推送到镜像仓库才可以被其他机器拉取使用。镜像仓库有很多,公开的有Docker Hub、Quay.io等。例如想要将镜像推送到Docker Hub:
- 需要去docker hub中注册自己的账号
- 使用docker login进行登陆
- 然后进行推送到docker hub仓库
docker push [OPTIONS] NAME[:TAG]
- NAME[:TAG]:要推送的镜像名称和标签。例如:
my-repo/my-image:latest
nginx:1.23 - [OPTIONS]:可选参数(较少使用)。
2、Kubernetes初相识
如果想要配置k8s:
- 针对于配置单节点的k8s可以使用MiniKube安装仓库;
- 配置多节点的k8s可以使用Google Kubernetes Engine
2.1 介绍Pod
针对于K8s并不会直接处理容器,他的最小处理单元是pod。
- 一个物理机器可以有多个pod;
- 一个pod中可以有多个容器,而多个容器之间运行在同一个网络命名空间,CPU资源共享,但是文件和进程是不同的命名空间,隔离的;一般同一个pod中的多个容器是相关的,例如主容器【业务容器】和sidecar运维容器
- 当然一个容器中也可以运行不止一个进程。
2.2 从构建到运行整体流程
- 研发首先将自己的业务代码打包,然后和Docker文件一起存储在本地机器或者构建机上。然后执行镜像的构建和推送。
- 将该镜像运行在k8s上。kubectr就会向k8s的主节点master上发送http请求,主节点就会创建一个新的ReplicationController对象,并且ReplicationController对象会创建一个新的pod,调度器负责将pod调度到某个工作节点上。
- kublet接收到通知之后就会调用docker去docker仓库拉取相应的镜像,下载成功之后就会创建并启动容器。
2.3 kubectl命令行工具
kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群交互。它允许用户管理集群资源(如 Pod、Deployment、Service 等)以及查看集群状态和日志。
基本语法:
kubectl [command] [TYPE] [NAME] [flags]
- command:操作类型,例如 get、create、delete。
- TYPE:资源类型,例如 pod、deployment、service。
- NAME:资源名称。
- flags:可选参数,用于指定额外选项。
// 查看pod
kubectl get pods
// 查看deployments
kubectl get deployments
// 查看service
kubectl get services
// 查看具体的某个pod或者deployment信息
kubectl describe pod <pod-name>
kubectl describe deployment <deployment-name>
相关文章:
Kubernetes in action-初相识
初相识Kubernetes 1、构建、运行以及共享镜像1.1 运行镜像1.2 构建镜像1.3 推送镜像 2、Kubernetes初相识2.1 介绍Pod2.2 从构建到运行整体流程2.3 kubectl命令行工具 如有侵权,请联系~ 如有错误,也欢迎批评指正~ 本篇文章大部分是…...
九、小白如何用Pygame制作一款跑酷类游戏(添加前进小动物作为动态障碍物)
九、小白如何用Pygame制作一款跑酷类游戏(添加前进小动物作为动态障碍物) 文章目录 九、小白如何用Pygame制作一款跑酷类游戏(添加前进小动物作为动态障碍物)前言一、添加小动物素材1. 在根目录的图片文件夹下新建两个目录分别存放…...
Unity3D IK解算器技术分析
前言 在Unity3D中,逆向运动学(IK Solver)是实现角色动画自然交互的核心技术之一。以下是Unity中常见的IK解算器及其特点的综合分析,结合了原生功能、第三方插件与开源方案的对比: 对惹,这里有一个游戏开发…...
7.11 Python CLI开发实战:API集成与异步处理核心技术解析
Python CLI开发实战:API集成与异步处理核心技术解析 #mermaid-svg-fXGFud0phX2N2iZj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-fXGFud0phX2N2iZj .error-icon{fill:#552222;}#mermaid-svg-fXGFud0phX2N2iZj .…...
百度Create2025 AI开发者大会:模型与应用的未来已来
今日,2025百度AI开发者大会(Create2025)在武汉体育中心盛大开幕。这场以“模型的世界,应用的天下”为主题的盛会,不仅汇聚了李彦宏、王海峰、沈抖等百度高层及行业领袖,更以多项重磅技术发布、前沿议题探讨…...
Java实现HTML转PDF(deepSeekAi->html->pdf)
Java实现HTML转PDF,主要为了解决将ai返回的html文本数据转为PDF文件方便用户下载查看。 一、deepSeek-AI提问词 基于以上个人数据。总结个人身体信息,分析个人身体指标信息。再按一个月为维度,详细列举一个月内训练计划,维度详细至每周每天…...
区间和数量统计 之 前缀和+哈希表
文章目录 1512.好数对的数目2845.统计趣味子数组的数目1371.每个元音包含偶数次的最长子字符串 区间和的数量统计是一类十分典型的问题:记录左边,枚举右边策略前置题目:统计nums[j]nums[i]的对数进阶版本:统计子数组和%modulo k的…...
【服务器操作指南】从 Hugging Face 上下载文件 | 从某一个网址上下载文件到 Linux 服务器的指定目录
引言 在服务器操作中,下载和管理文件是常见且重要的任务。从 Hugging Face 平台获取模型资源,或从特定网址下载文件至 Linux 服务器并进行解压,都需要明确的操作步骤。本指南旨在为您提供清晰的操作流程,帮助您快速上手相关任务并…...
PyCharm 中 FREECAD 二次开发:从基础建模到深度定制
一、引言 在当今的三维建模与设计领域,FREECAD 以其开源、参数化设计的强大特性,成为众多工程师、设计师和开发者的首选工具。然而,面对日益复杂和多样化的设计需求,仅仅依靠 FREECAD 的原生功能往往难以满足。此时,二…...
C++入侵检测与网络攻防之网络嗅探以及ARP攻击
目录 1.tcpdump基本使用 2.tcpdump条件过滤 3.wireshark介绍 4.wireshark的介绍 5.tcp握手挥手分析 6.telnet服务的介绍和部署 7.复习 8.telnet服务的报文嗅探 9.网络嗅探基础 10.arp协议的解析 11.arp攻击原理以及试验环境 12.arp实验以及防御方式 1.tcpdump基本使…...
Integer[]::new方法引用
Integer[]::new 这种写法是 Java 中方法引用的一种具体应用,它遵循 Java 方法引用的语法规则。 方法引用概述 方法引用是 Java 8 引入的一种简化 Lambda 表达式的语法糖,它允许你通过方法的名称直接引用已有的方法或构造函数。方法引用可以使代码更加简…...
Pycharm(三):梯度下降法
梯度下降算法(Gradient Descent Algorithm)是深度学习中常用的更新权重的方法,它采用的贪心法的思想,每次都往函数值下降最快的方向去更新,梯度方向是增长最快的方向,负梯度方向是下降最快的方向。 一、梯…...
系统测试的技术要求
文章目录 一、系统测试的概念二、测试对象三、测试目的四、进入条件五、内容要求1、基于需求的考核要求2、基于任务的考核要求 六、测试环境 一、系统测试的概念 系统测试(System Testing),主要是对多个软件组成的系统进行的整体测试。系统测…...
升级Ubuntu 20.04 LTS到22.04 LTS
按照 Ubuntu发布周期 每2年会发布一个 "长期支持版" (LTS, Long Term Support)。具体来说,就是每2年的4月份会发布一个支持周期长达5年的稳定版本,如: 20.04 和 22.04 分别代表 2020年4月 和 2022年4月 发布的长期支持版本. 当前(2022年9月)&a…...
【神经网络与深度学习】训练集与验证集的功能解析与差异探究
引言 在深度学习模型的训练过程中,训练集和验证集是两个关键组成部分,它们在模型性能的提升和评估中扮演着不可替代的角色。通过分析这两者的区别和作用,可以帮助我们深入理解模型的学习过程和泛化能力,同时为防止过拟合及优化超…...
单精度浮点运算/定点运算下 MATLAB (VS) VIVADO
VIVADO中单精度浮点数IP核计算结果与MATLAB单精度浮点数计算结果的对比 MATLAB定点运算仿真,对比VIVADO计算的结果 目录 前言 一、VIVADO与MATLAB单精度浮点数运算结果对比 二、MATLAB定点运算仿真 总结 前言 本文介绍了怎么在MATLAB中使用单精度浮点数进行运算…...
如何让 HTML 文件嵌入另一个 HTML 文件:详解与实践
目录 一、为什么需要在HTML中嵌入其他HTML文件? 二、常用的方法概览 三、利用 1. 基本原理 2. 使用场景 3. 优缺点 4. 实践示例 5. 适用建议 四、利用JavaScript动态加载内容 1. 原理简介 2. 实现步骤 示例代码 3. 优缺点分析 4. 应用场景 5. 实践建…...
7.10 GitHub Sentinel CLI开发实战:Python构建企业级监控工具的5大核心技巧
GitHub Sentinel CLI开发实战:Python构建企业级监控工具的5大核心技巧 GitHub Sentinel Agent 用户界面设计与实现:命令行工具开发实战 关键词:命令行工具开发、Python argparse、API 集成、错误处理、测试覆盖率 设计并实现基本的命令行工具 命令行界面(CLI)是企业级工…...
将AAB转APK的两种好用方法AAB to APK Converter
文章目录 第一种方法:Unity工具转换第二种方法:Python转换参数填写 第一种方法:Unity工具转换 适用人群: 策划,程序等装Unity的人 需要安装: Unity 下载AAB-to-APK-Converter 导入unity,点…...
netcore8.0项目部署到windows服务器中(或个人windows电脑),利用nginx反向代理
1、发布netcore项目,默认即可 1.1、前提,需在appsettings添加Kestrel代理 配置如下: {"Kestrel": {"Endpoints": {"http": {"Url": "http://localhost:7022"},"Https": {&qu…...
Python数据分析案例73——基于多种异常值监测算法探查内幕交易信息
背景 之前有监督模型案例都做烂了,现在来做一下无监督的模型吧,异常检测模型。 其实这个案例主要目的是为了展示这些异常值的无监督算法怎么使用的,本文是一个无监督算法的总结大全。只是恰巧有同学需要做这个内幕交易的数据,因…...
电商数据中台架构:淘宝 API 实时采集与多源数据融合技术拆解
引言 在当今竞争激烈的电商领域,数据已成为企业决策和业务发展的核心驱动力。电商数据中台能够整合和管理企业内外部的各种数据,为业务提供有力支持。其中,淘宝 API 实时采集与多源数据融合技术是数据中台架构中的关键部分。本文将深入探讨这…...
【C语言】动态经典试题练习
前言: 在上一章节讲解了动态的常见错误,在上上章节讲解了动态内存的概念。 古人云: 习题一 请大家看下面的习题,试着分析输出结果 / 找出代码错误的地方。 #include <stdio.h>void GetMemory(char* p) {p (char*)mall…...
Memcached 主主复制架构搭建与 Keepalived 高可用实现
实验目的 掌握基于 repcached 的 Memcached 主主复制配置 实现通过 Keepalived 的 VIP 高可用机制 验证数据双向同步及故障自动切换能力 实验环境 角色IP 地址主机名虚拟 IP (VIP)主节点10.1.1.78server-a10.1.1.80备节点10.1.1.79server-b10.1.1.80 操作系统: CentOS 7 软…...
详解 Servlet 处理表单数据
Servlet 处理表单数据 1. 什么是 Servlet?2. 表单数据如何发送到 Servlet?2.1 GET 方法2.2 POST 方法 3. Servlet 如何接收表单数据?3.1 获取单个参数:getParameter()示例: 3.2 获取多个参数:getParameterV…...
八大排序——冒泡排序/归并排序
八大排序——冒泡排序/归并排序 一、冒泡排序 1.1 冒泡排序 1.2 冒泡排序优化 二、归并排序 1.1 归并排序(递归) 1.2 递归排序(非递归) 一、冒泡排序 1.1 冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换…...
高等数学第三章---微分中值定理与导数的应用(3.1微分中值定理3.2洛必达法则)
3.1 微分中值定理 一、罗尔(Rolle)中值定理 1. 费马(Fermat)引理 定义: 设函数 y f ( x ) y f(x) yf(x) 满足以下条件: 在点 x 0 x_0 x0 的某邻域 U ( x 0 ) U(x_0) U(x0) 内有定义࿱…...
AI超级智能体项目教程(二)---后端项目初始化(设计knif4j接口文档的使用)
文章目录 1.选择JDK的版本和相关配置2.添加依赖信息2.1指定lombok版本信息2.2引入hutool工具类2.3了解knif4j依赖2.4引入knif4j依赖 3.contrller测试3.1完成yml文件配置3.2修改默认扫描路径3.3controller具体的内容3.4配置接口和访问路径3.5如何访问3.6调试接口3.6调试接口 1.选…...
C++面试复习日记(8)2025.4.25,malloc,free和new,delete的区别
1,malloc,free和new,delete的区别 答:malloc和free是c语言中库函数; new和delete是c的操作符; 分配内存:malloc和new 区别: malloc:需要手动计算存储空间 new&#…...
14.ArkUI Radio的介绍和使用
ArkUI Radio 组件介绍与使用指南 什么是 Radio 组件? Radio(单选框)是 ArkUI 中的单选按钮组件,允许用户从一组互斥的选项中选择一个选项。它通常用于表单、设置界面等需要用户做出单一选择的场景。 Radio 的核心特性 单选功能…...
数据结构------C语言经典题目(7)
1.系统栈和数据结构中的栈有什么区别? 1.本质: 系统栈:由程序运行时由操作系统自动分配的一块连续内存区域,用于存储函数调用过程中的临时数据(参数、局部变量、返回地址),是程序运行的底层机制…...
Python教程(一)——Python速览
目录 1. 引言2. Python用作计算器2.1 数字2.2 文本2.3 列表 3. 走向编程的第一步参考 1. 引言 本系列的目的主要是重新回顾Python的语法,以供阅读由Python编写的源码。 在安装完Python后,在命令行中输入python就可以进入交互模式。下文代码段中以>…...
跟我学C++中级篇——处理对象的复制
一、对象的传递 在应用程序中,经常会遇到不同线程或不同模块间需要进行对象的传递,本来传递不是什么多大的事。但问题是,如果对象的值大到一定的程度后,传递不是问题可对象值的处理反而成了问题了。举一个现实世界的例子…...
基于PyQt5实现仿QQ-第二章-用户登录
基于PyQt5实现仿QQ-第二章-用户登录 Author: Daydreamer 项目简介 本项目基于PyQt5仿照目前流行的即时通信软件QQ,实现了新用户注册、用户登录、自动登录、记住多用户账号、用户搜索、添加好友、好友间聊天(消息持久化、同步化)等功能。 …...
[OS_8] 终端和 UNIX Shell | 会话和进程组 | sigaction | dash
我们已经知道如何用 “文件描述符” 相关的系统调用访问操作系统中的对象:open, read, write, lseek, close。操作系统也提供了 mount, pipe, mkfifo 这些系统调用能 “创建” 操作系统中的对象。 当然,我们也知道操作系统中的对象远不止于此࿰…...
IP查询专业版:支持IPv4/IPv6自动识别并切换解析的API接口使用指南
以下是根据您提供的网页内容编辑的符合CSDN内容发布要求的Markdown格式文本: 一、API概述 在开发过程中,我们常常需要对IP地址进行查询,以获取其详细信息,如地理位置、运营商等。万维易源的“IP查询专业版”API接口能够提供丰富…...
ESG跨境电商如何为国内的跨境电商企业打开国外的市场
现在不管是国内还是国外,做电商的企业都非常的多,那么既然有这么多大电商公司,就要有为这些电商公司提供服务的公司,这就是ESG,它是专门为跨境电商服务的公司,那么这家公司的主要业务是什么呢?它…...
建筑节能成发展焦点,楼宇自控应用范围持续扩大
在全球能源危机日益严峻、环保意识不断增强的大环境下,建筑节能已成为建筑行业发展的核心议题。从大型商业综合体到普通住宅,从公共建筑到工业厂房,节能需求贯穿建筑全生命周期。而楼宇自控系统凭借其对建筑设备的智能化管理和精准调控能力&a…...
中国矿业大学iGMAS分析中心介绍
一、关于GNSS和iGMAS 在浩瀚的太空中,全球卫星导航系统(GNSS)构建起精准定位的时空基准。IGMAS——国际GNSS监测评估系统,是由中国倡导并主导建设的全球GNSS监测网络,旨在提供高精度、高可靠的导航、定位与授时服务。 …...
python如何取消word中的缩进
在python-docx中,取消缩进可以通过将相应的缩进属性设置为None或0来实现。以下是取消不同类型缩进的方法: 取消左缩进 from docx import Documentdoc Document(existing_document.docx)for paragraph in doc.paragraphs:# 取消左缩进paragraph.paragr…...
Lesar: 面向 Lustre/Scade 语言的形式化模型检测工具
在《同步反应式系统》的第一课中,介绍了同步数据流语言 Lustre 生态中的形式化模型检查器 Lesar 的用法。Lesar 可对 lustre v4 语言以及 Scade 语言中部分数据流核心特性进行模型检查。 Lesar 介绍 Lesar 是 Verimag 研发维护的形式化方法模型检查工具。该工具的理…...
YOLOv12 改进有效系列目录 - 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制 - 针对多尺度、小目标、遮挡、复杂环境、噪声等问题!
🔥 在 YOLO 系列一路狂飙之后,YOLOv12 带来了令人耳目一新的范式转变——它不再以 CNN 为绝对核心,而是首次 围绕注意力机制构建 YOLO 框架,在保证实时性的前提下,将检测精度再次推向新高度! 为了进一步探…...
STM32 I2C总线通信协议
引言 在嵌入式系统开发领域,I2C(Inter-Integrated Circuit)总线作为经典的双线制串行通信协议,凭借其简洁的物理层设计和灵活的通信机制,在传感器互联、存储设备控制、显示模块驱动等场景中占据重要地位。本文将深入剖…...
多物理场耦合低温等离子体装置求解器PASSKEy2
文章目录 PASSKEy2简介PASSKEY2计算流程PASSKEy2 中求解的物理方程电路模型等离子体模型燃烧模型 PASSKEy2的使用 PASSKEy2简介 PASSKEy2 是在 PASSKEy1 的基础上重新编写的等离子体数值模拟程序。 相较于 PASSKEy1, PASSKEy2 在具备解决低温等离子体模拟问题的能力…...
【Harmony_Bug】forEach + asyncawait 的异步陷阱
一、问题描述 今天在做一个RDB的小项目时,遇到一个问题,因为没报错其实也是不算是BUG,以下描述时我就直接说关键点,其他代码忽略。 我的数据模型初始化有六条数据如图 在持久化层,通过initUserData这个方法执行插入。…...
智慧医院建设的三大关键领域
智慧医院建设是医疗行业数字化转型的核心载体,其本质是通过新一代信息技术重构医疗服务模式、优化管理流程、提升患者体验。在当前医疗资源供需矛盾突出的背景下,智慧医院建设已从单纯的设备智能化向系统性变革演进,主要集中在以下三大关键领…...
雷电模拟器怎么更改IP地址
游戏搬砖会使用雷电模拟器多开窗口,若模拟器窗口开多了,IP地址是一样的就怕有限制,很容易被游戏后台检测到。在雷电模拟器中更改IP地址可以通过以下方法实现: 方法一:通过模拟器内设置代理 1. 打开雷电模拟器 启动雷…...
软件编程命名规范
编程命名规范是保证代码可读性、可维护性和团队协作效率的重要基础。以下是涵盖主流编程语言的通用命名规范,结合行业最佳实践和常见规范(如Google、Microsoft、Airbnb等风格指南): 一、通用命名原则 清晰优先:名称应…...
#什么是爬虫?——从技术原理到现实应用的全面解析 VI
什么是爬虫?——从技术原理到现实应用的全面解析 V 二十六、异构数据采集技术突破 26.1 PDF文本与表格提取 import pdfplumber import pandas as pddef extract_pdf_data(pdf_path):"""从PDF中提取文本和表格数据:param pdf_path: PDF文件路径:return: 包含…...
芯岭技术XL32F003单片机 32位Cortex M0+ MCU简单介绍 性能优异
XL32F003单片机是深圳市芯岭技术有限公司的一款基于 32 位 ARM Cortex-M0 内核的高性能微控制器,提供SOP8/SOP14/SOP16/TSSOP20/SSOP24/QFN20/QFN32多种封装可选,可满足不同设计需求。XL32F003可用于工业控制、手持设备、PC 外设、传感器节点等应用场景&…...