问题标签 [kubernetes-apiserver]

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 投票
0 回答
27 浏览

kubernetes - 对单个资源的多次快速更新合并为单个最新版本

我试图创建一个 kubernetes CRD 来管理我们系统上的一些资源但我注意到,如果这个 CRD 的 CRO 被快速操作(创建后删除、多次更新、创建后更新等),它们会折叠成一个单个最新版本(我不确定在 kubernetes 基础设施中的哪一点完成)。

是否可以禁用 CRO 操作的这种崩溃?

0 投票
1 回答
158 浏览

kubernetes - 如何在 Kubernetes 中检查 ServiceAccount 到命名空间的映射?

假设我有一个服务帐户绑定到某个命名空间中的只读角色ns1

如何仅通过使用kubectl或使用对 API 服务器的 REST 调用来将此令牌/用户/服务帐户映射到命名空间?简单来说,我想回答这个问题——这个 ServiceAccount 属于哪个命名空间?

如果我使用绑定到此服务帐户的令牌进行 REST API 调用以获取命名空间,它会给我一个 403 Forbidden。我可以是管理员并列出所有命名空间,但是我无法弄清楚问题中的映射。谢谢!

0 投票
1 回答
872 浏览

kubernetes - 我可以在没有任何 RBAC 的情况下运行 minikube 吗?

我们可以在没有 RBAC 的情况下运行 minikube。请参阅随附的屏幕截图。看起来 RBAC 是默认启用的。

在此处输入图像描述

0 投票
2 回答
9556 浏览

kubernetes - API Server:由于错误而无法验证请求:无效的不记名令牌

我设置了一个包含 3 个主节点和 2 个工作节点的示例 Kubernetes 集群。我试图将它连接到 OpenId 提供程序(在我的情况下为 Keycloak)。但是在查询 API 时,我从 kubectl 收到以下消息:

或通过卷曲:

在 API 服务器日志中它说

根据jwt.io ,我的令牌似乎是有效的。

API 服务器的配置

在 API 服务器中,我指定了以下参数:

我必须指定 CA 文件,因为用于 keycloak 的证书是自签名的

证书似乎可以工作,因为没有 CA 文件的 curl 会导致错误;不指定 CA 文件的地方:

智威汤逊令牌

我的 JWT 令牌的有效负载如下所示:

当我尝试使用生成的服务帐户(来自 kubernetes)的令牌登录时,一切正常。

附加信息

环境是通过 Kubespray 设置的,API 服务器参数按以下方式指定:

谢谢你的帮助。

0 投票
2 回答
74 浏览

kubernetes - 创建和删除 Pod 的步骤

我正在研究 Kubernetes 的主要组件。对于创建(删除)一个 pod 的概念,我暂时陷入了困境。在许多图表或图形中,pod 被描绘在工作节点内,因此我确信它们是直接在工作节点中创建的对象。

在深入这个概念时,我遇到了一些页面,它们将 pod 视为 API 服务器中的简单占位符。

在这个参考链接中,据说在第一点创建了 pod,在第四点将 pod 与来自 API 服务器的节点相关联。
在此参考链接中,据说“在 API 服务器上创建了一个新的 Pod 对象,但未绑定到任何节点。”
在这个参考链接中,据说“一个 Pod 有一个容器,它是由 Kubernetes API 生成的占位符”

这一切让我觉得 Pod 并不是在工作节点中实际创建的。有人可以给我一个解释来为我澄清这个想法吗?

0 投票
1 回答
805 浏览

kubernetes - 如何将 gRPC unix socket 传递给 Kubernetes api-server

我已经实现了一个 KMS 插件 gRPC 服务器。但是,我的 api-server 无法连接到路径“/opt/mysocket.sock”处的 Unix 套接字。

如果我将我的套接字绑定到“/etc/ssl/certs/”目录。“api-server”能够访问它并通过 Unix 套接字与我的 gRPC 服务器交互,并且插件按预期工作。

我如何将我的 unix 套接字传递给 api-server,而不会仅限于“/etc/ssl/certs/”目录。

我想使用其他标准目录,如“/opt”或“/var”等。

我已按照 Google 的以下指南实施 KMS 插件。 https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/

0 投票
2 回答
681 浏览

kubernetes - 如何使用rest api访问kubernetes中的命名空间?

我无法使用 rest api 获取命名空间列表,而 rest 端点是https://<localhost>:8001/api/v1/namespaces

使用这个 Kubernetes 文档

