容器编排 - K8s - 配置文件参数说明和基础命令
文章目录1. 简单搭建一个K8s搭建k8s方式2. k8s配置文件参数说明3. kubectl - 基本命令4. dashboard - k8s界面端工具总结✨✨✨学习的道路很枯燥希望我们能并肩走下来编程真是一件很奇妙的东西。你只是浅尝辄止那么只会觉得枯燥乏味像对待任务似的应付它。但你如果深入探索就会发现其中的奇妙了解许多所不知道的原理。知识的力量让你沉醉甘愿深陷其中并发现宝藏。本文只是简单了解一下k8s简单知识详细的话可以查看官方文档等本文开始主要是了解一下搭建k8s, k8s文件具体配置参数说明简单的kubectl命令测试人员简单了解一下当遇到真正的分布式测试业务可以进一步了解更多1. 简单搭建一个K8skubeadm是 k8s 集群的安装工具-官方kubectlk8s 的命令行工具后续都使用使用这个命令与 k8s 通信kubelet可以理解为 k8s 在每个节点上启动的 agent它负责维护当前节点的状态和节点上启动的所有容器的维护工作。 由于它不能够被容器化部署所以必须手动下载。搭建k8s方式https://www.kubernetes.org.cn/7189.html【注】部署K8s环境影响很大会出现各种问题实际遇到还需要具体解决这里简单了解一下初始化操作初始化文件配置kubeadminit\--image-repository registry.aliyuncs.com/google_containers\--kubernetes-version v1.13.3\--pod-network-cidr10.244.0.0/16初始化网络kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/D ocumentation/kube-flannel.yml2. k8s配置文件参数说明下述是一个完整的 KubernetesK8sDeployment Service 的 YAML 配置示例看懂下述文件需要先了解Pod, service, deployment探针等基础# API 版本与资源类型 apiVersion:apps/v1# 使用 apps/v1 APIDeployment 所属的 API 组kind:Deployment# 资源类型Deployment用于管理 Pod 副本和滚动更新# 元数据Metadatametadata:name:my-app# Deployment 的名称在命名空间内唯一namespace:default# 所属命名空间可省略默认为 defaultlabels:# 标签用于标识和选择资源app:my-app# 自定义标签通常用于关联 Service 和 Pod# 期望状态Specspec:replicas:3# 期望运行的 Pod 副本数高可用/负载均衡selector:# 标签选择器用于匹配由该 Deployment 管理的 PodmatchLabels:app:my-app# 必须与 template.metadata.labels 中的标签一致# Pod 模板 template:# 定义 Pod 的模板Deployment 会基于此创建 Podmetadata:labels:app:my-app# Pod 的标签必须与上面 selector.matchLabels 一致spec:# Pod 的规格containers:# 容器列表一个 Pod 可包含多个容器但通常一个主应用-name:my-app-container# 容器名称在同一 Pod 内唯一image:nginx:1.25# 镜像地址格式[registry/][repo]/image:tagimagePullPolicy:IfNotPresent# 镜像拉取策略# Always总是拉取、# Never从不拉取仅本地、# IfNotPresent本地没有才拉取默认ports:# 容器暴露的端口仅声明不发布到宿主机-containerPort:80# 容器内部监听的端口protocol:TCP# 协议TCP/UDP默认 TCPenv:# 指定环境变量注入到容器中-name:ENV# 变量名value:production# 变量值明文-name:DB_PASSWORDvalueFrom:# 从 Secret 获取敏感信息推荐方式secretKeyRef:name:db-secret# 引用的 Secret 名称key:password# Secret 中的键名resources:# 资源请求与限制影响调度和 QoSrequests:# 请求的最小资源调度依据memory:64Mi# 内存单位MiMiB, GiGiBcpu:250m# CPU单位m毫核1000m 1 核limits:# 允许使用的最大资源超限可能被 OOM killmemory:128Micpu:500mlivenessProbe:# 存活探针判断容器是否“活着”失败则重启httpGet:path:/healthz# HTTP 探测路径port:80# 探测端口initialDelaySeconds:10# 启动后多少秒开始探测periodSeconds:15# 探测间隔秒readinessProbe:# 就绪探针判断容器是否“准备好接收流量”httpGet:path:/readyport:80initialDelaySeconds:5periodSeconds:10volumeMounts:# 将卷挂载到容器内的路径-name:config-volume# 卷名称需在 volumes 中定义mountPath:/etc/nginx# 容器内挂载路径readOnly:true# 是否只读volumes:# 定义卷Pod 级别可被多个容器共享-name:config-volume# 卷名称configMap:# 卷类型ConfigMap用于非敏感配置name:nginx-config# 引用的 ConfigMap 名称restartPolicy:Always# 容器退出时的重启策略Deployment 下只能是 AlwaysterminationGracePeriodSeconds:30# 优雅终止宽限期秒收到 SIGTERM 后等待时间---# Service 资源暴露应用apiVersion:v1kind:Servicemetadata:name:my-app-service# Service 名称#namespace: defaultlabels:name:my-app-containerspec:type:NodePort# Service 类型# ClusterIP集群内访问默认、# NodePort通过节点 IP:端口访问、# LoadBalancer云厂商 LB、# ExternalNameDNS 映射ports:-port:80# Service 监听的端口targetPort:80# 转发到 Pod 的 containerPort容器端口号nodePort:31200# 节点端口 protocol: TCPselector:# 选择哪些 Pod 提供服务匹配 Pod 的 labelsapp:my-app# 必须与 Pod 的 label 一致3. kubectl - 基本命令kubectl 类似 docker命令K8S 中一切皆资源 可以理解为在 K8S 中资源是用来描述容器的行为的所有的资源都是在某个维度控制如何运行容器。比如 pod 描述的是容器之间如何连接在一起config map 是用来将外部的配置文件挂载到容器中为应用程序提供配置管理的Service 是用来接管容器网络的RoleRoleBinding 和 Service account 是用来控制容器的角色和权限的。kubectl命令模式kubectl [动作] [资源] [option]kubectl[get/describe/delete][pod/deployment/svc]-n[命名空间]-o[yaml/json/wide]option参数说明-o:用来对输出信息进行格式化-n指定命名空间-l指定只查询拥有对应的 label 的资源对象–all-namespaces 操作整个集群所有名称空间下的资源示例# 查看所有podskubectl get pods# 查看某个命名空间下所有 Podkubectl get pods -n kube-system# 删除某个命名空间kubectl delete ns[命名空间名称]# 查看某个 Pod 的资源对象的详情kubectl describe pod[pod名称]# 删除在名称空间 test 中的一个名字叫 jenkins 的 podkubectl delete pod jenkins -ntest# 只查询拥有对应的 label 的资源对象kubectl get pods -lappnginx-web不写命名空间有默认default# 查看节点kubectl get nodes# 列出集群中所有的命名空间ns是namespace缩写kubectl get ns# 查看具体节点信息kubectl describe nodes[node名称]查看pod日志kubectl logs -f[pod名称]# 指定查看某个pod日志kubectl logs -f[pod名称]-c[容器名称]进入容器内kubuctlexec-it[pod名称]-c[容器名称]bash创建资源-使用配置文件# 根据某个配置文件创建资源对象kubectl create -f[配置文件路径]kubectl create -f[xx.yaml]# 根据某个配置文件更新资源对象/刷新配置文件 -推荐使用kubectl apply -f[配置文件路径]kubectl apply -f[xx.yaml]# 根据某个配置文件删除资源对象kubectl delete -f[配置文件路径]一般一个pod启动在一个节点污点意思不会让pod调度该节点其他pod不会在这个节点上部署删除污点taint: 给某个 Node 增加或者删除污点。kubectl taint nodes[节点名称]node-role.kubernetes.io/master:NoSchedule-小结get: 查询某个资源列表describe查看某个资源对象的详情。edit实时编辑某个资源的配置文件4. dashboard - k8s界面端工具可以参考他人问题不再重复造轮子【注】客户端工具不推荐只有命令行能够获取需要的信息这里只是了解一下安装客户端界面工具https://zhuanlan.zhihu.com/p/99148477总结✨✨✨各位读友本篇分享到内容是否更好的帮助你理解如果对你有帮助给个赞鼓励一下吧世上没有绝望的处境只有对处境绝望的人。一遇挫折就灰心丧气的人永远是个失败者。而一向努力奋斗坚韧不拔的人会走向成功。感谢每一位一起走到这的伙伴我们可以一起交流进步一起加油吧

