问题标签 [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.
docker - Kubernetes 环境变量更新策略
我正在编写一个动态部署 kubernetes 资源的应用程序。在每次部署时,我在 golang api 中设置环境变量Container
(DeploymentSpec
请参阅https://godoc.org/k8s.io/api/core/v1#Container)。有什么原因我没有在 pod 上看到这些变量的变化?
例如,当我将代码库更改为 setFOO: "hi"
时FOO: "hello"
,该变量不会在应用程序中更新。
根据其他答案,重要的是要注意我对环境变量的“检查”是在 docker 运行时发生的。也就是为了调试,我是跑printenv
在CMD
kubernetes容器的领域。
Create()
在部署之前打印的环境变量片段:
非常感谢任何潜在客户!
google-chrome - kubernetes 仪表板可通过 curl 访问,但不能通过 kubectl 代理访问 chrome/firefox
我有两个非常不同的集群(一个带有仪表板 1.0 的 kubernetes 1.13 并在 aws 中使用 kops 创建;另一个使用带有仪表板 2.0 的 kubernetes 1.14 并使用 EKS 创建)两者都有相同的问题,我使用 kubectl 1.17 与两者进行交互。一旦开始kubectl proxy
,我就可以通过curl访问我刚刚安装的仪表板。例如,在较新的 EKS 集群中使用仪表板 2.0:
在一个终端中:
在另一个终端
显然仪表板服务是可访问的并响应请求。其他集群/仪表板组合的 html 有点不同,但仍然没有错误。
但是,来自 chrome 或 firefox 的完全相同的 URL(当然在同一主机上运行)给了我一个错误:
仪表板 2.0 本身似乎很高兴:
有什么想法有什么问题吗?它怎么可能与 curl 而不是 Web 浏览器一起使用?
更新信息:
我检查了ifconfig:
使用以下 kubectl proxy 命令,我也可以在浏览器中访问仪表板:
在一个终端中:
然后chrome浏览器到http://172.17.0.2:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/显示登录界面。
这两个标志都是必需的,否则 curl 和浏览器都不会工作(如果我不使用响应是禁止的--accept-hosts
- 尽管该响应来自服务,所以它至少比使用环回时更好)。
用 localhost 替换 127.0.0.1 没有帮助。只有使用完整的代理命令和http://172.17.0.2:8001/api才能访问 api 服务器。
有谁知道为什么 chrome 不能处理 127.0.0.1,而 curl 可以,为什么在 curl 172.12 IP 而不是使用 127 IP 时需要接受主机?
kubernetes - 针对 kubernetes apiserver 的 WATCH 操作的 prometheus 报告的 0 响应代码
我们最近将我们的 kubernetes 控制平面从 1.13 版本升级到 1.16
之后,我们开始在 prometheus 报告仪表板上看到针对 apiserver 的 WATCH 操作的 0(零)响应代码。
我尝试运行 kubectl 命令来观看具有特定标签的 pod 子集并收到 200OK,因此我无法从我的最终重现它。
我们使用的指标是
我尝试寻找可能是什么原因的任何线索,我发现的唯一线索是https://github.com/kubernetes/kubernetes/issues/16686
这是我们应该担心的事情,还是只是新 apiserver 的细微差别?
谢谢你的帮助!
kubernetes - 使用检索集群详细信息时出现禁止错误使用 REST Kubernetes API
尝试使用以下文档的 kubernetes API 检索 kubernetes 集群的详细信息,例如命名空间和 pod 详细信息
接口:
<id_token>
- 生成的 IAM 令牌。
将在启用 SSL 证书的邮递员上收到证书错误,否则会抛出 403 Forbidden 错误
结果禁用 SSL 证书验证。
尝试使用 curl 会导致相同的错误
带有 API 调用的 chrome 上的错误
我将如何访问此 API?
kubernetes - 我能否保证“kubernetes”服务在创建集群后保持一致的 ClusterIP,即使我尝试修改或重新创建它?
我们的一些 Pod 通过“kubernetes”服务访问 Kubernetes API。我们正在应用允许访问 K8S API 的网络策略,但我们发现完成此操作的唯一方法是查询“kubernetes”服务的 ClusterIP,并将其作为 ipBlock 包含在出口规则中在网络策略中。
具体来说,这个值:
“kubernetes”服务 ClusterIP 是否有可能更改为不同于在集群创建期间初始化的值?如果是这样,我们的配置可能会中断。我们希望这是不可能的,但我们正在寻找官方支持文档。
kubernetes - 为 GKE 部署、服务等启用 REST API
我正在尝试使用 REST API 在 GKE 上部署应用程序。但是,GKE 文档中的所有内容都混杂在一起,并且不清楚如何启用 Kubernetes REST API 访问。
这里有没有人清楚地知道如何在 Google Cloud 上的 Kubernetes 集群上创建部署?如果是,我很想知道启用它的详细步骤。目前,这就是我得到的。
https://xx.xx.xx.xx/apis/apps/v1/namespaces/default/deployments/nginx-1
尽管授权令牌有效,GET 调用仍给出以下 JSON 输出
然而,管理 API 似乎已启用:
按照此链接上的说明并执行以下命令:
给出所需的输出。
kubernetes - 如何更新本地 Kubernetes API 服务器以使用 Dex 启用 OIDC?
我们的数据中心有一个本地 Kubernetes 部署。我刚刚为 Dex 部署了 pod,配置连接到我们的 LDAP 服务器以允许通过 Dex 进行基于 LDAP 的身份验证,运行测试并能够检索 OpenID 连接令牌进行身份验证。
现在我想更改我们的本地 k8s API 服务器启动参数以启用 OIDC 并将其指向 Dex 容器。
如何在不停机的情况下对我们的 k8s 集群启用 OIDC 到 API 服务器启动命令?正在阅读此文档https://kubernetes.io/docs/reference/access-authn-authz/authentication/但该网站只是说“启用所需的标志”而没有这些步骤
谢谢!
python - Kubernetes API 创建部署失败
https://github.com/kubernetes-client/python/blob/master/examples/ingress_create.py
以上是我参考的链接
测试3.py:
然后我得到了错误:
错误信息提示我空选择器对部署无效,但我打印的选择器也很有价值。API里面应该有value,但是报错,没有成功,不知道为什么。
yaml文件:
kubernetes - K8s: gets HTTP 415 for PATCH request to Kubernetes REST API server
I have seen that PATCH request is supported in Kubernetes REST API reference manual from this link: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#patch-ingress-v1beta1-networking-k8s-io
However, I get HTTP 415 Unsupported Media Type error when sending PATCH request to Kubernetes cluster through Kubernetes REST API server in Postman.
I want to update our specified ingress partially outside the cluster. For this purpose, I added a snapshot from my trial.
Kubernetes REST API server Ingress PATCH Request
Our Kubernetes version is:
Patching JSON:
I can use GET, POST, PUT and DELETE successfully, in PATCH request I can't get the same results. What could be the root cause of the problem? What are your ideas?
kubernetes - OPA Gatekeeper 可以用来审计 K8s PodDisruptionBudget 状态字段吗?
我们希望使用 OPA 网守来审计 K8s PodDisruptionBudget (PDB) 对象。特别是,我们正在寻求审计该领域disruptionsAllowed
内的数量status
。
我相信这个字段在准入时将不可用,因为一旦 PDB 应用于集群,它就会由 apiserver 计算和添加。
似乎对于例如 Pod,该status
字段作为AdmissionReview
对象 [1] 的一部分传递。在该特定示例中,似乎只有准入前状态字段才能进入AdmissionReview
对象。
1.) 对于 PDB,是否可以审计当前的集群内状态字段?
2.) 考虑到 OPA Gatekeeper 作为准入控制器的预期用途,这是否会被视为反模式?
[1] https://www.openpolicyagent.org/docs/latest/kubernetes-introduction/