当前位置: 首页 > news >正文

K8s基础一

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.lqws.cn/news/87247.html

相关文章:

  • k8s更新证书
  • 【信创-k8s】海光/兆芯+银河麒麟V10离线部署k8s1.31.8+kubesphere4.1.3
  • 03.搭建K8S集群
  • IPython 使用技巧整理
  • Impromptu VLA:用于驾驶视觉-语言-动作模型的开放权重和开放数据
  • 基于wifi的室内定位算法设计与实现
  • 25年宁德时代新能源科技SHL 测评语言理解数字推理Verify题库
  • 操作系统:生态思政
  • Java基础(二):八种基本数据类型详解
  • [蓝桥杯]路径之谜
  • 从 iPhone 备份照片: 保存iPhone图片的5种方法
  • 【Pandas】pandas DataFrame rename_axis
  • vue-15 (实践练习:使用路由防护实现身份验证和授权)
  • MTK的Download agent是什么下载程序?
  • 【开源工具】Python+PyQt5打造智能桌面单词记忆工具:悬浮窗+热键切换+自定义词库
  • 【开源工具】超全Emoji工具箱开发实战:Python+PyQt5打造跨平台表情管理神器
  • 【C++高并发内存池篇】性能卷王养成记:C++ 定长内存池,让内存分配快到飞起!
  • 第三章 3.MAC Address(CCNA)
  • Redis 缓存粒度如何控制?缓存整个对象还是部分字段?
  • 写读后感的时候,可以适当地引用书中的内容吗?
  • C++智能指针的知识!
  • 2048小游戏C++板来啦!
  • 第一篇:揭示模型上下文协议(MCP):AI的通用连接器
  • JavaSE:面向对象进阶之内部类(Inner Class)
  • STM32 智能小车项目 L298N 电机驱动模块
  • “application/json“,“text/plain“ 分别表示什么
  • 源码解析(三):Stable Diffusion
  • MySQL——事务
  • Java转义字符
  • PostgreSQL的扩展 insert_username