K8s基础一

article/2025/6/7 15:28:55

Kubernetes 架构
Kubernetes 背后的架构概念。
Kubernetes 集群由一个控制平面和一组用于运行容器化应用的工作机器组成, 这些工作机器称作节点(Node)。每个集群至少需要一个工作节点来运行 Pod。

工作节点托管着组成应用负载的 Pod。控制平面管理集群中的工作节点和 Pod。 在生产环境中,控制平面通常跨多台计算机运行,而一个集群通常运行多个节点,以提供容错和高可用。

本文概述了构建一个完整且可运行的 Kubernetes 集群所需的各种组件。
在这里插入图片描述

运行该命令后,输出通常包含以下列:
NAME:节点的名称
STATUS:节点的状态(如 Ready 或 NotReady)
ROLES:节点的角色(如 control-plane 或 worker)
AGE:节点加入集群的时间
VERSION:节点上 kubelet 的版本

student@vms21:~$ kubectl get nodes // 查看集群节点
NAME            STATUS     ROLES           AGE      VERSION
vms21.rhce.cc   Ready      control-plane   2y203d   v1.32.1
vms22.rhce.cc   NotReady   <none>          2y203d   v1.32.1
student@vms21:~$ 

kubectl describe nodes
更详细的节点信息,可以使用 kubectl describe nodes 命令。

student@vms21:~$ kubectl describe nodes //查看更详细集群节点
Name:               vms21.rhce.cc
Roles:              control-plane
Labels:             beta.kubernetes.io/arch=amd64beta.kubernetes.io/os=linuxkubernetes.io/arch=amd64kubernetes.io/hostname=vms21.rhce.cckubernetes.io/os=linuxnode-role.kubernetes.io/control-plane=node.kubernetes.io/exclude-from-external-load-balancers=
Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/containerd/containerd.sock

查看某个Node节点的详细信息

Node的基本信息:名称、标签、创建时间等。
Node当前的运行状态:Node启动后会做一系列自检工作,比如磁盘空间是否不足(DiskPressure)、内存是否不足(MemoryPressure)、网络是否正常(NetworkUnavailable)、PID资源是否充足(PIDPressure)。在一切正常时才设置Node为Ready状态(Ready=True),表示Node处于健康状态,Master就可以在其上调度新的任务了(如启动Pod)。
Node的主机地址与主机名。
Node上的资源数量:描述Node可用的系统资源,包括CPU、内存数量、最大可调度Pod数量等。
Node可分配的资源量:描述Node当前可用于分配的资源量。
主机系统信息:包括主机ID、系统UUID、Linux Kernel版本号、操作系统类型与版本、Docker版本号、kubelet与kube-proxy的版本号等。
当前运行的Pod列表概要信息。
已分配的资源使用概要信息,例如资源申请的最小、最大允许使用量占系统总量的百分比。
Node相关的Event信息。

student@vms21:~$ kubectl describe nodes vms21.rhce.cc 
Name:               vms21.rhce.cc
Roles:              control-plane
Labels:             beta.kubernetes.io/arch=amd64beta.kubernetes.io/os=linuxkubernetes.io/arch=amd64kubernetes.io/hostname=vms21.rhce.cckubernetes.io/os=linuxnode-role.kubernetes.io/control-plane=node.kubernetes.io/exclude-from-external-load-balancers=
Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/containerd/containerd.socknode.alpha.kubernetes.io/ttl: 0projectcalico.org/IPv4Address: 192.168.26.21/24projectcalico.org/IPv4IPIPTunnelAddr: 10.244.43.192volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Sat, 12 Nov 2022 11:12:11 +0800
Taints:             node-role.kubernetes.io/control-plane:NoSchedule
Unschedulable:      false
Lease:HolderIdentity:  vms21.rhce.ccAcquireTime:     <unset>RenewTime:       Tue, 03 Jun 2025 09:19:50 +0800
Conditions:Type                 Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message----                 ------  -----------------                 ------------------                ------                       -------NetworkUnavailable   False   Tue, 03 Jun 2025 08:17:18 +0800   Tue, 03 Jun 2025 08:17:18 +0800   CalicoIsUp                   Calico is running on this nodeMemoryPressure       False   Tue, 03 Jun 2025 09:19:47 +0800   Sun, 24 Mar 2024 08:36:54 +0800   KubeletHasSufficientMemory   kubelet has sufficient memory availableDiskPressure         False   Tue, 03 Jun 2025 09:19:47 +0800   Sun, 24 Mar 2024 08:36:54 +0800   KubeletHasNoDiskPressure     kubelet has no disk pressurePIDPressure          False   Tue, 03 Jun 2025 09:19:47 +0800   Sun, 24 Mar 2024 08:36:54 +0800   KubeletHasSufficientPID      kubelet has sufficient PID availableReady                True    Tue, 03 Jun 2025 09:19:47 +0800   Sat, 01 Jun 2024 23:00:41 +0800   KubeletReady                 kubelet is posting ready status
Addresses:InternalIP:  192.168.26.21Hostname:    vms21.rhce.cc
Capacity:cpu:                2ephemeral-storage:  101633008Kihugepages-1Gi:      0hugepages-2Mi:      0memory:             3982424Kipods:               110
Allocatable:

