AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[bare-metal](server)

Martin Hope
Oana
Asked: 2021-12-08 05:20:24 +0800 CST

VMWare Workstation 和 Windows 10:无法连接到托管在 VM 上的服务器

  • 1

我在 VMWare Workstation 15 上配置了一个私有 2 节点 Kubernetes 集群。我使用的是 MetalLB 和 Calico。入口服务和入口看起来像:

xxx@c1-cp1:~/Desktop$ kubectl get svc -n ingress-controller-2
NAME                                         TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)                      AGE
wsnginx-ingress-nginx-controller             LoadBalancer   10.109.117.222   192.168.44.136   80:30167/TCP,443:30680/TCP   24h
wsnginx-ingress-nginx-controller-admission   ClusterIP      10.105.103.165   <none>           443/TCP                      24h
xxx@c1-cp1:~/Desktop$ kubectl get ing apollo-ingress
NAME             CLASS     HOSTS                ADDRESS          PORTS   AGE
apollo-ingress   wsnginx   test.xxx.com   192.168.44.136   80      3h17m

我正在使用 Nat 网络适配器和静态 IPS。我的端口转发配置如下

在此处输入图像描述

curl -D- http://192.168.44.136 -H 'Host: test.xxx.com'从 VM,返回 200 状态,但我无法从主机 Win10 上访问它,127.0.0.1:8080因为我得到一个404 NGINX NotFound.

你能帮帮我吗?我究竟做错了什么?我怎么能在我的私人网络中公开它?谢谢!


更新 我不确定这是否是正确的方法,但我设法通过更改一点 Ingress 资源从主机连接。我在注释中添加了主机参数,如

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: apollo-ingress
spec:
  ingressClassName: wsnginx
  rules:
    #- host: test.xxx.com
    - http:
        paths:
          - backend:
              service:
                name: apollo-service
                port: 
                  number: 80
            path: /
            pathType: Prefix

现在我的入口看起来像这样

NAMESPACE   NAME                                                   CLASS     HOSTS                        ADDRESS          PORTS     AGE
default     ingress.networking.k8s.io/apollo-ingress               wsnginx   *                            192.168.44.136   80        3h31m

看来我现在也可以从我的主机上访问它了。我有一个 Rest API,所以我刚刚从浏览器打开它http://127.0.0.1:8080

vmware-workstation kubernetes kubeadm bare-metal nginx-ingress
  • 1 个回答
  • 157 Views
Martin Hope
ReaperClown
Asked: 2021-11-17 03:13:44 +0800 CST

从本地网络外部访问集群中的 Kubernetes 服务 - 裸机

  • 1

我正在运行一个简单的裸机多主机“高可用性”环境,其中包含 2 个主机和 2 个工作人员,以及另一个使用 HAProxy 作为外部负载均衡器的 VM。

我的问题是:可以从集群外部访问服务(仪表板、ngnix、mysql(尤其是 mysql)等...),使用我正在运行的这个设置将它们暴露给网络?

我曾尝试在此环境中使用 MetalLB 将服务公开为 LoadBalancer,但它似乎不起作用,而且由于我对 Kubernetes 有点陌生,我不知道为什么。

编辑:现在开始工作了,遵循@c4f4t0r 的建议,而不是外部 HAProxy 负载均衡器,同一个 VM 成为第三个主节点,以及其他主节点,它们现在每个运行一个 HAProxy 和 Keepalived 的内部实例,而曾经作为外部 LB 的 VM 现在是其他节点加入集群的端点主机,MetalLB 在集群内运行,nginx 入口控制器将请求引导到已请求的服务。



>>> 以下是我创建环境以及设置中使用的所有配置所遵循的步骤。



使用 kubeadm 设置高可用 Kubernetes 集群

按照本文档使用Ubuntu 20.04 LTS设置高可用性 Kubernetes 集群。

本文档指导您使用 HAProxy 设置具有两个主节点、一个工作节点和一个负载平衡器节点的集群。

裸机环境

