问题标签 [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.
kubeadm - kube-apiserver - 无效的承载令牌,令牌已失效
当我尝试启动 kube-apiserver 时,我得到以下日志:
当我尝试运行时kubectl get pods
::
我的 api 服务器配置:
Kube 控制器配置:
1.15.0
我在版本中使用 k8s
我想知道根本原因是什么 - 我如何刷新令牌以使 apiserver 正常运行?
kubernetes - kube-apiserver 如何知道 kubelet 服务/进程在工作节点中运行的位置?
我已经在虚拟框中引导(通过 kelseyhightower 艰难地使用 kubernetes)一个 k8s 集群,其中包含 2 个主服务器和 2 个工作人员以及 1 个用于 2 个主服务器的 kube-apiserver 的 LB。顺便说一句,kubelet 不在 master 中运行,仅在工作节点中运行。现在集群已启动并正在运行,但我无法理解 master 上的 kube-apiserver 是如何连接到 kubelet 以获取节点的指标数据等的。请告诉我详细信息吗?
kubernetes - kube-api 服务器未启动 (CrashLoopBackOff)
我无法在我的 1 个主节点集群上启动 kube-apiserver。kubelet 一直在尝试启动服务,但总是遇到 CrashLoopBackOff。我尝试使用该docker run
命令运行容器并且我得到以下日志我不明白为什么我看不到服务6443
或443
在我看到的时候听不到netstat
。
编辑更新版本并不能解决问题
kubernetes - kube-state-metrics 的错误“没有与所有谓词匹配的节点:MatchNodeSelector (7), PodToleratesNodeTaints (1)”
对于 kube-state-metrics,我收到错误消息“没有可用的节点与所有谓词匹配:MatchNodeSelector (7)、PodToleratesNodeTaints (1)”。请指导我如何解决此问题
admin@ip-172-20-58-79:~/kubernetes-prometheus$ kubectl describe po -n kube-system kube-state-metrics-747bcc4d7d-kfn7t
这个问题与节点上的内存有关吗?如果是,我该如何确认?我检查了所有节点,只有一个节点似乎在 80% 以上,剩余的内存使用率在 45% 到 70% 之间
以下屏幕截图显示了 kube-state-metrics (0/1 up):
此外,Prometheus 显示 kubernetes-pods (0/0 up) 是由于 kube-state-metrics 不起作用还是其他原因?和上面截图中看到的 kubernetes-apiservers (0/1 up) 为什么不起来?如何解决它?
admin@ip-172-20-58-79:~/kubernetes-prometheus$ sudo tail -f /var/log/kube-apiserver.log | grep 错误
MaggieO 回复后更新:
此外,我想将此命令添加到上面的 deployment.yaml 但出现缩进错误。显示请帮助我应该在哪里添加它。
更新 2:@MaggieO 即使在添加了命令/参数后,它仍显示相同的错误并且 pod 处于挂起状态:
更新 deployment.yaml :
更新 3:如下图所示,无法获取节点,请告诉我如何解决此问题
kubernetes - 'watch=true' 如何在 kube-apiserver 上实现?
在观察 Kubernetes 资源的变化时,幕后到底发生了什么?是否http
突然变为wss
连接?
为了解决对 kube-apiserver 的请求过多的问题,我将一些代码重写为我认为更像是操作员模式的代码。
在我们的多租户微服务架构中,所有服务都使用同一个库来查找特定于租户的数据库的连接详细信息。连接详细信息保存在与应用程序相同的命名空间内的机密中。每个租户数据库都有自己的秘密。
因此,在每次调用时,都会读取并解析所有带有正确标签的秘密,以获取必要的数据库连接详细信息。我们有大约 400 个服务/pod...
我的想法:不是在每次调用时读取所有秘密,而是创建一个缓存并在每次通过观察者更改相关秘密时更新缓存。
我的担忧:我只是用同样昂贵的 websocket 替换 http 请求吗?据我了解,我现在将为每个服务/pod 建立一个开放的 websocket 连接,仍然是 400 个开放连接。
有一个代理服务来监视机密(kube-apiserver 请求)然后所有服务都查询该服务以获取连接详细信息(内网请求,kube-apiserver 不相关)会更好吗?
kubernetes - Kubernetes 失去了增强的服务端口范围
我正在 macOS 10.15.3 下测试 kubernetes minikube/influxdb/grafana 堆栈。我正在命令行上工作。
系统环境:
- MacOS 10.15.3 /bin/bash (darwin19)
Minikube 1.7.2,通过下载
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
我通过 shell 脚本启动 minikube
minikube 回应
所以我假设服务端口 3000-61616 在 minikube 中可用。
我通过应用 yaml 代码创建了 Grafana 服务的一些 shell 脚本行:
产生:
看起来,服务端口范围以某种方式被重置。Grafana 部署和其他部署,以及 influxDB 和 telegraf 服务(不是“NodePort”类型!)不会引起问题。相同的代码在标准的 linux 系统上不会导致此类问题。
现在有几个问题:
- 如何显示服务节点端口范围的当前状态?
- 为什么/在哪里可以更改服务范围?
- 作为解决方法:如何更新正在运行的节点/kube-api 中的服务端口范围?
kubernetes - kubelet 错误:更新节点租约失败
我通过 kubeadm 设置了我的 kubernetes 集群。在最后一步。我需要将我的节点加入主节点。所以我将加入命令复制到节点以执行它并排除错误。然后我回到 master 执行“kubectl get nodes”。只有一个主节点,没有工作节点。所以我检查了工作节点的 kubelet 日志,它显示了这样的错误:
2月 16 15:51:44 localhost.localdomain kubelet[938]: E0216 15:51:44.608258 938 controller.go:177] failed to update node lease, error: Operation cannot be fulfilled on leases.coordination.k8s.io "localhost.localdomain": the object has been modified; please apply your changes to the latest version and try again
我对如何解决它没有理想。顺便说一句,我有两个问题,这是其中之一。另一个是关于 kube-apiserver:kubernetes v1.16.2 写:break out我还没有解决这里是我设置集群的主要步骤
kubernetes - 服务“kube-dns”无效:spec.clusterIP:无效值:“10.10.0.10”:字段不可变
我通过 kubeadm 设置了我的集群。在最后一步我 exec kubeadm init --config kubeadm.conf --v=5
。我收到有关 clusterIp 值的错误。这是输出的一部分:
我的配置文件是这样的:
我检查了 kubeadm 生成的 kube-apiserver.yaml。--service-cluster-ip-range=10.10.0.0/16 设置包含 10.10.0.10 你可以在下面看到:
正如你在上面看到的。所有 service-ip-range 已设置为 10.10.0.0/16。奇怪的是,当我执行“kubectl get svc”时,我得到的 kubernetes clusterip 是 10.96.0.1
这意味着默认的服务 IP 范围是:10.96.0.0/16。我修改的内容不起作用。有谁知道如何自定义 service-ip-range 范围。以及如何解决我的问题?
kubernetes - 集群没有稳定的 controlPlaneEndpoint 地址
当我将一个新节点作为主节点加入我的集群时。我得到了错误。我的集群版本是 1.17.0 。我在节点上执行的命令是:
kubeadm join 192.168.1.120:6443 --token 5hbl78.99jlbgerstlkecss --discovery-token-ca-cert-hash sha256:0beb43185fa6a346fe57bd97cbb22afb128e6267bb80403ba2e7f388588e3256 --control-plane --certificate-key a056ad6f0ba73e736401027a1f078d7195b1aadaf2ac2eca6d773edc98d01483
我收到以下错误:
主节点上的 kubeadm 配置为:
这个问题在 StackOverflow 中已经提到过,但是一直没有解决
我重置了集群,并清理了 etcd 数据。然后我用keepalive配置了一个VIP,我通过haproxy将VIP负载均衡配置到了两个节点(我计划作为两个主节点)。之后我配置了 kubeadm-config.yaml。将 controlPlaneEndpoint 值修改为 LB 的 VIP:PORT。然后我执行“kubeadm init --config kubeadm.conf --upload-certs”。我收到以下错误:
其他信息:我的 VIP 端点是: 192.168.1.200:6001 。并且 haproxy LB 将 VIP 端点连接到两个主 apiserver 端点(192.168.1.120:6443、192.168.1.121:6443)
kubernetes - Prometheus 目标:服务器返回 HTTP 状态 403 Forbidden
我已经设置了 prometheus,在我的 kubernetes 集群中运行,并且我在 Prometheus 的配置文件中配置了 kubernetes 的证书,但是对于某些目标,我得到了“服务器返回 HTTP 状态 403 Forbidden”。这是我的配置的一部分:
我已经配置了证书,为什么还是 403 ?
顺便说一句,我可以通过执行此命令在 CLI 上获得结果curl -k --cacert /work/deploy/kubernetes/security/ca.pem --cert /work/deploy/kubernetes/security/admin.pem --key /work/deploy/kubernetes/security/admin.key --cert-type PEM https://172.16.5.150:6443/metrics