相关新闻

数据搬运工-DMA(上)

数据搬运工-DMA(上)

DMA(Direct Memory Access,直接存储器访问)提供在外设与内存、存储器和存储器之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于CPU,在这个时间中,CPU对于内存的工作来说就无法使用。…

2026/7/3 15:50:03 阅读更多 →
ANTLR4:解析器生成工具的强大力量

ANTLR4:解析器生成工具的强大力量

探索ANTLR4:解析器生成工具的强大力量 ANTLR4(ANother Tool for Language Recognition)是一个强大的解析器生成工具,广泛应用于计算机科学领域,特别是在编译器设计、语言处理和文本分析等方面。今天,我们将…

2026/7/3 15:50:04 阅读更多 →
vue 插槽详解

vue 插槽详解

在 Vue.js 中,插槽(Slots) 是一种极为强大且灵活的内容分发机制。它允许父组件向子组件“注入”模板片段,从而实现组件的高度可复用性和布局的动态定制。通过插槽,我们可以将组件的结构与内容解耦,让子组件…

2026/7/3 15:50:04 阅读更多 →

最新新闻

C# 运动控制框架多线程实战:3种线程同步原语对比与ManualResetEvent应用

C# 运动控制框架多线程实战:3种线程同步原语对比与ManualResetEvent应用