角色 全域名 知识产权 操作系统 内存 中央处理器
负载均衡器 loadbalancer.example.com 192.168.44.100 Ubuntu 21.04 1G 1
掌握 kmaster1.example.com 10.84.44.51 Ubuntu 21.04 2G 2
掌握 kmaster2.example.com 192.168.44.50 Ubuntu 21.04 2G 2
工人 kworker1.example.com 10.84.44.50 Ubuntu 21.04 2G 2
工人 kworker2.example.com 192.168.44.51 Ubuntu 21.04 2G 2
  • 所有这些虚拟机上的root帐户的密码都是kubeadmin
  • 除非另有说明,否则以 root 用户身份执行所有命令

先决条件

如果您想在工作站上的虚拟化环境中尝试此操作

  • 安装了虚拟机
  • 主机至少有 8 个内核
  • 主机至少8G内存

设置负载均衡器节点

安装 Haproxy
apt update && apt install -y haproxy
配置 haproxy

将以下行附加到/etc/haproxy/haproxy.cfg

frontend kubernetes-frontend
    bind 192.168.44.100:6443
    mode tcp
    option tcplog
    default_backend kubernetes-backend

backend kubernetes-backend
    mode tcp
    option tcp-check
    balance roundrobin
    server kmaster1 10.84.44.51:6443 check fall 3 rise 2
    server kmaster2 192.168.44.50:6443 check fall 3 rise 2
重启haproxy服务
systemctl restart haproxy

在所有 Kubernetes 节点上(kmaster1、kmaster2、kworker1)

禁用防火墙
ufw disable
禁用交换
swapoff -a; sed -i '/swap/d' /etc/fstab
更新 Kubernetes 网络的 sysctl 设置
cat >>/etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
安装 docker 引擎
{
  apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
  add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  apt update && apt install -y docker-ce containerd.io
}

Kubernetes 设置

添加 Apt 存储库
{
  curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
  echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
}
安装 Kubernetes 组件
apt update && apt install -y kubeadm=1.19.2-00 kubelet=1.19.2-00 kubectl=1.19.2-00

在任何一个 Kubernetes 主节点上(例如:kmaster1)

初始化 Kubernetes 集群
kubeadm init --control-plane-endpoint="192.168.44.100:6443" --upload-certs

复制命令以加入其他主节点和工作节点。

部署印花布网络(我使用 Wea​​ve 而不是 Calico)
kubectl --kubeconfig=/etc/kubernetes/admin.conf create -f https://docs.projectcalico.org/v3.15/manifests/calico.yaml

将其他节点加入集群(kmaster2 & kworker1)

使用您从第一个 master 上的 kubeadm init 命令的输出中复制的相应 kubeadm join 命令。

重要提示:当您加入另一个主节点时,您还需要将 --apiserver-advertise-address 传递给 join 命令。

load-balancing cluster kubernetes haproxy bare-metal
  • 1 个回答
  • 213 Views
Martin Hope
tFlolo
Asked: 2021-09-30 01:54:51 +0800 CST

为什么 bgp OPEN 消息会获取 Connect Socket: Connection reset by peer when node is on a different subnet/gateway

  • 1

我的网络设置:

Kubernetes 网络设置

使用此设置,只有同一子网上的节点可以建立 bgp 连接。其他节点(执行完整的 3 路 tcp 握手),使用 [FIN, ACK] 然后 [RST] 响应 hte OPEN 消息,因此我的calicoctl node status<- 中的对等消息重置连接在控制器 3 上(10.0.3.100)

    IPv4 BGP status
