问题标签 [kube-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.
kubernetes - 来自 kubernetes api 服务的响应不一致,有时无法找到主机错误
我已经通过 kelsey tower 使用步骤作为 kubernetes 配置了 kubernetes 集群
不幸的是,当我点击 kubernetes 服务 ip 从工作节点检查版本时,我看到不一致的响应
这是我的集群详细信息
从工作节点,
Kube 代理系统配置
kube-proxy 配置 yaml 文件
kube-proxy 服务状态
这是有问题的输出。2,3 时间它给出正确的输出,然后它抛出错误,因为没有路由主机,它再次工作
curl: (7) 无法连接到 10.32.0.1 端口 443: No route to host
prometheus - 使用 PromQL 计算可用性
我将监控我的 Kubernetes 集群的可用性。Prometheus 服务器抓取kube-apiserver
指标并根据kube-apiserver
pod 可用性计算可用性百分比。有时kube-apiserver
pod 关闭,Prometheus 服务器根本无法抓取,有时 pod 启动并运行并服务请求,但由于网络连接或任何其他原因,Prometheus 服务器无法抓取指标。有没有办法使用 PromQL 来忽略任何值?还是计算 Kubernetes 集群可用性的更好方法?
kubernetes - Kubernetes 更改证书密码
我一直在研究与 kubeadm 相关的链接,以尝试更改我的 Kubernetes 集群证书上的密码。问题是我需要禁用 DES/3DES 以便此命令失败:
到目前为止我浏览过的一些链接(如果我把它们都列出来,这篇文章会太长):
我希望更改kube-apiserver
配置以使用这些标志(在/etc/kubernetes/manifests/kube-apiserver.yaml
文件中)会有所帮助,但它没有(请原谅拼写错误,我无法从必须使用的客户端复制/粘贴):
/etc/kubernetes/pki
我可以按照这些指南手动重新生成所有证书,但我希望坚持使用kubeadm
Kubernetes 提供的工具或其他工具来自动处理它。我找不到任何关于我自己手动生成每个文件的文档,这些文档是为完全不熟悉管理的人设置的。
感谢帮助、链接、建议等!不幸的是,在完成之前,我不允许使用集群甚至向人们展示功能。
components - 如何使用新的容器映像更新 openshift kube-apiserver 组件?
Openshift 提供更新方式,实时更新整个平台。而我(也许其他人也)只需要更新一些特定的组件。
可以通过管理 operator 并相应地设置镜像来更新控制台、openshift-apiserver 等组件与新的容器镜像。例如,要更新 openshift-apiservercomponent,以下步骤确实有效:
- 禁用对openshift apiserver operator 的管理
#oc patch openshiftapiservers.operator.openshift.io cluster --patch '{ "spec": { "managementState": "Unmanaged" } }' --type=merge
- 为 openshift apiserver 部署设置一个新的容器镜像
#oc set image deploy apiserver openshift-apiserver=registry.somecorp.com:5000/ocp4/openshift4:openshfit-apiserver-4.4.4-t1 -n openshift-apiserverb
- 检查并等待推出状态
#oc 推出状态 -w 部署/apiserver -n openshift-apiserver
而对于基本的 kube-apiserver 组件,情况有所不同。首先,禁用相关算子的方法不起作用,似乎 kubeapiserver 算子不支持“非托管”功能。
#oc patch kubeapiserver.operator.openshift.io cluster --patch '{ "spec": b { "managementState": "Unmanaged" } }' --type=merge KubeAPIServer "cluster" 无效:spec.managementState: Invalid值:“”:正文中的 spec.managementState 应匹配 '^(Managed|Force)$'
其次,似乎只是 pod 用于 kube-apiserver,而不是部署。虽然有办法为特定的 pod/容器设置图像,但我不知道如何应用设置。
#oc 设置镜像 pod kube-apiserver-master-0 kube-apiserver=registry.somecorp.com:5000/ocp4/openshift4:hyperkube-t1 -n openshift-kube-apiserver b pod/kube-apiserver-master-0 镜像已更新
有没有人可以帮助我找出在 openshift 系统中手动更新 kube-apiserver 的方法?感谢您提供任何信息。
kubernetes - 使用额外的 IP 地址公开 kube-apiserver
我在裸机集群上设置了一个 k8skubeadm init
集群。
我注意到kube-apiserver
它在私有 IP 上暴露了它的接口:
这是集群内的 kube 配置:
这对于在集群上本地使用来说很好kubectl
,但我想添加一个额外的接口来公开kube-apiserver
使用公共 IP 地址。最终,我尝试kubectl
从笔记本电脑进行配置以远程访问集群。
如何kube-apiserver
在外部 IP 地址上公开?
kubernetes - 禁止:用户,“代码”:使用 curl 访问 kube-apiserver 时出现 403 错误
Kubernetes 版本:v1.19.0
我创建了一个用户并使用角色 cluster-admin 执行了 clusterrolebinding。
我可以使用这个用户帐户运行 kubectl 并获取 pod 信息:
但是当我尝试使用 curl 访问 kube-apiserver 时,它显示禁止错误如下:
我已经重新验证了我为该用户帐户提供的 cacert 、证书和密钥。它们是正确的。
任何建议为什么会发生这种情况以及如何解决它。
kubernetes - kube-apiserver[4073]:错误:“kube-apiserver”不接受任何参数,得到 [“\\”]
重新启动 Kubernetes 主节点时。我得到以下错误
这是我的 kube-apiserver.service 配置
上面的配置有什么问题?使用的 VMware 工作站。我正在使用 Kubernetes 1.19。Ubuntu 18.04 RAM 16GB CNI:编织
有趣的事情发生了。我删除了一些参数 -> 然后重述了 kube-apiserver -> 然后粘贴了相同的配置文件 -> 然后再次重述了 kube-apiserver -> kube-apiserver 工作得很好。那么当我启动我的 vm 时发生了什么问题?
kubernetes - NodePort 与 kube-apiserver 的 hostPort 冲突
我有一个健康的 k8s 集群。kube-apiserver 正在使用端口8443。然后我做类似下面的事情。我也创建/编辑一个服务并分配一个固定的 nodePort 8443。
集群变得无法访问。如果我运行命令kubectl get pods
。它返回Unable to connect to the server: EOF
因为我需要运行 kubectl 命令来更改 nodePort。但我不能使用 kubectl。它变成了一个死循环。我有 2 个问题。
- 我该怎么做才能恢复我的 k8s 集群?
- 为什么 kube-apiserver 或其他组件不会阻止我将 nodePort 更改为8443?指示端口8443已在使用中。
kubernetes - 如何正确设置 --kubelet-certificate-authority apiserver 参数?
我正在使用KubeSpray在 AWS 上配置一个两节点集群。默认--kubelet-certificate-authority
不使用该参数。但是,我想设置它。
我不知道正确的设置--kubelet-certificate-authority
。当我将其设置为时,/etc/kubernetes/pki/ca.crt
我会在日志中看到如下消息:
为了创建一个隔离的测试环境,我通过 SSH 连接到我的控制器节点以运行此命令,该命令在4667
. 我直接从/etc/kubernetes/manifests/kube-apiserver.yaml
. 您需要调整该值以匹配您自己的集群。我故意在交互模式下运行容器,以便我可以看到日志消息。
现在可以再次通过 SSH 连接到控制器并用于curl
与自定义 apiserver 容器进行交互。
- 将 APISERVER 变量设置为指向控制器节点。我正在使用
advertise-address
上面参数的值。
- 获得令牌。
- 发出 api 请求。此请求将失败,因为“无法识别对等证书颁发者。”。
docker 日志中将出现一条错误消息。它看起来像这样:
- 现在使用
-k
curl 参数绕过识别问题。
您将看到请求正常工作。但是,我不想使用该-k
参数。所以我尝试使用来自 apiserver 的证书颁发机构。
- 从 apiserver 获取证书颁发机构。
- 将证书颁发机构文件用于 api 请求。
更新
根据 Wiktor 的回复提示的想法,我添加了 /etc/kubernetes/ssl/ca.crt 作为证书颁发机构。并在我的curl
命令中使用了该文件。
这行得通。