问题标签 [k8s-serviceaccount]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
79 浏览

kubernetes - 我在这个 kubernetes RBAC 设置中缺少什么?

我想运行一个 pod 来监听端点列表的更新(我还没有准备好采用端点集的 alpha 级功能,但我最终会扩展到那个。)

我有这个代码:

部署和运行时出现此错误:

我定义了以下角色和角色绑定并将其部署到“eng”命名空间:

我有以下角色绑定:

您会注意到,我将它应用于default命名空间和eng命名空间 serviceaccount default,尽管错误消息似乎表明它确实在命名空间中的defaultserviceaccount 中运行eng

我以前使用过按预期工作的 Role 和 RoleBinding 和 ServiceAccount 对象,所以我不明白为什么这不起作用。我错过了什么?

出于测试/复制目的,我通过kubectl cp将构建的二进制文件(cgo off)放入使用kubectl -n eng create deplpoyvanillaubuntu映像运行创建的容器中/bin/sh -c sleep 999999999,然后在该 pod-container 中执行 /bin/bash shell 来运行此程序。

0 投票
1 回答
405 浏览

amazon-s3 - 如何获取 aws-iam-token 以使用 IRSA 访问 S3?

我在 terraform 中创建了一个 IRSA 角色,以便 K8s 作业可以使用关联的服务帐户来访问 S3 存储桶,但我AccessDenied在作业中不断收到错误消息。

enable_irsa = true我首先在我们的模块中启用了我们的 EKS 集群中的 IRSA eks

然后我创建了一个简单aws_iam_policy的:

和一个iam-assumable-role-with-oidc

我使用 Helm 创建了一个 K8s 服务帐户,例如:

最后,使用来自作业模板的 K8s API 创建作业:

但是,当作业尝试获取指定的凭据时,指定的令牌不存在:

根据https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/中的描述,webhook 通常会在创建 pod 时创建这些凭据。但是,由于我们在 k8s 集群中按需创建新的 k8s 作业,我怀疑 webhook 没有创建任何此类凭据。

如何请求从 K8s 集群中创建正确的凭证?有没有办法从集群中实例化 webhook?

0 投票
1 回答
54 浏览

kubernetes - K8s - 跨命名空间使用服务帐户

我在默认命名空间中有一个服务帐户,它带有一个 clusterRoleBinding 到一个可以观察作业的 clusterRole。

我希望在任何命名空间中使用此服务帐户,而不必在每个新命名空间中定义一个新服务帐户。初始化容器使用服务帐户检查作业是否已完成,然后才允许继续部署。

不确定我需要提供哪些额外信息,但会根据要求提供。

0 投票
1 回答
83 浏览

openshift-3 - 为什么 openshift 在我创建服务帐户时会创建两个秘密

我创建了一个具有editopenshift 权限的服务帐户:

但是当我检查秘密时,我看到有关服务帐户的两个秘密,它们具有相同的结构但具有不同的值:

在此处输入图像描述

两个秘密有什么用,为什么我们不能通过一个秘密来处理呢?

0 投票
0 回答
82 浏览

kubernetes - 用户系统描述/扩展部署时出现禁止错误:node:ip.xx

我正在尝试从容器内部执行 K8S kubectl cmds(名称:autodeploy)。我已经配置了 ClusterRole、ServiceAccount 和 ClusterRoleBinding。但是在 K8S 部署上执行描述和缩放操作时出现 Forbidden 错误。

服务器错误(禁止): deployments.apps“test-deployment”被禁止:用户“system:node:ip-xx-xx-xx-xx.ec2.internal”无法在 API 组“apps”中获取资源“deployments”在命名空间“abc”中

自动部署容器也在同一个命名空间 abc 中

集群角色:

服务帐户:

集群角色绑定:

0 投票
1 回答
96 浏览

kubernetes - 为什么 kubernetes 默认服务帐号可以完全访问 docker 桌面上的 API?

据我所知,Kubernetes 中的默认服务帐户不应分配任何权限。但我仍然可以从我的 docker 桌面 k8s 上的 pod 执行以下操作:

这怎么可能?

此外,我发现每个 pod 都有不同的 SA 令牌 ( cat /var/run/secrets/kubernetes.io/serviceaccount/token) 值,并且与返回的值不同,kubectl describe secret default-token-cl9ds 难道不应该是一样的吗?

更新:

0 投票
1 回答
71 浏览

kubernetes - 使用 Workload Identity 将 GCP Cloud SQL 数据库导出到存储桶

我正在 GKE 中开发 Kubernetes CronJob 以从 GCP Cloud SQL 导出 SQL 数据库。我有一个 GCP Cloud SQL 实例,其 Google 服务帐户为p848827672298-eef1pd@gcp-sa-cloud-sql.iam.gserviceaccount.com. 如果我向此服务帐户添加访问和创建存储桶对象的权限,则运行该gcloud sql export sql ...命令有效:数据库将导出到我的存储桶。

但是,我想做的是使用Workload Identity将 Kubernetes 服务帐户绑定到p848827...Google 服务帐户,以便 CronJob 可以将 Cloud SQL 数据库导出到我的存储桶。我尝试通过运行以下命令来做到这一点:

(当然,我用适合我项目的值替换了PROJECT_IDK8_NAMESPACE和。)K8_SERVICE_ACCOUNT

这导致

如何将 Cloud SQL 服务帐号绑定到我的 Kubernetes 服务帐号?

0 投票
1 回答
81 浏览

java - 从 pod 访问 K8S API

我有一个主 pod,它访问并进行 Kubernetes API 调用以部署其他 pod(代码类似如下)。它工作正常。现在,我不想使用配置文件。我知道可以使用服务帐户。https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/。如何配置允许我的 pod 访问 API 的服务帐户(例如默认服务帐户)?

0 投票
1 回答
327 浏览

kubernetes - 记忆时服务帐户名称不会“粘”到 Argo 工作流程

我正在尝试在 Argo 中运行具有有限权限的工作流( https://github.com/argoproj/argo-workflows/blob/master/examples/memoize-simple.yaml )。我在执行命令和工作流本身中指定了具有必要权限的服务帐户,但工作流控制器日志显示不同的服务帐户。

这是执行命令

这是配置图

和工作流程本身

但是当工作流实际运行时,日志会显示不同的服务帐户名称

我的权限可以在这里找到

工作流控制器 pod 日志的前几行显示 Configmap 已正确加载

谁能告诉我如何解决这个问题?

0 投票
0 回答
47 浏览

azure - Azure devops 管道自托管 Kubernetes 集群身份验证问题

所以我最近一直在使用 Azure devops 管道和安装在我家服务器上的 centos vm 中的 kubernetes。到目前为止,一切都很好。我的问题是从 azure 管道连接到我的 k8s 集群,它似乎想使用 k8s 服务帐户进行连接。因此,我创建了一个服务帐户名称 azpipeline 只是为了进行测试,但是当我尝试将清单推送到 k8s 时出现此错误

有我的天蓝色管道代码:

我很确定这与在我的证书中链接我的权限有关,但是我不确定如何继续。我在网上找到的每个教程都是关于 azure aks 的。

顺便说一句,我的 docker 注册表也是在我的服务器上自行托管的,并且可以与 azure devops 一起正常工作。我的 docker 注册表和 k8s 集群都在带有域和 ssl 证书的 nginx 反向代理后面提供服务。