SREWorks云原生数智运维工程实践-Kubernetes资源编排之一:Pod YAML篇(上)

简介: SREWorks云原生数智运维工程实践-

 

作者:周虚(应金挺

 

SREWorks的开源吸引了大量用户来尝试部署和使用我们的产品,其中不乏一些初次接触Kubernetes的朋友。随着SREWorks云原生运维平台使用的持续深入,部分用户对于其中的原理和概念还存在一些困惑。因此,我们特推出《Kubernetes资源编排系列》,从底层的Pod YAML开始,逐步递进地讲解相关内容,希望能够解答大家对于Kubernetes的一些疑问,让用户对于云原生相关技术有更深入的了解。

 

一、 Pod整体结构

 

Pod YAML的整体结构,可以初步分为Resource资源、Object元数据、Spec规范、Status状态。本文将会围绕这四部分一一展开。

 

Resource:定义资源类型与版本,作为从Rest API中获取资源必带的属性。

Object:资源的元数据属性,明确资源的基本标识。

Spec/Status:

 

Spec:定义资源的期望状态,包括用户提供的配置、系统扩展的默认值,以及周边系统初始化或者更改值(scheduler、hpa等)。

Status:定义资源的当前状态,从而基于Spec定义的申明式配置,使pod不断朝期望状态靠近。

 image.png

 

 

 

 

二、 Resource资源-Rest API

 

image.png

 

k8s资源按照Scope可以分为Namespace资源、Cluster资源,Namespace在k8s可以认为是软租户的效果,实现资源层面的隔离,Pod资源就是属于Namespace资源,而Namespace不光体现在YAML参数中,也表现在k8s Rest API中。

 

Rest API的整体结构,以Pod举例

 

 

apiVersion: v1

kind: Pod

metadata:

  name: test-pod

  namespace: default

 

 

基于上述YAML,可以明确出namespace为default,name为test-pod的Pod资源对象,也就是明确出Pod为Namespace资源,该Pod资源对象对应的apiVersion为v1,后续k8s自内联相关的Group为/API,自然而然,我们就将该对象的数据分离出来了:

 

group:API

apiVersion:v1

kind:Pod

name:test-pod

namespace:default

 

基于上述的数据展示,apiserver自然而然会相应的注册出下列Rest API

 

/api/{apiVersion}/{kind}:该kind下的所有资源列表

/api/{apiVersion}/namespace/{namespace}/{kind}/:该kind下当前namespace的所有资源列表

/api/{apiVersion}/namespace/{namespace}/{kind}/{name}:该kind下当前namespace且名为name的资源

/api/{apiVersion}/namespace/{namespace}/{kind}/{name}/{subresource}:该kind下当前namespace且名为name的资源下子资源操作

 

后续基于扩展,我们就需要明确出method,这样一个真正完整的Rest API就诞生了。

 


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
Kubernetes 安全 Cloud Native
云原生|kubernetes|pod或容器的安全上下文配置解析
云原生|kubernetes|pod或容器的安全上下文配置解析
117 0
|
6月前
|
Kubernetes Cloud Native 调度
【云原生】深入掌握k8s中Pod和生命周期
【云原生】深入掌握k8s中Pod和生命周期
81 0
|
4月前
|
Kubernetes Cloud Native Docker
云原生|kubernetes|网络插件flannel二进制部署和calico的yaml清单部署总结版
云原生|kubernetes|网络插件flannel二进制部署和calico的yaml清单部署总结版
140 0
|
6月前
|
Kubernetes 应用服务中间件 nginx
kubernetes集群命令行工具kubectl介绍&yaml文件介绍-20230208
kubernetes集群命令行工具kubectl介绍&yaml文件介绍-20230208
|
17天前
|
JSON Kubernetes Go
IDEA使用Kubernetes插件编写YAML
IDEA使用Kubernetes插件编写YAML
30 0
IDEA使用Kubernetes插件编写YAML
|
4月前
|
Kubernetes 关系型数据库 MySQL
云原生|kubernetes|静态pod和静态pod的应用
云原生|kubernetes|静态pod和静态pod的应用
37 0
|
4月前
|
Kubernetes Cloud Native 调度
云原生|kubernetes |一文带你搞懂pod调度策略,驱逐策略,污点、容忍调度
云原生|kubernetes |一文带你搞懂pod调度策略,驱逐策略,污点、容忍调度
269 0
|
6月前
|
存储 Kubernetes 调度
【云原生】k8s核心概念—Pod & Controller & Service & Serect & ConfigMap介绍——20230213
【云原生】k8s核心概念—Pod & Controller & Service & Serect & ConfigMap介绍——20230213
123 0
|
8月前
|
Kubernetes 应用服务中间件 调度
Kubernetes 中几种常见的调度方式以及对应的 YAML 示例
在 Kubernetes 中,使用 YAML 文件来定义和配置 Pod。以下是几种常见的调度方式以及对应的 YAML 示例: 1. 基于资源需求与节点容量的调度: ```yaml apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: nginx resources: requests: cpu: "0.5" memory: "512Mi" limits: cpu
|
11月前
|
JSON Kubernetes Cloud Native
云原生之容器编排实践-SpringBoot应用以YAML描述文件部署pod到minikube
云原生之容器编排实践-SpringBoot应用以YAML描述文件部署pod到minikube
226 0

热门文章

最新文章

推荐镜像

更多