求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 
 

Kubernetes教程
Kubernetes概述
Kubernetes设计架构
kubernetes设计理念
创建Kubernetes集群
基于Docker本地运行Kubernetes
使用Vagrant
本地运行Kubrenetes v1.0
Google Computer Engine入门
AWS EC2快速入门
在Azure上使用CoreOS和Weave的 Kubernetes
从零开始k8s
CoreOS部署Kubernetes集群
CloudStack部署Kubernetes集群
vSphere部署Kubernetes集群
Ferdora部署Kubernetes集群
CentOS部署Kubernetes集群
Ubuntu物理节点上部署Kubernets集群
Mesos部署Kubernetes集群
Kubernetes用户指南:应用程序管理
名词解释 Pods
名词解释 Labels
名词解释:Namespace
名词解释 Replication Controller
名词解释:Node
名词解释:ReplicaSets
名词解释 Services
名词解释 Volumes
名词解释:PV/PVC/StorageClass
名称解释:Deployment
名词解释:Secret
名词解释:StatefulSet
名词解释:DaemonSet
名词解释:Service Account
名词解释:CronJob
名词解释:Job
名词解释:Security Context和PSP
名词解释:Resource Quotas
名词解释:Network Policy
名词解释:Ingress
名词解释:ThirdPartyResources
名词解释:ConfigMap
名词解释:PodPreset
配置Kubernetes
管理应用:部署持续运行的应用
Horizontal Pod Autoscaling
管理应用:连接应用
管理应用: 在生产环境中使用Pods和容器
Kubernetes UI
Kube-API Server
授权插件
认证插件
API Server端口配置
Admission Controller
Service Accounts集群管理指南
使用Kubernetes在云上原生部署cassandra
Spark例子
Storm 示例
示例: 分布式任务队列 Celery, RabbitMQ和Flower
Kubernetes在Hazelcast平台上部署原生云应用
Meteor on Kuberenetes
配置文件使用入门
环境向导示例
在Kubernetes上运行你的第一个容器
kubectl
安装和设置kubectl
kubectl annotate
kubectl api-versions
kubectl apply
kubectl attach
kubectl cluster-info
kubectl config
kubectl config set-cluster
kubectl config set-context
kubectl config set-credentials
kubectl config set
kubectl config unset
kubectl config use-context
kubectl config view
kubectl create
kubectl delete
kubectl describe
kubectl edit
kubectl exec
kubectl logs
kubectl version
故障排查
应用程序相关的故障排查
 
 

Admission Controller
 
1233 次浏览
55次  

什么是Admission Controller?

Admission Controller插件是一段代码,其拦截Kubernetes API服务的请求早于对象的持久性,但是在请求的认证和授权之后。插件代码位于API服务进程中,会编译成二进制以便此时使用。

集群在接受一个请求之前,每一个Admission Controller插件都会按序运行。如果这个序列中的某个插件拒绝该请求,则整个的请求都会被立刻拒绝,返回一个错误给用户。

Admission Controller插件在某些情况下也许会改变传进来的对象,配置系统默认值。此外,Admission Controller插件也许会改变请求处理中的部分相关资源去做些事情,比如增量配额的使用。

为什么使用Admission Controller?

Kubernetes中许多高级功能需要激活Admission Controller插件,以便更好的支持该功能。总之,没有正确配置Admission Controller插件的Kubernetes API服务是不完整的服务,很多用户期望的服务是不支持的。

如何接入该插件?

Kubernetes API 服务器提供了一个参数,admission-control,用逗号分隔,在集群中修改对象之前,调用许可控制选项的有序列表。

每个插件的功能是什么?

AlwaysAdmin插件

使用插件本身处理所有请求。

AlwaysDeny插件

拒绝所有请求,主要用于测试。

DenyExecOnPrivileged (废弃)插件

如果一个Pod有一个特权Container,该插件就会拦截所有的请求,在该Pod中执行一个命令。如果你的集群支持特权Container,而且你想要限制终端用户在那些Container中执行命令的权限,我们强烈建议使用该插件。

该功能已经合并到DenyEscalatingExec插件『参见下文“DenyEscalatingExec插件”』)

DenyEscalatingExec插件

该插件拒绝执行和附加令到允许主机访问的且有升级特权的Pod。包含含有运行特权的Pod,有访问主机PID Namespace的权限。

如果你的集群支持含有升级特权的Container,而且你想要限制终端用户在这些Container中执行命令的能力,我们强烈建议使用该插件。

ServiceAccount插件

这个插件实现了serviceAccounts的自动化。如果你打算使用Kubernetes ServiceAccount对象,我们强烈建议使用该插件。

SecurityContextDeny插件

SecurityContext定义了一些不适用于Container的选项,这个插件将会拒绝任何含有该SecurityContext的Pod。

ResourceQuota插件

该插件会检查传入的请求,确保其不违反任何Namespace中ResourceQuota对象枚举的约束条件。如果你在Kubernetes开发中正在使用ResourceQuota对象,你必须使用该插件实现配额约束条件。

强烈建议配置该插件在Admission Controller插件的序列中。This is so that quota is notprematurely incremented only for the request to be rejected later in admission control。(该句话翻译有待考虑)

LimitRanger插件

该插件会检查传入的请求,确保其不违反任何Namespace中LimitRange对象枚举的约束条件。如果你在Kubernetes开发中正在使用LimitRange对象,你必须使用该插件实现约束条件。LimitRange也经常用于Pod中默认资源请求,不会指定哪一个请求。目前,默认LimitRange,在默认的Namespace中对所有的Pod,需要0.1CPU。

NamespaceExists(废弃)插件

该插件会检查所有传入的请求,尝试在Kubernetes Namespace中创建资源,如果该Namespace不是当前创建的,该插件会拒绝这个请求。我们强烈建议使用该插件,确保数据的完整性。

Admission Controller的该功能已经并入NamespaceLifecycle插件。

NamespaceAutoProvision (废弃)插件

该插件会检查所有传入的请求,尝试在Kubernetes Namespace中创建资源,如果Namespace不存在,会创建一个新的Namespace。

我们强烈建议NamespaceExists插件优先级高于NamespaceAutoProvision插件。

NamespaceLifecycle插件

如果Namespace已经终止,则不能在其中创建新的Namespace,该插件会强制该操作。

删除一个Namespace会终止一系列操作,移除该Namespace中所有对象(Pod,服务等等)。为了加强该过程的完整性,我们建议使用该插件。

是否有推荐的插件集合?

是的。

Kubernetes1.0,我们强烈建议使用如下的许可控制插件集合(按顺序排列):

–admission_control= NamespaceLifecycle, NamespaceExists, LimitRanger, SecurityContextDeny ,ServiceAccount


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



1233 次浏览
55次
 捐助