问题标签 [bare-metal-server]

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 投票
2 回答
5311 浏览

kubernetes - 如何通过执行来自 master 的命令列出在特定工作节点中运行的所有 pod?

我需要通过从主节点执行命令来获取在工作节点中运行的 pod 列表。如果我进入工作节点并执行,我可以实现kubectl get pods -n ns。但我需要从主节点执行此操作并在 worker 中获取 pod。

0 投票
2 回答
503 浏览

docker - 在k8s节点上,如何管理节点上电时的pod磁盘IOland-rush?

问题

当我们本地托管的裸机 k8s (1.18) 节点之一启动时,pod 已安排好,但难以达到“就绪”状态 - 几乎完全是由于 30 到 40 个正在安排的 pod 的磁盘 IO 涌入同时在节点上。

这通常会导致一连串的部署失败:

  • 部署 Pod 时,节点上的 IO 请求会以 IOWait 状态堆叠。
  • Pod 启动时间从(正常)10-20 秒猛增到几分钟。
  • livenessProbes 失败。
  • Pod 被重新调度,随着更多 IO 请求的堆积,问题变得更加复杂。
  • 重复。

FWIW 内存和 CPU 在节点上被过度配置,即使在开机状态下(<10% 的使用率)也是如此。

尽管我们确实有应用程序 NFS 卷挂载(这通常是可疑的 WRT IO 问题),但 pod 启动时的磁盘活动和限制几乎完全在本地 docker 容器文件系统中。

尝试的解决方案

由于磁盘 IO 不是有限资源,我们正在努力寻找解决方案。我们已经调整了我们的 docker 镜像,使其在启动时尽可能少地写入磁盘,这对一些人有所帮助。

一种基本解决方案是通过增加集群中的节点数量来减少每个节点调度的 Pod 数量。这对我们来说并不理想,因为它们是物理机器,一旦节点启动,集群就会严重资源过剩。

由于我们是裸机/本地的,我们没有一种自动方法来在启动情况下自动配置节点并在集群稳定时降低它们。

乍一看,应用priorityClasses 似乎是一个解决方案。但是,我们已经创建了 priorityClasses 并相应地应用了它们,如文档中所列:

Pod 可以有优先权。优先级表示一个 Pod 相对于其他 Pod 的重要性。如果 Pod 无法被调度,调度程序会尝试抢占(驱逐)较低优先级的 Pod,以使挂起的 Pod 的调度成为可能。

tldr:Pod 仍将在开机时同时“可调度”,因为没有超过可配置的资源限制。

问题)

  • 有没有一种方法可以根据节点当前的非就绪 pod 数量来限制节点上的调度 pod?这将允许优先级类驱逐非优先级 pod 并首先安排更高优先级。
  • 除了增加集群节点的数量之外,还有没有其他我们没有想到的方法来管理这个磁盘 IO 风暴?
0 投票
2 回答
2282 浏览

nginx - 如何测试 K8S 集群的 NGINX 入口控制器是否正常工作?

  • 集群类型:基于OpenNebula的裸机集群
  • 规格:4 个工作节点,每个工作节点 8 个 CPU,每个工作节点 32GB 内存/RAM

我正在尝试使用以下命令为我的集群设置 NGINX 入口控制器:

[root@onekube-ip-193-144-35-177 ~]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/baremetal/deploy.yaml

这给了我这个输出

namespace/ingress-nginx unchanged serviceaccount/ingress-nginx unchanged configmap/ingress-nginx-controller configured clusterrole.rbac.authorization.k8s.io/ingress-nginx unchanged clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx unchanged role.rbac.authorization.k8s.io/ingress-nginx unchanged rolebinding.rbac.authorization.k8s.io/ingress-nginx unchanged service/ingress-nginx-controller-admission unchanged service/ingress-nginx-controller unchanged deployment.apps/ingress-nginx-controller created validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission configured clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission unchanged clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission unchanged job.batch/ingress-nginx-admission-create unchanged job.batch/ingress-nginx-admission-patch unchanged role.rbac.authorization.k8s.io/ingress-nginx-admission unchanged rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission unchanged serviceaccount/ingress-nginx-admission unchanged

然后我使用以下命令编辑 ingress-nginx-controller 服务:

kubectl edit svc -n ingress-nginx ingress-nginx-controller