查看default命名空间下的pod,不指定命名空间查询时就是查的default命名空间下的

student@vms21:~$ kubectl  get pod
NAME                                 READY   STATUS    RESTARTS   AGE
synergy-leverager-59c54694c9-7d7f4   0/1     Pending   0          60m
web-dep-5c7bf8cb6-rzztd              0/1     Pending   0          60m
student@vms21:~$ 

查看kube-system命名空间下的pod

student@vms21:~$ kubectl  get pod -n kube-system 
NAME                                       READY   STATUS        RESTARTS         AGE
calico-kube-controllers-8688f858d6-28547   0/1     Pending       0                62m
calico-kube-controllers-8688f858d6-z7mhj   1/1     Terminating   13 (2d15h ago)   86d
calico-node-mlzk2                          1/1     Running       16 (2d15h ago)   436d
calico-node-q2xb6                          0/1     Running       15 (67m ago)     436d
coredns-6766b7b6bb-8zdgt                   1/1     Terminating   10 (2d15h ago)   86d
coredns-6766b7b6bb-vmr7n                   1/1     Running       9 (67m ago)      86d
coredns-6766b7b6bb-xfq28                   1/1     Running       0                62m
etcd-vms21.rhce.cc                         1/1     Running       10 (67m ago)     86d
kube-apiserver-vms21.rhce.cc               1/1     Running       12 (67m ago)     86d
kube-controller-manager-vms21.rhce.cc      1/1     Running       10 (67m ago)     86d
kube-proxy-jlqh5                           1/1     Running       9 (67m ago)      86d
kube-proxy-xhbsx                           1/1     Running       11 (2d15h ago)   86d
kube-scheduler-vms21.rhce.cc               1/1     Running       11 (67m ago)     86d
metrics-server-589b9d98f6-mkg4h            1/1     Terminating   10 (2d15h ago)   86d
metrics-server-589b9d98f6-nmgft            0/1     Pending       0                62m
student@vms21:~$ 

ReplicaSet

简称rs,是deploy与pod的关联者。
pod的命名也是以deploy对应的rs对象名称为前缀的,可以很清晰地表明了一个rs对象创建了哪些Pod,经常在滚动升级时运维故障排查。

student@vms21:~$ kubectl get  rs
NAME                           DESIRED   CURRENT   READY   AGE
synergy-leverager-59c54694c9   1         1         0       78d
web-dep-5c7bf8cb6              1         1         0       86d
student@vms21:~$ 

http://www.hkcw.cn/article/XXONsejdvD.shtml

相关文章

Spring @Value注解的依赖注入实现原理

Spring Value注解的依赖注入实现原理 一&#xff0c;什么是Value注解的依赖注入二&#xff0c;实现原理三&#xff0c;代码实现1. 定义 Value 注解2. 实现 InstantiationAwareBeanPostProcessor3. 实现 AutowiredAnnotationBeanPostProcessor4. 占位符解析逻辑5. 定义 StringVa…

Oracle、PostgreSQL 与 MySQL 数据库对比分析与实践指南

一、三大数据库基础认知 Oracle数据库 基本概况 ✔ 厂商&#xff1a;Oracle Corporation ✔ 许可证&#xff1a;商业授权&#xff08;含Oracle XE免费版本&#xff09; ✔ 典型用户&#xff1a;大型银行、政府机构、电信运营商 核心特性 -- 示例&#xff1a;Oracle PL/SQL存…

protobuf arena实现概述

Arena是Protobuf的C特有特性&#xff0c;旨在优化内存分配效率&#xff0c;减少频繁的堆内存申请与释放。其核心机制如下&#xff1a; 预分配内存&#xff1a;Arena预先分配一大块连续内存&#xff08;称为Block&#xff09;&#xff0c;对象创建时直接从该内存块中分配&#x…

深入浅出图神经网络:从核心概念到实战落地

文章目录 1 引言1.1 发展脉络与现状1.2 面临挑战1.3 本文目标 2 图结构数据基础2.1 关键元素2.2 数学定义与常用符号2.3 图的常见类型2.4 为什么这些定义重要&#xff1f; 3 GNN 核心思想&#xff1a;消息传递机制3.1 消息函数 M E S S A G E ( k ) \mathrm{MESSAGE}^{(k)} ME…

6级阅读学习

先找连接词&#xff0c;and什么的 再找that什么的 最后找介词短语

当 AI 超越人类:从技术突破到文明拐点的 2025-2030 年全景展望

引言:当科幻照进现实的十年 2025 年的某个清晨,当你对着智能音箱说出 “帮我订一份早餐” 时,或许不会想到,这个简单指令背后的技术演进,正悄然推动人类文明走向一个前所未有的拐点。从弱人工智能(ANI)到强人工智能(AGI)的跃迁,不再是科幻小说的专属设定,而是现实世…

安全-JAVA开发-第一天

