• 单节点etcd publish error

正在愉快的进行jenkins流程,突然发现etcd连接不上去了。重新reboot后发现日志publish error

Oct  :: k8s-master etcd: recognized and used environment variable ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379,http://etcd:4001
Oct :: k8s-master etcd: recognized environment variable ETCD_NAME, but unused: shadowed by corresponding flag
Oct :: k8s-master etcd: recognized environment variable ETCD_DATA_DIR, but unused: shadowed by corresponding flag
Oct :: k8s-master etcd: recognized environment variable ETCD_LISTEN_CLIENT_URLS, but unused: shadowed by corresponding flag
Oct :: k8s-master etcd: etcd Version: 3.1.
Oct :: k8s-master etcd: Git SHA: 21fdcc6
Oct :: k8s-master etcd: Go Version: go1.7.4
Oct :: k8s-master etcd: Go OS/Arch: linux/amd64
Oct :: k8s-master etcd: setting maximum number of CPUs to , total number of available CPUs is
Oct :: k8s-master etcd: the server is already initialized as member before, starting as etcd member...
Oct :: k8s-master etcd: listening for peers on http://localhost:2380
Oct :: k8s-master etcd: listening for client requests on 0.0.0.0:
Oct :: k8s-master etcd: listening for client requests on 0.0.0.0:
Oct :: k8s-master etcd: recovered store from snapshot at index
Oct :: k8s-master etcd: name = master
Oct :: k8s-master etcd: data dir = /var/lib/etcd/default.etcd
Oct :: k8s-master etcd: member dir = /var/lib/etcd/default.etcd/member
Oct :: k8s-master etcd: heartbeat = 100ms
Oct :: k8s-master etcd: election = 1000ms
Oct :: k8s-master etcd: snapshot count =
Oct :: k8s-master etcd: advertise client URLs = http://etcd:2379,http://etcd:4001
Oct :: k8s-master etcd: ignored file -.wal.broken in wal
Oct :: k8s-master etcd: restarting member 8e9e05c52164694d in cluster cdf818194e3a8c32 at commit index
Oct :: k8s-master etcd: 8e9e05c52164694d became follower at term
Oct :: k8s-master etcd: newRaft 8e9e05c52164694d [peers: [8e9e05c52164694d], term: , commit: , applied: , lastindex: , lastterm: ]
Oct :: k8s-master etcd: enabled capabilities for version 3.1
Oct :: k8s-master etcd: added member 8e9e05c52164694d [http://localhost:2380] to cluster cdf818194e3a8c32 from store
Oct :: k8s-master etcd: set the cluster version to 3.1 from store
Oct :: k8s-master etcd: starting server... [version: 3.1., cluster version: 3.1]
Oct :: k8s-master etcd: publish error: etcdserver: request timed out
Oct :: k8s-master etcd: publish error: etcdserver: request timed out
Oct :: k8s-master etcd: publish error: etcdserver: request timed out
Oct :: k8s-master etcd: publish error: etcdserver: request timed out
Oct :: k8s-master etcd: publish error: etcdserver: request timed out
Oct :: k8s-master etcd: publish error: etcdserver: request timed out

查了一下,原因可能是因为主机压力比较大没有在5s内将信息写回照成不一致。

解决办法是删除data dir: /var/lib/etcd/default.etcd 中的数据,然后启动成功

不好的地方是,所有的信息基本全丢,flanneld信息又需要再写一次

etcdctl mk /atomic.io/network/config '{ "Network": "10.0.0.0/16" }'

各种pv,pvc,pod啥信息也没有了。。。。。

  • Docker Service无法启动

在一台nodes节点上因为连接不上etcd导致启动失败,因为flannel组件需要连接etcd获取网段,docker服务依赖于flanned Service

[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
After=etcd.service
Before=docker.service

分析命令主要包括

systemctl list-unit-files 列出所有可用的Unit
systemctl list-units 列出所有正在运行的Unit
systemctl --failed 列出所有失败单元
systemctl mask httpd.service 禁用服务
systemctl unmask httpd.service
systemctl kill httpd 杀死服务

解决办法,使用systemctl unmask flanneld.service禁止flanneld服务,然后删除

/usr/lib/systemd/system/flanneld.service
/etc/systemd/system/docker.service.requires/flanneld.service,

使用systemctl daemon-reload重新加载服务配置文件,最后systemctl start docker.service,

发现docker启动成功了

05-21 07:23