+--------------+-------------------+-------+----------+--------------------------------+
| PEER ADDRESS |     PEER TYPE     | STATE |  SINCE   |              INFO              |
+--------------+-------------------+-------+----------+--------------------------------+
| 10.0.1.100   | node-to-node mesh | start | 07:12:01 | Connect Socket: Connection     |
|              |                   |       |          | closed                         |
| 10.0.2.100   | node-to-node mesh | start | 07:12:01 | Connect                        |
| 10.0.1.101   | node-to-node mesh | start | 07:12:01 | Connect Socket: Connection     |
|              |                   |       |          | reset by peer                  |
| 10.0.1.102   | node-to-node mesh | start | 07:12:01 | Connect Socket: Connection     |
|              |                   |       |          | reset by peer                  |
| 10.0.2.102   | node-to-node mesh | start | 07:12:01 | Connect Socket: Connection     |
|              |                   |       |          | reset by peer                  |
| 10.0.3.101   | node-to-node mesh | up    | 07:14:13 | Established                    |
| 10.0.3.102   | node-to-node mesh | up    | 07:12:02 | Established                    |
+--------------+-------------------+-------+----------+--------------------------------+

我从控制器 3 (10.0.3.100) 到 node4 (10.0.2.102) 的握手 + OPEN 消息的wireshark 转储

10.0.3.100 和 10.0.2.102 之间的
Wireshark bgp 跟踪 10.0.0.4(10.0.3.100) 和 10.0.2.102 之间的 Wireshark bgp 跟踪
也许问题是节点 4 看到的数据来自 10.0.0.4 而不是 10.0.3.100?

什么有效

  1. 从所有节点Ping到所有节点OK
  2. nc 端口 179 到所有节点成功
  3. Wireshark 显示从控制器 3 到节点 4 的完整 TCP 握手

设置

  1. Kubernetes 1.21.1(通过 kubespray 安装)
  2. Calico 3.9(kubespray 中的默认设置)
  3. 所有网关都是 pfSense 2.5.x,“主”网关具有通过 10.0.0.2 的 10.0.1.0/24、通过 10.0.0.3 的 10.0.2.0/24 和通过 10.0.0.4 的 10.0.3.0/24 的静态路由。
  4. 在 wan 和 lan 上的数据中心路由器上禁用防火墙 没有在任何 pfSense 盒子上启用 NAT。(ipsec vpn 的 NAT 在主网关的 wan 端口上)
  5. 据我所知,我在所有子网中的所有节点之间都有完整的 IP 连接
bgp kubernetes bare-metal calico
  • 1 个回答
  • 163 Views
Martin Hope
Tomas
Asked: 2021-01-21 00:41:52 +0800 CST

旧的 Intel Xeon E5-2690 v3 @ 2.60GHz 和新的 Intel Xeon Gold 5218 @ 2.30GHz 之间的真正区别是什么

  • 0

我们正在托管文件处理 SAAS Intel Xeon E5-2690 v3 @ 2.60GHz,最近Intel Xeon Gold 5218 @ 2.30GHz (Cascade Lake/Gold)在我们的数据中心中引入了它。在https://www.cpubenchmark.net/compare/Intel-Xeon-E5-2690-v3-vs-Intel-Xeon-Gold-5218/2364vs3536上比较它们时,Intel Xeon Gold 5218 似乎更快,而且成本更低数据中心。也有更多的核心12 vs 16。

我不是硬件专家,也许有人可以解释为什么更大更快成本更低?E5和GoldIntel CPU 版本有什么区别?

ibm intel xeon bare-metal
  • 1 个回答
  • 445 Views
Martin Hope
Nathaniel Waisbrot
Asked: 2020-11-14 08:03:16 +0800 CST

不要从 kubelet 记录堆栈跟踪

  • 1

我的 Kubernetes 节点有问题,但很难调试,因为我得到了堆栈跟踪的页面和页面,例如

Nov 13 10:55:51 corona kubelet[29656]:         /workspace/anago-v1.19.4-rc.0.51+5f1e5cafd33a88/src/k8s.io/kubernetes/_ou
Nov 13 10:55:51 corona kubelet[29656]: k8s.io/kubernetes/vendor/k8s.io/client-go/tools/cache.(*Reflector).Run(0xc000040f
Nov 13 10:55:51 corona kubelet[29656]:         /workspace/anago-v1.19.4-rc.0.51+5f1e5cafd33a88/src/k8s.io/kubernetes/_ou
Nov 13 10:55:51 corona kubelet[29656]: created by k8s.io/kubernetes/pkg/kubelet/config.newSourceApiserverFromLW
Nov 13 10:55:51 corona kubelet[29656]:         /workspace/anago-v1.19.4-rc.0.51+5f1e5cafd33a88/src/k8s.io/kubernetes/_ou
Nov 13 10:55:51 corona kubelet[29656]: goroutine 244 [select]:
Nov 13 10:55:51 corona kubelet[29656]: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.contextForChannel.func
Nov 13 10:55:51 corona kubelet[29656]:         /workspace/anago-v1.19.4-rc.0.51+5f1e5cafd33a88/src/k8s.io/kubernetes/_ou
Nov 13 10:55:51 corona kubelet[29656]: created by k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.contextForC
Nov 13 10:55:51 corona kubelet[29656]:         /workspace/anago-v1.19.4-rc.0.51+5f1e5cafd33a88/src/k8s.io/kubernetes/_ou
Nov 13 10:55:51 corona kubelet[29656]: goroutine 205 [sync.Cond.Wait]:
Nov 13 10:55:51 corona kubelet[29656]: runtime.goparkunlock(...)
Nov 13 10:55:51 corona kubelet[29656]:         /usr/local/go/src/runtime/proc.go:312
Nov 13 10:55:51 corona kubelet[29656]: sync.runtime_notifyListWait(0xc000b140c8, 0x1)
Nov 13 10:55:51 corona kubelet[29656]:         /usr/local/go/src/runtime/sema.go:513 +0xf8
Nov 13 10:55:51 corona kubelet[29656]: sync.(*Cond).Wait(0xc000b140b8)
Nov 13 10:55:51 corona kubelet[29656]:         /usr/local/go/src/sync/cond.go:56 +0x9d
Nov 13 10:55:51 corona kubelet[29656]: k8s.io/kubernetes/vendor/k8s.io/client-go/tools/cache.(*DeltaFIFO).Pop(0xc000b140
Nov 13 10:55:51 corona kubelet[29656]:         /workspace/anago-v1.19.4-rc.0.51+5f1e5cafd33a88/src/k8s.io/kubernetes/_ou
Nov 13 10:55:51 corona kubelet[29656]: k8s.io/kubernetes/vendor/k8s.io/client-go/tools/cache.(*controller).processLoop(0
Nov 13 10:55:51 corona kubelet[29656]:         /workspace/anago-v1.19.4-rc.0.51+5f1e5cafd33a88/src/k8s.io/kubernetes/_ou
Nov 13 10:55:51 corona kubelet[29656]: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0xc
Nov 13 10:55:51 corona kubelet[29656]:         /workspace/anago-v1.19.4-rc.0.51+5f1e5cafd33a88/src/k8s.io/kubernetes/_ou
Nov 13 10:55:51 corona kubelet[29656]: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0xc000def
Nov 13 10:55:51 corona kubelet[29656]:         /workspace/anago-v1.19.4-rc.0.51+5f1e5cafd33a88/src/k8s.io/kubernetes/_ou
Nov 13 10:55:51 corona kubelet[29656]: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc000defe
Nov 13 10:55:51 corona kubelet[29656]:         /workspace/anago-v1.19.4-rc.0.51+5f1e5cafd33a88/src/k8s.io/kubernetes/_ou
Nov 13 10:55:51 corona kubelet[29656]: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.Until(...)

我尝试-v=0在 systemd 单元文件中添加 kubelet 命令,但它仍在喷涌而出。我看了看,/var/lib/kubelet/config.yaml它说logging: {}。我不确定是否可以放一些东西让它更安静。

有没有办法告诉 kubelet 跳过堆栈跟踪?跟踪之前的错误消息很有帮助,但很难在噪音中找到。

kubernetes bare-metal
  • 2 个回答
  • 449 Views
Martin Hope
drewo
Asked: 2020-01-23 23:38:57 +0800 CST

将负载均衡器用作虚拟机或裸机 [重复]

  • 0
这个问题在这里已经有了答案:
你能帮我做容量规划吗? (3 个回答)
2年前关闭。

我们正在使用一个有大约 300 个并发用户的应用程序。现在一切都被虚拟化了:1 个 VM 作为负载平衡器,2 个 VM 作为 Web 服务器,(在这个 ESXi 主机上还有另外 25 个其他 VM)和 1 个服务器(裸机)作为 SQL Server。我们在性能方面遇到了一些问题,因此决定购买物理硬件来提升它。

我不确定,我们如何才能获得更好的性能?:

  • 我们购买了 1 个机架服务器硬件并仅使用上述所有 3 个虚拟机运行 ESXi,

  • 我们为 Web 服务器购买 1-1 机架服务器硬件,并仅使用应用程序安装 Windows 服务器。(并像以前一样保留负载平衡器 - VM)

  • 我们为负载平衡器和 2 个 Web 服务器购买了 3 个机架服务器。

用户通过 Web 界面/桌面应用程序连接到服务器。

谢谢你的帮助,德鲁多

windows bare-metal
  • 2 个回答
  • 119 Views
Martin Hope
Scott78
Asked: 2017-02-11 10:01:58 +0800 CST

裸机还是虚拟化?

  • 13

我正在寻找升级服务器并试图找出一个好的计划。

我们目前有4台服务器:

  1. OpenBSD 防火墙/VPN 服务器
  2. 接收 ZFS 快照的 FreeNAS 备份服务器(本地)
  3. 接收 ZFS 快照的 FreeNAS 备份服务器(远程)
  4. 下面的主力 FreeBSD 服务器。

FreeBSD 服务器

~2010 FreeBSD 8.4, 32gb ram, dual Xeon E5520 ZFS (8 个磁盘, zraid of disks in mirrored pair, 8TB)

服务:

  • 桑巴
  • Netatalk(苹果文件共享)
  • Apache(主要是内部的,一些面向外部的站点)
  • MySQL
  • VirtualBox(Windows 2k3 实例)
  • ZFS 快照

我的计划(基本)

我计划进行服务器升级,让我们从一台主服务器切换到两台服务器,每台服务器都会承担上面列表中的一些服务器职责(并且会相互复制),这样如果一台服务器出现故障,我可以快速激活第二个的所有功能。就像是:

服务器 1:

  • 桑巴
  • Netatalk(苹果文件共享)
  • VirtualBox(Windows 2k3 实例)
  • ZFS 快照

服务器 2:

  • Apache(主要是内部的,一些面向外部的站点)
  • MySQL
  • ZFS 快照

我只运行过裸机,除了在 VirtualBox 上运行 Windows 2k3 之外,我没有使用虚拟机的经验。我应该考虑将我的服务器实例作为虚拟机运行吗?我认为这可能会使从崩溃中恢复更容易。总的来说,这似乎是一个好计划吗?

我一直在研究 ixSystems 服务器和戴尔机架硬件,如果这有什么不同的话。(我也从未使用过任何机架安装设备。)

virtualization freebsd upgrade bare-metal
  • 3 个回答
  • 1807 Views
Martin Hope
johnny
Asked: 2016-12-01 11:47:02 +0800 CST

在裸机 Windows 2012r2 操作系统安装上使用 Docker 容器是最佳实践吗?

  • 1

我已经阅读了有关容器与虚拟机的各种内容。这不是我要问的(我不认为)。如果我使用容器,我是否在虚拟机上使用它们?

我的服务器是裸机上的 2012r2,不是 hyper-v 服务器,裸机上没有虚拟化,安装了 Windows Standard 2012r2。

如果我想使用 Docker,是否在 Hyper-V 中创建一个 VM 并在该 VM 中使用 Docker?

我是否在裸机操作系统上使用 Docker?

这是一个类似的问题,如果容器没有来宾操作系统,为什么我们要在 Docker 中使用操作系统基础映像?

virtual-machines docker windows-server-2012-r2 bare-metal
  • 1 个回答
  • 525 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve