-
Notifications
You must be signed in to change notification settings - Fork 74
CoreOS AMI 集群正常运行几小时后,node总是进入NotReady状态。 #91
Comments
可能需要定位這個問題是不是本身kops的問題,如果是的話需要反饋到上游kops社區去讓上游從根本來改進。 如果只部署kops集群,不配置Istio或其他功能,集群也會如此嗎? |
@pahud 感谢回复,很想定位问题,但是我现在没有办法记录NODE在DOWN之前,有何记录,只要NOTREADY,SSH无法访问,是否有其它方式,我也不懂。 |
@pahud 只部署仍然出现这个问题,定位到: Warning FailedScheduling 13s (x49 over 26m) default-scheduler 0/5 nodes are available: 5 node(s) had taints that the pod didn't tolerate. ·
|
有辦法提供比較完整的資料方便重現問題嗎? 例如請附上你使用的Makefile以及具體你創建集群的命令? 目前還沒聽說按照README起集群在寧夏或北京region會遇到這個情況 |
|
安装过程: make create-cluster #创建群集 ip和port为私有镜像仓库的ip和port 并保存退出。留意不能有额外或少空格 machineType: c5.large $ make update-cluster #更新群集,这时候开始创建资源,包括子网,master,worker,autoscaling,ELB… $ kops validate cluster #验证群集,要等ELB里面实例in-service后 $ make validate-cluster #验证群集用这个。。。 #需验证IAM权限 |
@pahud node如果进入notready是不是应该会有记录不正常?现在新建一个集群,其它节点正常运行,某一个节点进入notready,应该是突然进入的,执行 |
Hi @YuTingLiu 我注意到你有些配置不是預設的default配置,包括
你的 另外
看起來你大幅度修改了spec.yml內容,這會造成有一些images抓不下來,這部分應該是要完整copy/paste過去不做任何修改的。 能否完全使用kops-cn提供的官方README說明,最小程度修改,包括spec.yml完全不要修改內容, |
@pahud 感谢回复,
|
如果你完全按照 spec.yml 裡面的內容不建議修改 https://github.com/nwcdlabs/kops-cn/blob/9a84d0185a80b1b5235ea992dd90cc201452555d/spec.yml#L2-L8
|
@pahud 嗯,突然感到是不是现在只支持2个Node节点,我设置了三个node,所以一直有一个node会变为notready,但是这个配置下资源很快不够用,还没有部署服务,已经达到的资源用量为: |
@YuTingLiu 我看到你部署了Istio kops-cn default配置是沒有部署Istio的,如果只是起集群,什麼都沒有部署包括Istio,依然會有一個node無法READY嗎 |
另外要注意的是, AWS VPC CNI每個node能運行的pod數量是有限的 以c4.large來說最多只能跑29 pods 從上面那張截圖來看你已經跑了29 pods, 這樣會有pod會無法被deploy上去 你可能要從這角度去查看一下。同時測試一下Istio不部署的話集群是否都能READY |
@pahud 非常感谢回复,我明白了,问题的症结可能是这个限制。这样来看,我只能将instance type改大吗? |
你可以試著透過
希望上面這兩個命令可以幫助你盤查到底發生了什麼事。 |
Probably you can SSH to the host machine to read the system log. |
大多数情况下,节点出现notready是无法ssh进入,正如我开头说的。 |
感谢 |
参考:https://github.com/kubernetes/kops/blob/master/docs/networking.md |
很抱歉這個問題我現在也無法協助,kops-cn專案提供一個配置範例,讓大家根據這個範例可以很快速部署一個kops集群,但很可能因為各種原因出現一些issue,這個有些可能是kops上游的問題,有時候也會是Linux AMI問題,或者CNI的問題都有可能。 其他Networking參數只要kops上游支持,理論上cn都可以用,但有可能會缺少一些必要的docker images需要mirror進國內才行,具體需要哪些images就需要大家提PR貢獻了。 目前我們只能提供一個最小可運行的範例,如果還有遇到各種情況,就需要大家一起幫忙了。 |
确实会有节点not ready,而且出现很频繁,看来大家都碰到这个问题了,希望作者有空解决一下 |
NETWORKING参数修改为:flannel-vxlan,可以临时解决问题,麻烦在于需要进入节点,自己更新镜像。 |
出现节点NotReady是由于默认的镜像CoreOS对AWS平台多网卡支持不好,只有eth0能通信,eth1或者eth0的其他网卡都不能通信,所以如果Node跟API Server之间用了其他非eth0的主IP,就会出现NotReady的情况。 解决办法: 在Makefile中,将Image修改为Amazon Linux 2的ami即可解决问题 |
@liualexiang 感謝,Amazon Linux 2 AMI之前有遇過其他問題 不知道現在情況如何,just FYI |
我也遇到使用coreos作为k8s node时的类似问题,经过试验发现如下情况供参考: 基本可确定为coreos上跟systemd有关的bug,但均未close。 目前查到的Workaround为: 之后重新启动node正常。 |
补充说明一点,我测试了最新可用的coreos ami问题依旧。 |
@MMichael-S 感謝! 看起來我們配置範例可能要考慮換成CentOS了,畢竟Marketplace已經有這個AMI可以用了。 歡迎大家多多測試。 |
我昨天也遇到类似问题,使用默认的MakeFile,按照要求修改,运行1个小时之后NotReady,采用Amazon Linux2 BJS最新版本,没有再复现这个问题 |
跑最新Amazon Linux 2 AMI看起來沒問題 寧夏Region這樣跑
建議大家優先試試看Amaozn Linux 2 AMI,如果沒問題的話,我們考慮換成Amazon Linux 2 AMI |
估计是和CNI兼容问题,集群跑一段时间之后,dns出现问题 目前看Ubuntu Server 16.04 LTS (HVM) 暂时没有发现问题 |
经多次频繁测试,虽然使用Amazon Linux 2不会遇到node NotReady情况,但是在集群启动半个小时之后,kube-DNS会出现crash的情况,整个集群的cluster ip不可达,部署的service无法正常访问。 目前发现使用Ubuntu 16.04,或者使用社区版k8镜像可以解决(在北京区和宁夏区分别测试,创建LB类型的svc,公网可成功访问)。 已成功测试的镜像(集群跑了将近20小时未发现异常): |
@liualexiang 如果kops 官方debian ami and Ubuntu都沒問題的話,可能跟隨上游使用debian比較好 我們在這邊討論AMI更換的事情吧! |
没有人发布这个问题?貌似这个是AWS中经常碰到的问题。
之前使用master:t2.medium,node:t2.large,并不会经常出现这个问题。现在回忆起来,时间不定,进入notready状态。
现在使用m4.large之后,这个问题稳定出现。
配置:
kops-cn标准配置,istio.
目前解决方案:
可能的解决方案
https://kubernetes.io/docs/tasks/debug-application-cluster/monitor-node-health/,记录节点出现问题的log。
Node becomes NotReady awslabs/amazon-eks-ami#79
期待
能够在配置上做到:监控节点状态,如果出现NOTREADY,则5min之后,重新调度
The text was updated successfully, but these errors were encountered: