在配置coreOS + kubernetes集群时,法兰绒似乎无法正常工作

时间:2017-03-07 14:09:54

标签: cluster-computing kubernetes coreos etcd

我在4台电脑上安装了coreOS baremetal。我为所有机器设置了静态IP。我关注了coreOS + kubernetes的官方coreOS tutorial

由于我有一个静态网络配置,并且我有一个多节点的etcd集群,我已经按照以下tutorial进行了bootstrapping etcd。我已在所有PC上运行脚本并使用etcdctl member list我看到所有节点(PC)都存在于etcd群集中。

然后我转到第2步(部署Kubernetes主节点),我已逐步按照说明进行操作。

我在这里遇到了问题:

curl -X PUT -d "value={\"Network\":\"$POD_NETWORK\",\"Backend\":{\"Type\":\"vxlan\"}}" "$ETCD_SERVER/v2/keys/coreos.com/network/config"

我已使用默认POD_NETWORK(如步骤1中所述)和ETCD_ENDPOINTS之一作为ETCD_SERVER。但是,当我卷曲时,连接已建立,但我收到了回复404 page not found

我认为问题是在法兰绒或者etcd(可能是etcd)。即使我只是curl $ETCD_SERVER,我也找不到页面。经过几天我很遗憾,我真的不知道可能出现什么问题以及如何解决这个问题?如果您需要更多信息,请告诉我。如果你只是指出我正确的方向,所以我可以开始解决这个问题,我很感激。感谢

编辑: 我发现如果我curl "${ETCD_SERVER}/version"我收到了正确答复({"etcdserver":"2.3.7","etcdcluster":"2.3.0"}),如果有帮助的话。

更新 我发现CURL没有用,因为我将ETCD_SERVER设置为错误的端口(2380而不是2379)。现在有效。但是,flanneld服务仍然无法启动并返回错误。 Job for flanneld.service failed because the control process exited with error code. 这是journalctl -xe

的输出
-- Subject: Unit flannel-docker-opts.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit flannel-docker-opts.service has failed.
-- 
-- The result is failed.
Mar 08 08:43:26 kubernetes-4 systemd[1]: flannel-docker-opts.service: Unit entered failed state.
Mar 08 08:43:26 kubernetes-4 systemd[1]: flannel-docker-opts.service: Failed with result 'exit-code'.
Mar 08 08:43:30 kubernetes-4 sudo[27594]:      kub : TTY=pts/2 ; PWD=/home/kub ; USER=root ; COMMAND=/bin/systemctl start flanneld
Mar 08 08:43:30 kubernetes-4 sudo[27594]: pam_unix(sudo:session): session opened for user root by kub(uid=0)
Mar 08 08:43:30 kubernetes-4 sudo[27594]: pam_systemd(sudo:session): Cannot create session: Already running in a session
Mar 08 08:43:36 kubernetes-4 systemd[1]: flanneld.service: Service hold-off time over, scheduling restart.
Mar 08 08:43:36 kubernetes-4 systemd[1]: Stopped flannel - Network fabric for containers (System Application Container).
-- Subject: Unit flanneld.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit flanneld.service has finished shutting down.
Mar 08 08:43:36 kubernetes-4 systemd[1]: Starting flannel - Network fabric for containers (System Application Container)...
-- Subject: Unit flanneld.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit flanneld.service has begun starting up.
Mar 08 08:43:36 kubernetes-4 rkt[27608]: rm: unable to resolve UUID from file: open /var/lib/coreos/flannel-wrapper.uuid: no such file or directory
Mar 08 08:43:36 kubernetes-4 rkt[27608]: rm: failed to remove one or more pods
Mar 08 08:43:36 kubernetes-4 flannel-wrapper[27625]: + exec /usr/bin/rkt run --uuid-file-save=/var/lib/coreos/flannel-wrapper.uuid --trust-keys-from-https --mount volume=notify,target=/run/systemd/notify 
Mar 08 08:43:36 kubernetes-4 flannel-wrapper[27625]: run: discovery failed
Mar 08 08:43:36 kubernetes-4 systemd[1]: flanneld.service: Main process exited, code=exited, status=254/n/a
Mar 08 08:43:36 kubernetes-4 rkt[27652]: stop: unable to resolve UUID from file: open /var/lib/coreos/flannel-wrapper.uuid: no such file or directory
Mar 08 08:43:36 kubernetes-4 systemd[1]: Failed to start flannel - Network fabric for containers (System Application Container).
-- Subject: Unit flanneld.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit flanneld.service has failed.
-- 
-- The result is failed.
Mar 08 08:43:36 kubernetes-4 systemd[1]: flanneld.service: Unit entered failed state.
Mar 08 08:43:36 kubernetes-4 systemd[1]: flanneld.service: Failed with result 'exit-code'.
Mar 08 08:43:36 kubernetes-4 sudo[27594]: pam_unix(sudo:session): session closed for user root
Mar 08 08:43:36 kubernetes-4 systemd[1]: Starting flannel docker export service - Network fabric for containers (System Application Container)...
-- Subject: Unit flannel-docker-opts.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit flannel-docker-opts.service has begun starting up.
Mar 08 08:43:36 kubernetes-4 rkt[27659]: rm: unable to resolve UUID from file: open /var/lib/coreos/flannel-wrapper2.uuid: no such file or directory
Mar 08 08:43:36 kubernetes-4 rkt[27659]: rm: failed to remove one or more pods
Mar 08 08:43:36 kubernetes-4 flannel-wrapper[27674]: + exec /usr/bin/rkt run --uuid-file-save=/var/lib/coreos/flannel-wrapper2.uuid --trust-keys-from-https --net=host --volume run-flannel,kind=host,source
Mar 08 08:43:38 kubernetes-4 flannel-wrapper[27674]: run: discovery failed
Mar 08 08:43:38 kubernetes-4 systemd[1]: flannel-docker-opts.service: Main process exited, code=exited, status=254/n/a
Mar 08 08:43:38 kubernetes-4 systemd[1]: Failed to start flannel docker export service - Network fabric for containers (System Application Container).
-- Subject: Unit flannel-docker-opts.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit flannel-docker-opts.service has failed.
-- 
-- The result is failed.
Mar 08 08:43:38 kubernetes-4 systemd[1]: flannel-docker-opts.service: Unit entered failed state.
Mar 08 08:43:38 kubernetes-4 systemd[1]: flannel-docker-opts.service: Failed with result 'exit-code'.
Mar 08 08:43:39 kubernetes-4 sudo[27708]:      kub : TTY=pts/2 ; PWD=/home/kub ; USER=root ; COMMAND=/bin/journalctl -xe
Mar 08 08:43:39 kubernetes-4 sudo[27708]: pam_unix(sudo:session): session opened for user root by kub(uid=0)
Mar 08 08:43:39 kubernetes-4 sudo[27708]: pam_systemd(sudo:session): Cannot create session: Already running in a session

