Kubernetes基本资源对象

本文详细介绍了Kubernetes中的核心资源对象,包括nodes、pods、services等,并阐述了其作用域和常用操作,如增删改查。此外,还讲解了namespace的使用以及labels和annotations在对象标识和元数据管理中的重要性。标签和注解提供了资源分类和附加信息记录的功能,对于管理和查询K8S资源至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:k8s常用资源对象

  • nodes
  • pods
  • namespaces
  • sa
  • services
  • ingresses
  • deployments
  • statefulsets
  • jobs
  • cronjobs
  • daemonsets
  • pv
  • pvc
  • roles
  • clusterroles
  • rolebindings
  • clusterrolebindings
  • networkpolicies
  • secrets
  • configmaps
  • storageclasses
  • resourcequota
  • limitrange

1.1:操作对象的动作

    • create
    • apply
    • delete kubectl delete nodes k8s02
    • edit
    • apply
    • describe kubectl describe nodes k8s02
  • 列出
    • get

1.2:常用参数

  • -n namespace
  • -A
  • -l key=value
  • –show-labels
  • -o wide
  • -o yaml

1.3:资源对象的作用域

  • namespace级别:namespace级别的资源对象必须位于一个namespace当中,如果创建时未指定namespace,则默认kubernetes会将其创建在一个名为default的namesapce当中
    • kube-system: 一般用于存放kubernetes的管理组件容器
    • default: 默认的namespace
    • image.png
  • 非namespace级别:非namespacke级别的资源对象是全局的,不属于任何一个namespace,无法通过namesapce实现隔离。

node

  • Node是Pod真正运行的主机,可以物理机,也可以是虚拟机。为了管理Pod,每个Node节点上至少要运行container runtime(比如docker或者rkt)、kubelet和kube-proxy服务。

image.png

namespace

  • Namespace是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组。
  • 常见的pods, services, replication controllers和deployments等都是属于某一个namespace的(默认是default),而node, persistentVolumes等则不属于任何namespace。
  • kube-system :一般用于存放kubernetes的管理组件容器
  • default:默认的namespace

labels

  • Label是一个 key=value的键值对,由用户指定,可以附加到K8S资源之上。
  • 给某个资源定义一个标签,随后可以通过label进行查询和筛选,类似SQL的where语句。
  • Label可以给对象创建多组标签
  • Label定义好后其他对象可以使用Label Selector来选择一组相同label的对象(比如ReplicaSet和Service用label来选择一组Pod)。Label Selector支持以下几种方式:
    • 等式,如app=nginx和env!=production
    • 集合,如env in (production, qa)
    • 多个label(它们之间是AND关系),如app=nginx,env=test
  • 标签尽可能做到见名知意
  • 一个资源对象可以打任意多个标签
  • kubernetes·通过标签对资源进行分类,方便用户查询
  • 创建标签:kubectl label node k8s02 disk=ssd
  • 删除标签:kubectl label node k8s02 env-
  • 查询标签:kubectl get nodes --show-labels
  • 修改标签:kubectl label node k8s02 disk=hdd --overwrite
  • 基于标签查询:kubectl get nodes -l disk=hdd 、kubectl get nodes -l disk

image.png

annotations

  • Annotations是key/value形式附加于对象的注解。不同于Labels用于标志和选择对象,Annotations则是用来记录一些附加信息,用来辅助应用部署、安全策略以及调度策略等。比如deployment使用annotations来记录rolling update的状态。
  • 创建注释:kubectl annotate node k8s02 name=k8s02
  • 删除注释:kubectl annotate node k8s02 name-
  • 查询注释:kubectl describe node k8s03
  • 修改注释:kubectl annotate node k8s03 name=k8s02 --overwrite

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

班婕妤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值