我不确定问题出在客户端还是服务器上。我所有的机器都是 Ubuntu 12.04 x64。我在 Digital Ocean 上,我必须配置 iptables 才能“生存”。
服务器故事
我的 Chef Server 安装在 2GB RAM 的机器上,没有交换空间。它是 omnibus 的最新版 Chef 11。我尝试访问 Web UI,一切正常。但几个小时后,它变得非常慢。可能是某些东西崩溃了,可能是 runit 重新启动了,不管是什么。我发现我的 RAM 已经用完了,只有 77mb 是空闲的。
我尝试像这样重新配置 chef 服务器。
# this is /etc/chef-server/chef-server.rb
topology 'standalone'
api_fqdn 'chef.[mydomain]'
lb['fqdn'] = 'chef.[mydomain]'
nginx['server_name'] = 'chef.[mydomain]'
nginx['url'] = 'https://chef.[mydomain]'
# default was 25%
chef_solr['heap_size'] = 300
# default was 200 connections
postgresql['max_connections'] = 30
# default was 25%
postgresql['shared_buffers'] = '128MB'
# default was 50%
postgresql['effective_cache_size'] = '256MB'
这并没有多大帮助。我现在有 200-300mb 的可用 RAM,但过了一段时间后,Chef 服务器仍然无法响应。我还看到我的 Chef 客户端(守护进程每 30 分钟运行一次)最终停止报告,并且我会找到类似“上次报告于 5 小时前”的状态。
客户故事
在我的客户端日志中我发现如下内容:
Error connecting to https://chef.[mydomain]/nodes/db.[mydomain] - Connection timed out - connect(2)
我的客户端已将 iptables 配置如下,以防出现问题。
% iptables -L -v
Chain INPUT (policy DROP 6 packets, 676 bytes)
pkts bytes target prot opt in out source destination
3155 3260K system all -- any any anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1419 packets, 178K bytes)
pkts bytes target prot opt in out source destination
Chain system (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP tcp -- any any anywhere anywhere tcpflags: FIN,SYN,RST,PSH,ACK,URG/NONE
0 0 DROP tcp -- any any anywhere anywhere tcpflags:! FIN,SYN,RST,ACK/SYN state NEW
0 0 DROP tcp -- any any anywhere anywhere tcpflags: FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG
0 0 ACCEPT all -- lo any anywhere anywhere
22 1848 ACCEPT icmp -- any any anywhere anywhere
361 37759 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh
2766 3219K ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
引导新节点
我尝试引导一个新节点,但失败了两次。第一次只是超时,就像其他客户端一样。第二次我遇到了这种情况:
SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
那么为什么我的客户端超时了?
我已经研究这个问题三天了,希望得到一些帮助。
答案1
这看起来像是 Digital Ocean 网络问题造成的,而不是 Chef 的错。