目标&#xff1a; 安装环境 了解基础架构 了解代码执行顺序 与数据库进行连接 准备&#xff1a; 安装 下载IDEA并下载tomcat&#xff08;后续出教程&#xff09; 之后新建项目 注意点如下 1.应用程序服务器选择Web开发 2.新建Tomcat的服务器配置文件 并使用 Hello…

Spring @Autowired自动装配的实现机制

Spring Autowired自动装配的实现机制 Autowired 注解实现原理详解一、Autowired 注解定义二、Qualifier 注解辅助指定 Bean 名称三、BeanFactory&#xff1a;按类型获取 Bean四、注入逻辑实现五、小结 源码见&#xff1a;mini-spring Autowired 注解实现原理详解 Autowired 的…

【AI News | 20250603】每日AI进展

AI Repos 1、dgm 是一个创新的自改进系统&#xff0c;通过迭代修改自身代码并利用编码基准验证每次更改&#xff0c;实现开放式进化。该系统旨在提升 AI 代理的代码修改能力。DGM 支持 OpenAI 和 Anthropic API&#xff0c;依赖 Docker 环境&#xff0c;并集成了 SWE-bench 和…

Rust 学习笔记:Cargo 工作区

Rust 学习笔记&#xff1a;Cargo 工作区 Rust 学习笔记&#xff1a;Cargo 工作区创建工作区在工作区中创建第二个包依赖于工作区中的外部包向工作区添加测试将工作区中的 crate 发布到 crates.io添加 add_two crate 到工作区总结 Rust 学习笔记&#xff1a;Cargo 工作区 随着项…

操作系统 第 39 章 插叙:文件和目录

两项关键操作系统技术的发展&#xff1a;进程&#xff0c;虚拟化的 CPU&#xff1b;地址空间&#xff0c;虚拟化的内存。 这一部分加上虚拟化拼图中最关键的一块&#xff1a;持久存储。永久存储设备永久地&#xff08;或至少长时间地&#xff09;存储信息&#xff0c;如传统硬盘…

楼宇自控系统联动暖通空调:解密建筑环境舒适度提升路径

走进现代建筑&#xff0c;无论是办公场所、商业中心&#xff0c;还是医院、酒店&#xff0c;人们对环境舒适度的要求越来越高。暖通空调作为调节建筑室内环境的关键设备&#xff0c;其运行效果直接影响着人们的体验。然而&#xff0c;传统暖通空调独立运行、调控不灵活等问题&a…

Freemarker快速入门

Freemarker概述 FreeMarker 是一款 模板引擎&#xff1a; 即一种基于模板和要改变的数据&#xff0c; 并用来生成输出文本(HTML网页&#xff0c;电子邮件&#xff0c;配置文件&#xff0c;源代码等)的通用工具。 它不是面向最终用户的&#xff0c;而是一个Java类库&#xff0c…

黑盒(功能)测试基本方法

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、黑盒测试的概念 1、什么是黑盒测试 &#xff08;1&#xff09;黑盒测试又称功能测试、数据驱动测试或基于规格说明书的测试&#xff0c;是一种从用户观点出…

[java八股文][JavaSpring面试篇]SpringCloud

了解SpringCloud吗&#xff0c;说一下他和SpringBoot的区别 Spring Boot是用于构建单个Spring应用的框架&#xff0c;而Spring Cloud则是用于构建分布式系统中的微服务架构的工具&#xff0c;Spring Cloud提供了服务注册与发现、负载均衡、断路器、网关等功能。 两者可以结合…

chromedriver 下载失败

问题描述 chromedriver 2.46.0 下载失败 淘宝https://registry.npmmirror.com/chromedriver/2.46/chromedriver_win32.zip无法下载 解决方法 找到可下载源 https://cdn.npmmirror.com/binaries/chromedriver/2.46/chromedriver_win32.zip &#xff0c;先将其下载到本地目录(D…

74. 搜索二维矩阵 (力扣)

给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。…

CppCon 2014 学习:Rolling Your Own Circuit Simulator

这段话讲述了一个背景和动机&#xff0c;目的是阐明为什么开源C库变得越来越复杂且在科学和工程领域有很大的应用潜力。 关键点&#xff1a; 开源库的成熟&#xff1a; 近年来&#xff0c;开源C库在许多科学和工程领域变得越来越成熟和强大。这些库不再仅仅是简单的工具&…

无人机自主降落论文解析

Dynamic Landing of an Autonomous Quadrotor on a Moving Platform in Turbulent Wind Conditions 滑膜控制器 这一部分详细介绍了边界层滑模控制器&#xff08;Boundary Layer Sliding Controller&#xff0c;BLSC&#xff09;的设计和实现&#xff0c;特别是如何将其应用于…

.NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想

在当今数据驱动的时代&#xff0c;向量数据库&#xff08;Vector Database&#xff09;作为一种新兴的数据库技术&#xff0c;正逐渐成为软件开发领域的重要组成部分。特别是在 .NET 生态系统中&#xff0c;向量数据库的应用为开发者提供了构建智能、高效应用程序的新途径。 一…