C# 运动控制框架多线程实战:3种线程同步原语深度对比与ManualResetEvent工程实践引言:工业控制场景下的线程同步挑战在数控机床的G代码执行过程中,当急停按钮被触发时,系统需要在5毫秒内完成所有轴的制动——这个场景完美诠释了工…

2026/7/6 23:36:39 阅读更多 →
UE5 Control Rig 受击响应实战:2个控制器+Fullbody IK 实现8方向动态反馈

UE5 Control Rig 受击响应实战:2个控制器+Fullbody IK 实现8方向动态反馈

UE5 Control Rig 受击响应实战:2个控制器Fullbody IK 实现8方向动态反馈在角色动作游戏中,受击反馈是提升战斗沉浸感的关键要素。传统蒙太奇动画虽然简单直接,但面对360度攻击方向时往往显得生硬呆板。本文将带你用UE5的Control Rig系统&…

2026/7/6 23:34:38 阅读更多 →
偏微分方程数值解避坑指南:有限差分法3大稳定性条件与误差分析

偏微分方程数值解避坑指南:有限差分法3大稳定性条件与误差分析

有限差分法求解偏微分方程的3大稳定性陷阱与Python实战避坑指南1. 问题背景与核心挑战在工程计算与科学模拟中,有限差分法(FDM)因其直观性和易实现性,成为求解偏微分方程(PDE)的主流数值方法之一。然而,当处理一维平流方程这类典型问题时&…

2026/7/6 23:32:36 阅读更多 →
PaddleOCR PP-OCRv6 模型 CPU/GPU 推理对比:3 种环境下的速度与精度实测

PaddleOCR PP-OCRv6 模型 CPU/GPU 推理对比:3 种环境下的速度与精度实测

PaddleOCR PP-OCRv6 全场景性能实测:CPU/GPU/Docker 部署方案深度解析1. 开篇:为什么选择 PP-OCRv6?在数字化转型浪潮中,OCR(光学字符识别)技术已成为企业降本增效的利器。百度飞桨团队推出的 PP-OCRv6 作为…

2026/7/6 23:30:35 阅读更多 →
Windows 10/11 移动热点与第三方软件对比:5 项指标实测与 2 个典型错误排查

Windows 10/11 移动热点与第三方软件对比:5 项指标实测与 2 个典型错误排查

Windows热点与第三方工具深度评测:抓包环境搭建的5大核心指标与实战避坑指南当移动开发者需要调试App网络请求或安全工程师分析流量时,一个稳定的抓包环境如同外科医生的手术刀。本文将带您深入比较Windows原生热点与第三方工具在抓包场景下的真实表现&a…

2026/7/6 23:28:33 阅读更多 →
Unity 协程 IEnumerator 状态机解析:从 C# yield 到 IL2CPP 的 3 层转换

Unity 协程 IEnumerator 状态机解析:从 C# yield 到 IL2CPP 的 3 层转换

Unity 协程 IEnumerator 状态机解析:从 C# yield 到 IL2CPP 的 3 层转换当你在 Unity 中写下yield return null时,背后发生的魔法远比表面看起来复杂。这个简单的语句触发了从 C# 语法糖到 IL 中间语言,再到 IL2CPP 转换的三层技术栈转换。本…

2026/7/6 23:24:28 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