求知 文章 文库 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
故障排查
应用程序相关的故障排查
 
 

Service Accounts集群管理指南
 
1388 次浏览
49次  

这是对Service Accounts的集群管理指南

User Accounts和Service Accounts

基于以下原因,Kubernetes区分了User Accounts和Service Accounts:

User Accounts针对人,Service Accounts针对运行在Pod的进程;

User Accounts是全局的,其名字必须在一个集群的所有Namespace中是唯一的。未来的用户资源将不被命令,但是Service Accounts是可以被命名的。

通常情况下,集群的User Accounts可以从一个企业数据库同步。在企业数据库中,新建的账户需要特殊权限,而且绑定到复杂业务流程。新建Service Accounts可以更加轻量级,允许集群用户为特殊任务创建Service Accounts(比如,最小权限规则)。

对人类和Service Accounts的审核注意事项是不同的。

复杂系统的配置包含对系统组件的各种Service Accounts的定义。因为Service Accounts

可以创建ad-hoc,可以命名,配置是便携式的。

Service Accounts自动化

三个独立的组件合作实现对Service Accounts的自动化。

Service账户Admission Controller

Token控制器

Service Accounts控制器

Service Accounts Admission Controller

Pod的修改是Admission Controller插件实现的,该插件是apiserver的一部分。插件的创建和更新,会同步修改Pod。当插件状态是active(大多版本中,默认是active),创建或者修改Pod会遵循以下流程:

如果该Pod没有ServiceAccount集,将ServiceAccount设为default

ServiceAccount必须有存在的Pod引用,否则拒绝该ServiceAccount

如果该Pod不包含任何ImagePullSecrets,然后该ServiceAccount的ImagesPullSecrets会被加入Pod。

添加一个volume到该Pod,包含API访问的令牌。

添加一个volume到该Pod的每一个容器,挂载在/var/run/secrets/kubernetes.io/serviceaccount

Token Controller

TokenController做为controller-manager的一部分异步运行。

检查serviceAccount的创建,并且创建一个关联的Secret,允许API访问。

检查serviceAccount的删除,并且删除所有相关ServiceAccountToken Secrets

检查额外Secret,确保引用的ServiceAccount的存在,并且如果有必要则添加一个Token到该Secret。

检查Secret的删除,如果有必要,从相关的ServiceAccount中移除参考信息。

创建额外的API Token

一个控制循坏要确保每一个Service Accounts存在一个API Token。为一个Service Accounts创建一个额外的API Token,类型是ServiceAccountToken,含有一个注释去引用到对应的个Service Accounts。该控制器使用如下的Token去更新:

secret.json:
{
"kind": "Secret",
"apiVersion": "v1",
"metadata": {
"name": "mysecretname",
"annotations": {
"kubernetes.io/service-account.name": "myserviceaccount"
}
},
"type": "kubernetes.io/ service-account-token"
}
kubectl create -f ./secret.json
kubectl describe secret mysecretname

删除、废弃一个个Service Accounts Token

kubectl delete secret mysecretname

Service Account Controller

Service Account Controller管理Namespace中的ServiceAccount,确保每一个“default”的ServiceAccount存在于每一个活动空间中。


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

1元 10元 50元





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



1388 次浏览
49次
 捐助