我在 externalIPs 下添加了 K8S 集群的外部 IP,具体如下:

为了测试 NGINX 入口控制器是否正常工作,我现在应该能够浏览指向 K8S 集群 IP 地址的子域(例如 prometheus.grapevine-project.eu)(由 DNS 查找确认),并且"404 Not Found page"如果控制器确实已正确设置,则URL 应包含NGINX 入口控制器返回的值。但是,我目前正在"This site can’t be reached prometheus.grapevine-project.eu took too long to respond."我的 Internet 浏览器上获取一个页面。

这是测试 NGINX 是否正常工作的正确/推荐方法吗?我的 NGINX 入口控制器设置有什么问题吗?

附言

0 投票
1 回答
706 浏览

docker - Traefik 2 howto basicauth 非 docker 服务?

我在这里有一个dnsmasq用于 DNS 的工作设置,运行 dockerized 服务 (whoami) 和裸机服务 ( ruby -run -e httpd . -p 3000)。配置重定向到https就好了,名称解析就好了。

另请注意,我在 10.xxx 网络上使用辅助 IP 来解析scuar.homedns。我的本地局域网通过 dnsmasql 解析 192.169.xx 流量 - 这也都可以正常工作。此外,我正在使用自签名证书。

我的问题是,经过数小时的搜索和反复试验:如何basic auth在此配置中添加裸机服务?

这是我的工作配置文件:

[edit1:添加 dnsmasq.config 以防您想知道事情是如何解决的]

[edit2:我在路由器中添加了一个中间件部分,traefik-dyn.yml确实给了我一个登录对话框(在下面更新)。但是密码不起作用-所以嗯....任何帮助将不胜感激]

码头工人-compose.yml

traefik.yml

traefik-dyn.yml

dnsmasq.conf

0 投票
2 回答
1010 浏览

kubernetes-ingress - k8s nginx Ingress 将我的节点 IP 作为地址

我的虚拟环境中有 3 个节点 k8s 集群,即 VMware Fusion。

我的集群详细信息

当尝试创建基本 Ingress 时,它需要我的一个 node_ip,它正在运行 nginx_controller。

入口详细信息

但 80 端口并非在所有节点上都开放。我的意思是它不工作

我错过了什么?

  • 我安装了 Nginx 入口控制器
  • 我安装了 MetalLB 并对其进行了配置。如果我使用以下类型创建服务,它就可以工作:LoadBalancer。它需要 ExernalIp Ip,我可以访问它。
  • 我部署基本应用程序进行测试。
  • 我为应用程序创建服务。我可以在 NodePort 或 CulesterIP 上访问。我都试过了。
  • 我为管理主机和路由人员创建了基本的 Ingress。但这一步我卡住了。

我的问题;

1-) 通常情况下,Ingress 应该将 Ip 作为地址吗?我的节点之一或外部 DHCP IP。

2-) 当我创建类型为:LoadBalancer 的服务时,它需要 externalIP。我可以将 DNS 记录到这个 IP 并且客户端可以访问它。那有什么问题?

0 投票
2 回答
1326 浏览

elasticsearch - Open Distro for Elasticsearch on-prem Kubernetes 问题

我正在尝试在本地 kubernetes 集群上为 elasticsearch 集群设置一个开放发行版。我正在使用带有大多数默认值的https://github.com/opendistro-for-elasticsearch/opendistro-build/tree/master/helm 。

values.yaml 中唯一改变的是 nodeSelector 和 storageClass 部分。

如果我尝试取消注释 config 下的任何项目,所有 pod 都会进入崩溃循环:

豆荚:

服务:

opendistro-es-data-0 pod 中的错误:

客户端 pod 抛出相同的“无法解析主机 [opendistro-es-discovery]”错误。

opendistro-es-master-0 中的 elasticsearch.yml:

当我在主 pod 内运行“curl -XGET https://localhost:9200 -u admin:admin --insecure”时,我得到响应“Open Distro Security 未初始化”。

当我在主 pod -cacert ../../../config/root-ca.pem -cert 内运行“./plugins/opendistro_security/tools/securityadmin.sh -cd ../securityconfig/ -icl -nhnv ../../../config/kirk.pem -key ../../../config/kirk-key.pem”它只是超时。

