Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes中的服务帐户和上下文有什么区别?_Kubernetes - Fatal编程技术网

Kubernetes中的服务帐户和上下文有什么区别?

Kubernetes中的服务帐户和上下文有什么区别?,kubernetes,Kubernetes,两者之间的实际区别是什么?什么时候我应该选择一个而不是另一个 例如,如果我想让项目中的开发人员只查看pod的日志。似乎可以通过角色绑定为服务帐户或上下文分配这些权限。什么是服务帐户? 从 用户帐户是针对人类的。服务帐户用于流程, 它们在豆荚中运行 用户帐户应为全局…服务 帐户具有名称空间 上下文 context与kubeconfig文件(~/.kube/config)相关。正如您所知,kubeconfig文件是一个yaml文件,context部分保存您的user/token和cluster引用c

两者之间的实际区别是什么?什么时候我应该选择一个而不是另一个


例如,如果我想让项目中的开发人员只查看pod的日志。似乎可以通过角色绑定为服务帐户或上下文分配这些权限。

什么是服务帐户?

用户帐户是针对人类的。服务帐户用于流程, 它们在豆荚中运行

用户帐户应为全局…服务 帐户具有名称空间

上下文

context
kubeconfig
文件(
~/.kube/config
)相关。正如您所知,
kubeconfig
文件是一个yaml文件,
context
部分保存您的
user/token
cluster
引用<当您有多个集群时,code>context非常有用,您可以在单个
kubeconfig
文件中定义所有
cluster
s和
user
s,然后您可以借助上下文在它们之间切换(例如:
kubectl config--kubeconfig=config demo-use-context-dev-frontend

您可以在上面看到,有3个上下文,保存
集群
用户
的引用

…如果我想让我的项目中的开发人员只需查看 豆荚的原木。似乎服务帐户或上下文都可以 通过角色绑定分配这些权限

如果正确,您需要创建
服务帐户
角色
(或
集群角色
),
角色绑定
(或
集群角色绑定
),并生成包含服务帐户令牌的
kubeconfig
文件,并将其交给开发人员

我有一个takes服务帐户名参数。请随意退房

更新:


如果要创建
角色
角色绑定

服务帐户:服务帐户表示pod中运行的进程的标识。当进程通过服务帐户进行身份验证时,它可以联系API服务器并访问集群资源。如果pod没有分配的服务帐户,它将获得默认的服务帐户

创建pod时,如果未指定服务帐户,则会在同一命名空间中自动为其分配默认服务帐户,并且您可以使用自动装入的服务帐户凭据从pod内部访问API

上下文:上下文只是一组包含Kubernetes群集、用户和命名空间的访问参数


当前上下文是当前kubectl的默认集群,所有kubectl命令都针对该集群运行。

它们是两个不同的概念。上下文很可能是指与
kubectl
配置相关的抽象,其中上下文可以与服务帐户相关联


出于某种原因,我假设
上下文
只是另一种身份验证方法。

上下文用于将kubectl指向一个特定集群,因此从角度来看,它们有不同的作用域,我不确定我是否理解。服务帐户也绑定到单个集群?您能否给出一个您所指的“上下文”的示例?容器上可以有securityContext,但它们与RBAC没有直接关系。@c4f4t0r引用的另一个上下文是kubectl配置,它也没有太多关系。
apiVersion: v1
clusters:
- cluster:
    certificate-authority: fake-ca-file
    server: https://1.2.3.4
  name: development
- cluster:
    insecure-skip-tls-verify: true
    server: https://5.6.7.8
  name: scratch
contexts:
- context:
    cluster: development
    namespace: frontend
    user: developer
  name: dev-frontend
- context:
    cluster: development
    namespace: storage
    user: developer
  name: dev-storage
- context:
    cluster: scratch
    namespace: default
    user: experimenter
  name: exp-scratch
current-context: ""
kind: Config
preferences: {}
users:
- name: developer
  user:
    client-certificate: fake-cert-file
    client-key: fake-key-file
- name: experimenter
  user:
    password: some-password
    username: exp