Kubernetes资源对象:namespace讲解

简介: Kubernetes资源对象:namespace讲解

namespace

namespace 是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组。常见的 pod, service, replication controller 和 deployment 等都是属于某一个 namespace 的(默认是 default),而 node, persistent volume,namespace 等资源则不属于任何 namespace。


resourcequota

namespace作为抽象集合,那么resourcequota 就是对抽象集合的限制,resourcequota作为限制用户资源用量的一种机制,有着以下的资源配额配置:

  • 计算资源,包括 cpu 和 memory
  • cpu, limits.cpu, requests.cpu
  • memory, limits.memory, requests.memory
  • 存储资源,包括存储资源的总量以及指定 storage class 的总量
  • requests.storage:存储资源总量,如 500Gi
  • persistentvolumeclaims:pvc 的个数
  • .storageclass.storage.k8s.io/requests.storage
  • .storageclass.storage.k8s.io/persistentvolumeclaims
  • requests.ephemeral-storage 和 limits.ephemeral-storage (需要 v1.8+)
  • 对象数,即可创建的对象的个数
  • pods, replicationcontrollers, configmaps, secrets
  • resourcequotas, persistentvolumeclaims
  • services, services.loadbalancers, services.nodeports

配置了resourcequota,创建相关资源,若超过配额,则不允许创建


【拓展】serviceaccount

Serviceaccount 是为了方便pod里面的进程调用kubernetes API 或其他外部服务而设计的

Serviceaccount 特性

  1. 每个namespace都会自动创建一个default service account
  2. Token controller 检测 serviceaccount的创建,会为他们创建secret


Serviceaccount demo

apiVersion: v1
kind: ServiceAccount
metadata:
  name: default
  namespace: default
secrets:
- name: default-token-qffvz


因namespace 默认生成的serviceaccount,其name默认为default,因token controller 默认生成的secret,其name默认格式default-token-xxx

Kube-apiserver 配置--admission-control,来选择配置admission controller,admission controller可以认为是过滤器,他会根据某些策略过滤或修改请求数据,其中有个controller为ServiceAccount admission controller。


ServiceAccount admission controller

ServiceAccount admission controller 启用后:

每个pod在创建后都会自动创建 spec.serviceaccountName 为default (除非指定了其他的serviceaccount)

验证Pod 引用的serviceaccount 已经存在,否则拒绝创建该pod。

如果Pod 没有指定imagePullSecret ,则会把service account 的imagePullsecrets 加到pod中

每个pod创建都会将service account的token 和 ca.crt 挂载到

/var/run/secrets/kubernetes.io/serviceaccount/

实际操作

// 创建 名为test的namespace

kubectl create ns test

//  查看是否创建出该namespace

kubectl get ns

// 查看是否存在名为default的serviceaccount

kubectl get sa default –n test  -o yaml



相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
1月前
|
运维 Kubernetes 监控
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
48 0
|
2月前
|
存储 Kubernetes 负载均衡
Kubernetes的“厨房”:架构是菜谱,组件是厨具,资源对象是食材(下)
本文深入探讨了Kubernetes(K8s)的架构、核心组件以及资源对象。Kubernetes作为一个开源的容器编排系统,通过其独特的架构设计和丰富的组件,实现了对容器化应用程序的高效管理和扩展。通过本文的介绍,读者可以深入了解Kubernetes的架构、核心组件以及资源对象,从而更好地应用和管理容器化应用程序。Kubernetes的灵活性和可扩展性使得它成为容器编排领域的领先者,为企业提供了强大的容器运行环境。
|
1月前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
20 0
|
2月前
|
Kubernetes 网络协议 应用服务中间件
K8S管理核心资源的三种基本方法
K8S管理核心资源的三种基本方法
27 0
|
2月前
|
Kubernetes API 调度
Kubernetes的“厨房”:架构是菜谱,组件是厨具,资源对象是食材(上)
本文深入探讨了Kubernetes(K8s)的架构、核心组件以及资源对象。Kubernetes作为一个开源的容器编排系统,通过其独特的架构设计和丰富的组件,实现了对容器化应用程序的高效管理和扩展。通过本文的介绍,读者可以深入了解Kubernetes的架构、核心组件以及资源对象,从而更好地应用和管理容器化应用程序。Kubernetes的灵活性和可扩展性使得它成为容器编排领域的领先者,为企业提供了强大的容器运行环境。
|
3月前
|
Kubernetes 调度 微服务
K8s 生产最佳实践 - 限制 NameSpace 资源用量
K8s 生产最佳实践 - 限制 NameSpace 资源用量
|
3月前
|
Kubernetes Linux 调度
「译文」深入了解 Kubernetes 指标 - 第三部分 - 容器资源指标
「译文」深入了解 Kubernetes 指标 - 第三部分 - 容器资源指标
|
5月前
|
Prometheus Kubernetes Cloud Native
kubernetes|云原生|Deployment does not have minimum availability 的解决方案(资源隐藏的由来)
kubernetes|云原生|Deployment does not have minimum availability 的解决方案(资源隐藏的由来)
513 0
|
5月前
|
JSON Kubernetes Cloud Native
云原生|kubernetes|删除不掉的namespace 一直处于Terminating状态的解决方案
云原生|kubernetes|删除不掉的namespace 一直处于Terminating状态的解决方案
94 0
|
5月前
|
Kubernetes Linux Docker
Kubernetes学习笔记-Part.04 资源规划
Part.01 Kubernets与docker Part.02 Docker版本 Part.03 Kubernetes原理 Part.04 资源规划 Part.05 基础环境准备 Part.06 Docker安装 Part.07 Harbor搭建 Part.08 K8s环境安装 Part.09 K8s集群构建 Part.10 容器回退
55 1