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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

琦彦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值