ERROR:向 etcd 写入集群 Pod 网段
CSi-CJ opened this issue · comments
文档版本
说明你查看的是哪个 branch 的文档,即 K8S 版本,如 v1.8、v1.12。
master节点
现象描述
描述问题的现象。
在部署flannel网络的时候,操作到向 etcd 写入集群 Pod 网段信息对于${FLANNEL_ETCD_PREFIX}不存在表示疑惑,并且etcd3.4.3版本的指令参数设置已经有所改变,类似于 --cacert="" --cert="" --key="" ,并且我报的错误Error: unknown command "mk" for "etcdctl"
我也遇到mk这个问题了
同样遇到这两个问题了,希望一起讨论下:
- ${FLANNEL_ETCD_PREFIX} 压根不存在
- 执行 etcdctl 的时候提示 mk 不存在,使用 【ETCDCTL_API=2 etcdctl + 后续命令】也不好使
- 爬了一下问题记录,找到了#558,需要所有 etcd 节点都修改 /etc/systemd/system/etcd.service,并重启 etcd 服务即可执行后续设置命令
- FLANNEL_ETCD_PREFIX 估计是作者漏写了,可以随便写一个,也可以在 environment.sh 加入下面一条:
export FLANNEL_ETCD_PREFIX="/kubernetes/network"
具体文件内容:
cat /etc/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://github.com/coreos
[Service]
Type=notify
WorkingDirectory=/data/k8s/etcd/data
ExecStart=/opt/k8s/bin/etcd
--data-dir=/data/k8s/etcd/data
--wal-dir=/data/k8s/etcd/wal
--name=master01
--cert-file=/etc/etcd/cert/etcd.pem
--key-file=/etc/etcd/cert/etcd-key.pem
--trusted-ca-file=/etc/kubernetes/cert/ca.pem
--peer-cert-file=/etc/etcd/cert/etcd.pem
--peer-key-file=/etc/etcd/cert/etcd-key.pem
--peer-trusted-ca-file=/etc/kubernetes/cert/ca.pem
--peer-client-cert-auth
--client-cert-auth
--listen-peer-urls=https://10.19.1.99:2380
--initial-advertise-peer-urls=https://10.19.1.99:2380
--listen-client-urls=https://10.19.1.99:2379,http://127.0.0.1:2379
--advertise-client-urls=https://10.19.1.99:2379
--initial-cluster-token=etcd-cluster-0
--initial-cluster=master01=https://10.19.1.99:2380,master02=https://10.19.1.100:2380,master03=https://10.18.1.62:2380
--initial-cluster-state=new
--auto-compaction-mode=periodic
--auto-compaction-retention=1
--max-request-bytes=33554432
--quota-backend-bytes=6442450944
--heartbeat-interval=250
--election-timeout=2000 \ # 修改下面,新增支持 etcd v2
--enable-v2=true
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
重启服务:
systemctl daemon-reload
systemctl restart etcd.service