我正在使用邮递员。我将重复这些步骤:

  1. 创建了一个用户并赋予集群管理员权限:

kubectl create serviceaccount exampleuser

  1. 使用集群角色 cluster-admin 为我们的用户创建了一个角色绑定:

kubectl create rolebinding <nameofrolebinding> --clusterrole cluster-admin --serviceaccount default:exampleuser

  1. 使用以下方法检查角色绑定:

kubectl describe rolebinding <nameofrolebinding>

  1. 现在通过使用:

kubectl describe serviceaccount exampleuser kubectl describe secret exampleuser-xxxx-xxxx

我将使用我在这里得到的令牌来验证邮递员。

使用不记名令牌进行身份验证。

列出集群中所有命名空间的预期结果。喜欢 kubectl get namespaces。但收到如下警告。

我已经为用户使用了“cluster-admin”clusterrole,但仍然出现与身份验证相关的错误。请帮忙。

0 投票
2 回答
924 浏览

kubernetes - 如何使用 kubeadm-init 配置参数-“controlPlaneEndpoint”?

我想我的重点是如何使用这个配置参数——“controlPlaneEndpoint”。目前使用“controlPlaneEndpoint”有问题。 https://kubernetes.io/docs/setup/independent/high-availability/

我真的希望你能耐心看到我的实际情况。

首先,配置参数-“controlPlaneEndpoint”是vip还是负载均衡,对吧?所以,我用 4 层负载均衡配置了“controlPlaneEndpoint”;我试过 aws\ali。所有的结果表明在使用过程中会有超时的概率,并且在使用 kubeadm 安装过程中出现“nodexxx not found”的概率是 100%。

为什么会这样?如果我在参数-“controlPlaneEndpoint”中使用4层负载均衡,就会出现网络问题。比如我有三个master,ServerA、ServerB、ServerC,我在serverA上输入命令“kubectl get pod”。超时的概率为 33%。当 serverA 请求通过 4 层负载平衡定向到 ServerB 或 ServerC 时,一切正常。如果请求通过4层负载均衡定向到ServerA本身,必然会发生超时。

因为当ServerA既是服务器又是请求者时,不能使用4层负载均衡。这就是 4 层负载均衡的网络特性。同样的原因,当我使用 kubeadm 创建一个新集群时,我的第一个 master 是 serverA。虽然 ServerA 的 apiserver 已经在 docker 中运行并且我可以 telnet ServerA-IP:6443 successful ,但 kubelet 会检查 4 层负载平衡-IP:prot 参数-“controlPlaneEndpoint”。因此,当我配置“controlPlaneEndpoint”时,在使用 kubeadm 安装期间,“nodexxx not found”出现 100% 的时间。

在阿里等公有云环境下,无法使用keepalived+haproxy。这意味着我必须为 k8s-apiserver 使用 7 层负载均衡,如果我想使用参数-“controlPlaneEndpoint”。正确的?

如何使用第 7 层负载均衡配置 kubeadm-config?是 https,kubeadm 认证有问题。有文件吗?

0 投票
2 回答
358 浏览

kubernetes - 无法使用邮递员在 kubernetes 中修补工作

使用 postman 使用 post 方法在 kubernetes 中创建了一个作业,现在尝试使用 postman 使用 patch 方法修补相同的作业,我收到 400 个错误请求。

帖子标题:内容类型应用程序/yaml

发布方法主体:

补丁标头:内容类型应用程序/策略合并补丁+json

标题中的内容类型

补丁请求正文:

更改正文请检查链接。 补丁请求的正文

我所做的修改是将 backofflimit 更改为 5。我能够发布和修补其他资源,例如服务和部署,但我一直在修补工作,我对其他人也遵循完全相同的步骤。

错误我收到错误

0 投票
0 回答
57 浏览

kubernetes - metrics-server 和 prometheus-adapter 等metrics provider如何将自己的api注册到kubernetes apiserver

您可以通过 Kubernetes-apiserver 轻松访问指标,例如curl http://127.0.0.1:6443/apis/metrics.k8s.io/v1beta1/namespaces/kube-system/pods(在 kubectl 代理模式下)。与对象访问 API 不同,指标来自其他一些组件,例如 metrics-server( kubectl get deployment --namespace=kube-system metrics-server)。如何设计自己的指标提供程序,并在 Kubernetes-apiserver 上公开自己的 RESTful API。

我在 Kubernetes 和Prometheus Adapter中浏览了很多代码,但到目前为止还没有任何线索。

那么有没有关于这个主题的代码引用?提前谢谢:D