问题标签 [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.
kubernetes - 我在这个 kubernetes RBAC 设置中缺少什么?
我想运行一个 pod 来监听端点列表的更新(我还没有准备好采用端点集的 alpha 级功能,但我最终会扩展到那个。)
我有这个代码:
部署和运行时出现此错误:
我定义了以下角色和角色绑定并将其部署到“eng”命名空间:
我有以下角色绑定:
您会注意到,我将它应用于default
命名空间和eng
命名空间 serviceaccount default
,尽管错误消息似乎表明它确实在命名空间中的default
serviceaccount 中运行eng
。
我以前使用过按预期工作的 Role 和 RoleBinding 和 ServiceAccount 对象,所以我不明白为什么这不起作用。我错过了什么?
出于测试/复制目的,我通过kubectl cp
将构建的二进制文件(cgo off)放入使用kubectl -n eng create deplpoy
vanillaubuntu
映像运行创建的容器中/bin/sh -c sleep 999999999
,然后在该 pod-container 中执行 /bin/bash shell 来运行此程序。
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?
kubernetes - K8s - 跨命名空间使用服务帐户
我在默认命名空间中有一个服务帐户,它带有一个 clusterRoleBinding 到一个可以观察作业的 clusterRole。
我希望在任何命名空间中使用此服务帐户,而不必在每个新命名空间中定义一个新服务帐户。初始化容器使用服务帐户检查作业是否已完成,然后才允许继续部署。
不确定我需要提供哪些额外信息,但会根据要求提供。
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 中
集群角色:
服务帐户:
集群角色绑定:
kubernetes - 为什么 kubernetes 默认服务帐号可以完全访问 docker 桌面上的 API?
据我所知,Kubernetes 中的默认服务帐户不应分配任何权限。但我仍然可以从我的 docker 桌面 k8s 上的 pod 执行以下操作:
这怎么可能?
此外,我发现每个 pod 都有不同的 SA 令牌 ( cat /var/run/secrets/kubernetes.io/serviceaccount/token
) 值,并且与返回的值不同,kubectl describe secret default-token-cl9ds
难道不应该是一样的吗?
更新:
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_ID
、K8_NAMESPACE
和。)K8_SERVICE_ACCOUNT
这导致
如何将 Cloud SQL 服务帐号绑定到我的 Kubernetes 服务帐号?
java - 从 pod 访问 K8S API
我有一个主 pod,它访问并进行 Kubernetes API 调用以部署其他 pod(代码类似如下)。它工作正常。现在,我不想使用配置文件。我知道可以使用服务帐户。https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/。如何配置允许我的 pod 访问 API 的服务帐户(例如默认服务帐户)?
kubernetes - 记忆时服务帐户名称不会“粘”到 Argo 工作流程
我正在尝试在 Argo 中运行具有有限权限的工作流( https://github.com/argoproj/argo-workflows/blob/master/examples/memoize-simple.yaml )。我在执行命令和工作流本身中指定了具有必要权限的服务帐户,但工作流控制器日志显示不同的服务帐户。
这是执行命令
这是配置图
和工作流程本身
但是当工作流实际运行时,日志会显示不同的服务帐户名称
我的权限可以在这里找到
工作流控制器 pod 日志的前几行显示 Configmap 已正确加载
谁能告诉我如何解决这个问题?
azure - Azure devops 管道自托管 Kubernetes 集群身份验证问题
所以我最近一直在使用 Azure devops 管道和安装在我家服务器上的 centos vm 中的 kubernetes。到目前为止,一切都很好。我的问题是从 azure 管道连接到我的 k8s 集群,它似乎想使用 k8s 服务帐户进行连接。因此,我创建了一个服务帐户名称 azpipeline 只是为了进行测试,但是当我尝试将清单推送到 k8s 时出现此错误。
有我的天蓝色管道代码:
我很确定这与在我的证书中链接我的权限有关,但是我不确定如何继续。我在网上找到的每个教程都是关于 azure aks 的。
顺便说一句,我的 docker 注册表也是在我的服务器上自行托管的,并且可以与 azure devops 一起正常工作。我的 docker 注册表和 k8s 集群都在带有域和 ssl 证书的 nginx 反向代理后面提供服务。