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

Kubernetes笔记(1)Kubernetes入门

Kubernetes入门

  • 一、容器技术
  • 二、Kubernetes介绍
    • 1. Kubernetes核心资源
    • 2. Kubernetes集群架构
      • 2.1 Master
      • 2.2 Node

一、容器技术

随着技术发展,应用程序的部署经历了从物理机到虚拟机,再到容器的转变。

  • 物理机:物理机会运行多个程序,当一个程序占用大量资源时,会影响其他程序的性能和稳定性。
  • 虚拟机:物理机上可运行过个虚拟机,每个虚拟机有独立的操作系统和硬件资源,虚拟机之间完全隔离。不过虚拟机不够轻量级,还是太重了,而且一般镜像文件都很大,迁移不方便。
  • 容器:容器与宿主机共享内核,所以更加轻量级。容器的环境一致性和可移植性也更好些。最常用的容器技术是Docker,学习Kubernetes之前,一定先把常用的Docker命令学习实践下。

二、Kubernetes介绍

Docker非常适合单机管理多个容器,但生产环境中,为了高可用性和高并发,一个程序通常部署多个实例。在这种环境下,用Kubernetes更加合适,它提供了自动上线和回滚、容器自我修复、水平扩展、存储编排和配置管理等功能。

1. Kubernetes核心资源

Kubernetes中的基础概念和术语大多围绕资源来说的,它的资源类型很多,要入门需要先学习常见的资源:

  • Pod(容器组):Kubernetes中最小的部署单元,它可以包含一个或多个容器,它们之间可以共享网络和存储资源。每个节点的Pod数量不要超过110个。
  • Deployment(工作负载-部署):管理无状态应用程序的部署(如前端应用、API服务),Pod名称随机,重启后Pod名称会改变,Pod之间可互换。支持Pod多副本、滚动更新、副本数扩缩和回滚等功能,无顺序要求。
  • StatefulSet(工作负载-有状态集):管理有状态应用程序的部署(如 MySQL、Redis、Kafka),每个Pod有唯一标识(Pod名称有序,重启后Pod名称不变)、稳定的网络标识和独立的存储,并且是按照顺序创建、更新和删除Pod
  • Service(服务):定义一组Pod访问方式、通过负载均衡将请求转发到这些Pod上。
  • Namespace (命名空间):用于将集群资源划分为不同的逻辑组,提供资源隔离和多租户支持。
  • 存储和配置相关:如PersistentVolume PersistentVolumeClaim SecretConfigMap

Kubernetes中资源包括几个公共属性:版本(Version)、类别(Kind)、名称(Name)、标签、注解。

我们可以用YAMLJSON格式声明一个资源对象,每个资源对象都有自己特定的结构定义,比如Pod和Service的YAML文件的格式是不同的。定义好的资源对象会保存在etcd这非关系型数据库中,以便快速读写。

2. Kubernetes集群架构

K8s集群(Cluster)是由MasterNode组成的。

2.1 Master

Master节点负责管理和控制整个集群,相当于集群的大脑,在每个K8s集群中都需要一个或一组Master。在Master上运行一下关键进程:

  • kube-apiserver:提供RESTful API接口,是对资源进行增删改查的唯一入口,也是集群控制的入口
  • kube-controller-manager:所有资源对象的自动化控制中心,相当于“大总管”
  • kube-scheduler:负责资源调度(Pod调度)

2.2 Node

Node是工作节点,是真正干活的打工人。Master会把工作负载分配给Node,当某个Node宕机,其上的工作负载会被Master转移到其他Node上。在每个Node上运行着以下关键进程:

  • kubelet:负责Pod对应容器的创建、启停等任务,听Mater的指挥,实现集群管理的基本功能
  • kube-proxy:实现K8sService通信与负载均衡机制
  • 容器运行时(如Docker、Containerd):负责本机容器的创建和管理

Node可以在运行期间被动态添加到集群中,默认情况下,Nodekubelet会向Master注册自己,并定时向Master汇报自己情况(如CPU、内存使用)。如果超过指定时间不上报,会被Master判断为失联,Node状态标记为NotReady

查看集群有多少节点
kubectl get nodes查看某个Node的信息
kubectl describe node <node_name>

相关文章:

  • 解锁RAG:AI 2.0时代的“知识外挂”是如何炼成的?
  • 开源之夏2025-VisActor 社区题目及参赛者选/培介绍
  • 当K8S容器没有bash时7种高阶排查手段
  • ESP32_IDF_idf.py指令详解
  • 阿里云前端Nginx部署完,用ip地址访问却总访问不到,为什么?检查安全组是否设置u为Http(80)!
  • Element-Plus-X开源程序是Vue3 + Element-Plus 开箱即用的企业级AI组件库前端的解决方案
  • 判断两个结构是否相同的一种方法
  • EasyRTC嵌入式音视频通信SDK技术,助力工业制造多场景实时监控与音视频通信
  • k8s service的类型
  • Stream和Collections工具类
  • vue3搭建后台管理系统
  • 18个国内wordpress主题推荐
  • CSS分栏布局
  • Prometheus实战教程:k8s平台-使用文件服务发现案例
  • 依赖注入详解与案例(前端篇)
  • STM32--RCC--时钟
  • leetcode 24. 两两交换链表中的节点
  • Nacos源码—4.Nacos集群高可用分析三
  • 华为私有协议Hybrid
  • Java实用注解篇: @JSONField
  • “子宫内膜异位症”相关论文男性患者样本超六成?福建省人民医院展开调查
  • 景点变回监狱,特朗普下令重新启用“恶魔岛”
  • 图忆|上海车展40年:中国人的梦中情车有哪些变化(下)
  • “五一”假期首日跨区域人员流动预计超3.4亿人次
  • 陈颖已任上海黄浦区委常委、统战部部长
  • 过去24小时中美是否就关税问题进行过接触?外交部:没有