Aks*_*ood 2 kubernetes kubectl kubeadm
我正在尝试运行Kubernetes并尝试使用sudo kubeadm init。根据官方文档的建议,交换已关闭。
问题是它显示警告:
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused.
Unfortunately, an error has occurred:
timed out waiting for the condition
This error is likely caused by:
- The kubelet is not running
- The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)
- No internet connection is available so the kubelet cannot pull or find the following control plane images:
- k8s.gcr.io/kube-apiserver-amd64:v1.11.2
- k8s.gcr.io/kube-controller-manager-amd64:v1.11.2
- k8s.gcr.io/kube-scheduler-amd64:v1.11.2
- k8s.gcr.io/etcd-amd64:3.2.18
- You can check or miligate this in beforehand with "kubeadm config images pull" to make sure the images
are downloaded locally and cached.
If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
- 'systemctl status kubelet'
- 'journalctl -xeu kubelet'
Additionally, a control plane component may have crashed or exited when started by the container runtime.
To troubleshoot, list all containers using your preferred container runtimes CLI, e.g. docker.
Here is one example how you may list all Kubernetes containers running in docker:
- 'docker ps -a | grep kube | grep -v pause'
Once you have found the failing container, you can inspect its logs with:
- 'docker logs CONTAINERID'
couldn't initialize a Kubernetes cluster
Run Code Online (Sandbox Code Playgroud)
我正在使用的docker版本是我正在Docker version 17.03.2-ce, build f5ec1e2
使用Ubuntu 16.04 LTS 64bit
泊坞窗图像显示以下图像:
REPOSITORY TAG IMAGE ID CREATED SIZE
k8s.gcr.io/kube-apiserver-amd64 v1.11.2 821507941e9c 3 weeks ago 187 MB
k8s.gcr.io/kube-controller-manager-amd64 v1.11.2 38521457c799 3 weeks ago 155 MB
k8s.gcr.io/kube-proxy-amd64 v1.11.2 46a3cd725628 3 weeks ago 97.8 MB
k8s.gcr.io/kube-scheduler-amd64 v1.11.2 37a1403e6c1a 3 weeks ago 56.8 MB
k8s.gcr.io/coredns 1.1.3 b3b94275d97c 3 months ago 45.6 MB
k8s.gcr.io/etcd-amd64 3.2.18 b8df3b177be2 4 months ago 219 MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 8 months ago 742 kB
Run Code Online (Sandbox Code Playgroud)
完整的日志可以在这里找到:https : //pastebin.com/T5V0taE3
我没有在互联网上找到任何解决方案。
编辑:
docker ps -a输出:
ubuntu@ubuntu-HP-Pavilion-15-Notebook-PC:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
Run Code Online (Sandbox Code Playgroud)
journalctl -xeu kubelet输出:
journalctl -xeu kubelet
-- Subject: Unit kubelet.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit kubelet.service has finished shutting down.
Sep 01 10:40:05 ubuntu-HP-Pavilion-15-Notebook-PC systemd[1]: Started kubelet: T
-- Subject: Unit kubelet.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit kubelet.service has finished starting up.
--
-- The start-up result is done.
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: Flag --cgroup-d
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: Flag --cgroup-d
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: I0901 10:40:06.
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: I0901 10:40:06.
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: I0901 10:40:06.
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: I0901 10:40:06.
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: F0901 10:40:06.
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC systemd[1]: kubelet.service: M
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC systemd[1]: kubelet.service: U
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC systemd[1]: kubelet.service: F
lines 788-810/810 (END)
-- Subject: Unit kubelet.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit kubelet.service has finished shutting down.
Sep 01 10:40:05 ubuntu-HP-Pavilion-15-Notebook-PC systemd[1]: Started kubelet: The Kubernetes Node Agent.
-- Subject: Unit kubelet.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit kubelet.service has finished starting up.
--
-- The start-up result is done.
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: Flag --cgroup-driver has been deprecated, This parameter should be set via the
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: Flag --cgroup-driver has been deprecated, This parameter should be set via the
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: I0901 10:40:06.117131 9107 server.go:408] Version: v1.11.2
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: I0901 10:40:06.117406 9107 plugins.go:97] No cloud provider specified.
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: I0901 10:40:06.121192 9107 certificate_store.go:131] Loading cert/key pair
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: I0901 10:40:06.145720 9107 server.go:648] --cgroups-per-qos enabled, but --
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC kubelet[9107]: F0901 10:40:06.146074 9107 server.go:262] failed to run Kubelet: Running wi
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC systemd[1]: kubelet.service: Main process exited, code=exited, status=255/n/a
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC systemd[1]: kubelet.service: Unit entered failed state.
Sep 01 10:40:06 ubuntu-HP-Pavilion-15-Notebook-PC systemd[1]: kubelet.service: Failed with result 'exit-code'.
~
PORTS NAMES
Run Code Online (Sandbox Code Playgroud)
任何帮助/建议/意见将不胜感激。
Ham*_*eji 18
我在尝试初始化 k8s 集群时遇到了同样的问题。就我而言,错误源于 Docker 和 Kubelet 的 cgroup 不一致。
要解决它,首先找到Docker cgroup:
docker info | grep Cgroup
上述命令的结果将是这样的:
Cgroup Driver: cgroupfs
Cgroup Version: 1
Run Code Online (Sandbox Code Playgroud)
然后,更新 kubelet args ( KUBELET_KUBECONFIG_ARGS)/etc/systemd/system/kubelet.service.d/10-kubeadm.conf并添加--cgroup-driver与 docker cgroup 对应的标志(在本例中为cgroupfs)。
修改后我的配置文件如下所示:
...
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/e`tc/kubernetes/kubelet.conf --cgroup-driver=cgroupfs"
...
Run Code Online (Sandbox Code Playgroud)
最后,运行kubeadm reset然后kubeadm init.
小智 11
我最近遇到了类似的问题。问题是 cgroup 驱动程序。Kubernetes cgroup 驱动程序设置为系统,但 docker 设置为 systemd。所以我创建了'/etc/docker/daemon.json'并在下面添加:
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
Run Code Online (Sandbox Code Playgroud)
然后
systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet
Run Code Online (Sandbox Code Playgroud)
再次运行 kubeadm init 或 kubeadm join。
该错误是由解决
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
Run Code Online (Sandbox Code Playgroud)
重新启动机器。
小智 5
我遇到了完全相同的问题。关闭交换可以解决这个问题。\n但我用不同的方式避免了它,所以我在这里发布我的解决方案以供参考。
\n\nkubelet 中的交换检查有两个阶段。\n一个是 kubeadm 命令行工具,另一个是 kubelet 服务。
\n\n因此,如果我们不关闭交换,kubeadm 应该显示以下消息
\n\n[ERROR Swap]: running with swap on is not supported. Please disable swap\nRun Code Online (Sandbox Code Playgroud)\n\n那么它将中止 init 或 join 进程。\n通过向 kubeadm 添加参数“--ignore-preflight-errors=Swap”可以避免 kubeadm 检查。\n这里是一个示例:
\n\nsudo kubeadm join 10.50.10.198:6443 --token XXXX.XXXXXa --discovery-token-ca-cert-hash sha256:XX48cb7c381 --ignore-preflight-errors=Swap\nRun Code Online (Sandbox Code Playgroud)\n\n但是,如果我们运行这个。Kubelet服务会阻塞我们,就会出现这个线程的问题。\n我们可以添加一个配置文件来避免这种情况:
\n\n cd /etc/systemd/system/kubelet.service.d\n touch 20-allow-swap.conf\nRun Code Online (Sandbox Code Playgroud)\n\n将这些内容添加到该文件中。
\n\n[Service] \nEnvironment="KUBELET_EXTRA_ARGS=--fail-swap-on=false\xe2\x80\x9d\nRun Code Online (Sandbox Code Playgroud)\n\n然后
\n\n systemctl daemon-reload\n systemctl restart kubelet\nRun Code Online (Sandbox Code Playgroud)\n\n最后不要忘记运行 kubeadm join agin,使用“--ignore-preflight-errors=Swap”
\n| 归档时间: |
|
| 查看次数: |
6625 次 |
| 最近记录: |