在我看来,节点无法看到对方,但我不知道如何修复它。正如我之前提到的,使用 values.yaml 中的配置部分会导致所有 pod 中断。如果你碰巧知道如何解决这个问题和/或这个问题,那就太棒了。如果需要任何其他信息,请告诉我。提前致谢!

0 投票
0 回答
250 浏览

kubernetes - Microk8s 裸机 kubernetes 服务器负载均衡器和入口路由问题

我已经安装了最新的 microk8s 并启用nginx-ingressmetallb插件

我已经配置了所有东西并且运行良好,但我似乎无法连接以下之间的流量:

x-ingress-ingress-nginx-controller服务

和入口本身

此外,入口似乎绑定到 address 127.0.0.1。通过阅读该项目,我知道这是正确的,尽管我以前(kubeadm,云提供商)曾经获取负载均衡器 ip(在这种情况下是 ex192.168.89.165而不是)127.0.0.1

请注意,192.168.89.160根据 MetalLb 文档,该节点与负载均衡器位于不同的 ip

curl-ed on时,入口正在工作并正确服务流量127.0.0.1

curl-ing 192.168.89.165,或10.152.183.90(负载均衡器集群 ip)失败'connection refused'

这是正确的行为,设置是否有问题,如何连接来自负载平衡入口服务的路由流量?我一定错过了什么,但不知道是什么

非常感谢!

0 投票
1 回答
234 浏览

ipmi - 基板管理控制器 (BMC) 如何与主机通信?

我可以使用 ipmitool 关闭服务器。但是 BMC 是如何向 Host OS 发起关闭命令的呢?两者在内部是如何连接的?

还有当主机断电时,bmc如何打开机器?我假设它能够在机器开启时与操作系统通信,而在机器关闭时它不能这样做。那么BMC如何开启主机

0 投票
1 回答
336 浏览

kubernetes - 错误未知标志--控制平面端点

我正在尝试创建一个裸机多主机 kubernetes 集群。我正在使用的 kubernetes 版本是 1.15.12。我遇到的问题是命令:

错误是 --control-plane-endpoint 是未知的。

我相信在 1.15.12 版本中这个 kubeadm 标志不存在。我是否使用了正确的标志,或者是否有替代品可以用于我正在使用的版本(v1.15.12)?

0 投票
1 回答
272 浏览

kubernetes - Sentinel 有状态设置计划失败,找不到要绑定的持久卷

下午好

我真的需要一些帮助来让一组哨兵起来,以便他们可以监控和执行我的 redis pod 的选举,这些 pod 运行没有问题。在此消息的底部,我包含了哨兵配置,它说明了卷。第一个哨兵,哨兵0,位于待处理,而其余的redis实例都是READY 1/1,对于所有三个。

但他们没有被安排。当我尝试应用 sentinel statefulset 时,我收到以下计划错误。sentinel statefulset 配置在这篇文章的底部

警告 FailedScheduling 5s default-scheduler 0/4 个节点可用:1 个节点有污点 {node-role.kubernetes.io/master: },pod 不能容忍,3 个节点没有找到可用的持久卷绑定。警告 FailedScheduling 4s default-scheduler 0/4 个节点可用:1 个节点有污点 {node-role.kubernetes.io/master: },pod 不能容忍,3 个节点没有找到可用的持久卷绑定。

关于我的 Kubernetes 设置:

我正在运行一个四节点的裸机 kubernetes 集群;分别为 1 个主节点和 3 个工作节点。

对于存储,我使用的是跨节点共享的“本地存储”StorageClass。目前我正在使用一个持久卷配置文件,它定义了三个节点上的三个卷。这似乎适用于 redis statefulset,但不适用于哨兵。(底部的哨兵配置)

请参阅下面的持久卷配置(所有三个 pv-volume-node-0、1、2 都已绑定)

注意:路径“/var/opt/mssql”是redis集群的有状态目录数据pt。这是用词不当,绝不反映 sql 数据库(我只是在演练中使用了这个目录),而且它有效。

目前,所有三个 redis pod 都成功部署了一个正常运行的 statefulset,请参阅下面的 redis 配置(所有工作)

我遇到的真正问题,我相信源于我如何配置哨兵状态集。pod 不会调度,其打印原因是它没有找到要绑定的持久卷。

SENTINEL STATEFULSET CONFIG,这里有问题,无法弄清楚如何使用我制作的卷进行正确设置。

这是我在此的头一篇博文。我是stackoverflow的忠实粉丝!