更新2:(为flanneld和flannel-docker-opts服务添加systemctl输出)

systemctl cat flannel-docker-opts输出:

# /usr/lib/systemd/system/flannel-docker-opts.service
[Unit]
Description=flannel docker export service - Network fabric for containers (System Application Container)
Documentation=https://github.com/coreos/flannel
PartOf=flanneld.service
Before=docker.service

[Service]
Type=oneshot
TimeoutStartSec=60

Environment="FLANNEL_IMAGE_TAG=v0.6.2"
Environment="RKT_RUN_ARGS=--uuid-file-save=/var/lib/coreos/flannel-wrapper2.uuid"
Environment="FLANNEL_IMAGE_ARGS=--exec=/opt/bin/mk-docker-opts.sh"

ExecStartPre=-/usr/bin/rkt rm --uuid-file=/var/lib/coreos/flannel-wrapper2.uuid
ExecStart=/usr/lib/coreos/flannel-wrapper -d /run/flannel/flannel_docker_opts.env -i
ExecStop=-/usr/bin/rkt stop --uuid-file=/var/lib/coreos/flannel-wrapper2.uuid

[Install]
WantedBy=multi-user.target

systemctl cat flanneld输出:

# /usr/lib/systemd/system/flanneld.service
[Unit]
Description=flannel - Network fabric for containers (System Application Container)
Documentation=https://github.com/coreos/flannel
After=etcd.service etcd2.service etcd-member.service
Before=docker.service flannel-docker-opts.service
Requires=flannel-docker-opts.service

[Service]
Type=notify
Restart=always
RestartSec=10s
LimitNOFILE=40000
LimitNPROC=1048576

Environment="FLANNEL_IMAGE_TAG=v0.6.2"
Environment="FLANNEL_OPTS=--ip-masq=true"
Environment="RKT_RUN_ARGS=--uuid-file-save=/var/lib/coreos/flannel-wrapper.uuid"
EnvironmentFile=-/run/flannel/options.env

ExecStartPre=/sbin/modprobe ip_tables
ExecStartPre=/usr/bin/mkdir --parents /var/lib/coreos /run/flannel
ExecStartPre=-/usr/bin/rkt rm --uuid-file=/var/lib/coreos/flannel-wrapper.uuid
ExecStart=/usr/lib/coreos/flannel-wrapper $FLANNEL_OPTS
ExecStop=-/usr/bin/rkt stop --uuid-file=/var/lib/coreos/flannel-wrapper.uuid

[Install]
WantedBy=multi-user.target

# /etc/systemd/system/flanneld.service.d/40-ExecStartPre-symlink.conf
[Service]
ExecStartPre=/usr/bin/ln -sf /etc/flannel/options.env /run/flannel/options.env

更新3: 使用journalctl -xer我会收到一个新错误,如果这有用的话:

Mar 09 08:39:15 kubernetes-4 locksmithd[1147]: Unlocking old locks failed: [etcd.service etcd2.service] are inactive. Retrying in 5m0s.
Mar 09 08:39:15 kubernetes-4 locksmithd[1147]: [etcd.service etcd2.service] are inactive

1 个答案:

答案 0 :(得分:0)

来自其中一个Etcd节点,或任何节点,如果您在代理模式下将Etcd打开。尝试使用CoreOS中包含的res.render()二进制文件来查找群集运行状况:

etcdctl

应该显示如下内容:

etcdctl cluster-health

另请尝试:

member ce2a822cea30bfca is healthy: got healthy result from http://10.129.69.201:2379
cluster is healthy