Yin的笔记本

vuePress-theme-reco Howard Yin    2021 - 2025
Yin的笔记本 Yin的笔记本

Choose mode

  • dark
  • auto
  • light
Home
Category
  • CNCF
  • Docker
  • namespaces
  • Kubernetes
  • Kubernetes对象
  • Linux
  • MyIdeas
  • Revolution
  • WebRTC
  • 云计算
  • 人工智能
  • 分布式
  • 图像处理
  • 图形学
  • 微服务
  • 数学
  • OJ笔记
  • 博弈论
  • 形式语言与自动机
  • 数据库
  • 服务器运维
  • 编程语言
  • C
  • Git
  • Go
  • Java
  • JavaScript
  • Python
  • Nvidia
  • Shell
  • Tex
  • Rust
  • Vue
  • 视频编解码
  • 计算机网络
  • SDN
  • 论文笔记
  • 讨论
  • 边缘计算
  • 量子信息技术
Tag
TimeLine
About
查看源码
author-avatar

Howard Yin

304

Article

153

Tag

Home
Category
  • CNCF
  • Docker
  • namespaces
  • Kubernetes
  • Kubernetes对象
  • Linux
  • MyIdeas
  • Revolution
  • WebRTC
  • 云计算
  • 人工智能
  • 分布式
  • 图像处理
  • 图形学
  • 微服务
  • 数学
  • OJ笔记
  • 博弈论
  • 形式语言与自动机
  • 数据库
  • 服务器运维
  • 编程语言
  • C
  • Git
  • Go
  • Java
  • JavaScript
  • Python
  • Nvidia
  • Shell
  • Tex
  • Rust
  • Vue
  • 视频编解码
  • 计算机网络
  • SDN
  • 论文笔记
  • 讨论
  • 边缘计算
  • 量子信息技术
Tag
TimeLine
About
查看源码
  • Kubernetes(k8s)对象

Kubernetes(k8s)对象

vuePress-theme-reco Howard Yin    2021 - 2025

Kubernetes(k8s)对象


Howard Yin 2020-07-29 13:00:02 Kubernetes设计思路概念容器编排Kubernetes对象

在 Kubernetes 系统中,Kubernetes 对象 是持久化的实体。Kubernetes 使用这些实体去表示整个集群的状态。特别地,它们描述了如下信息:

  • 哪些容器化应用在运行(以及在哪个 Node 上)
  • 可以被应用使用的资源
  • 关于应用运行时表现的策略,比如重启策略、升级策略,以及容错策略

Kubernetes 对象是 “目标性记录” —— 一旦创建对象,Kubernetes 系统将持续工作以确保对象存在。通过创建对象,本质上是在告知 Kubernetes 系统,所需要的集群工作负载看起来是什么样子的,这就是 Kubernetes 集群的期望状态(Desired State)。

k8s有四种基本对象:

  • Pod
  • Service
  • Volume
  • Namespace

在这些基本对象之上,k8s还包含大量的被称作控制器(Controller)的高级抽象,用于提供额外的功能和方便使用的特性,包括:

  • Deployment
  • DaemonSet
  • StatefulSet
  • ReplicaSet
  • Job

k8s对象有三种属性:

  • metadata(对象元数据):帮助识别对象唯一性的附加数据
  • spec(对象规约):由用户定义,表示这个对象的期望状态(Desired State)
  • status(对象状态):由k8s在运行时给出,表示这个对象的实际状态(Actual State)

其中,metadata、spec这两种属性由用户指定,写在一个yaml或json文件中,使用kubectl apply -f <对象定义文件名>创建对象。

在使用文件定义对象时,除上述metadata和spec字段外,还需要:

  • apiVersion:告诉k8s对象要使用的k8s api版本,不同的版本所支持的k8s对象功能和属性定义有所不同,与k8s对象抽象逻辑无关。
  • kind:指定对象的类型

例如一个典型Deployment对象的yaml格式对象定义文件application/deployment.yaml如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

输入指令kubectl apply -f application/deployment.yaml即可创建这个Deployment。

帮助我们改善此页面!
创建于: 2020-07-29 13:00:23

更新于: 2020-07-29 13:00:23