首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cri-o时kubeadm init失败。

使用cri-o时kubeadm init失败。
EN

DevOps用户
提问于 2020-02-10 10:03:31
回答 1查看 1.7K关注 0票数 1

我一直在跟踪这个医生来部署kubernetes https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/

在启动"kubeadm init“命令并在其执行期间,这是输出:

等于“curl -sSL http://localhost:10248/healthz”的HTTP调用失败,出现错误: Get http://localhost:10248/healthz:拨号TCP127.0.0.1:10248: connect: connection拒绝。不幸的是,出现了一个错误:超时等待此错误可能由:-- kubelet没有运行-- kubelet是不健康的,这是由于节点在某种程度上的错误配置(所需的cgroup已禁用),如果您是在系统驱动的系统上,您可以尝试使用以下命令来排除错误:- 'systemctl status kubelet‘- 'journalctl -xeu kubelet’--另外,当容器运行时启动控制飞机组件时可能已经崩溃或退出。若要排除故障,请使用首选的容器运行时CLI (例如码头)列出所有容器。下面是一个例子,您可以列出在码头中运行的所有Kubernetes容器:- 'docker ps -a grep -v -v ps‘,一旦您找到了失败的容器,您就可以用以下方式检查它的日志:- 'docker日志容器in’错误执行阶段等待控制平面:无法初始化一个Kubernetes集群,以查看使用-v=5或更高级别执行的该错误的堆栈跟踪。

如果我安装了docker并将运行时切换到docker,而不是"remote“和"systemd”,它就会运行良好。

我尝试过几件事,但这是我最后一次尝试的内容:

cat etc/sysconfig/kubelet KUBELET_ARGS=“--容器-运行时=远程/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf -运行时-超时=10m-集群_域=topota.madre”system cat cat kubelet # /usr/lib/systemd/system/kubelet.service Description=kubelet: The Kubernetes Node Agent Documentation=https://kubernetes.io/docs/ ExecStart=/usr/bin/kubelet Restart=always StartLimitInterval=0 RestartSec=10 StartLimitInterval=0 RestartSec=10#注意:这个dropin只适用于kubeadm和kubelet v1.11+ Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml“--kubeconfig=/etc/ Environment=”KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml“#这是"kubeadm init”和"kubeadm联接“在运行时生成的文件,填充kubelet #这是一个用户可以用来重写kubelet的文件,作为最后的手段。优选地,用户应该在配置文件中使用# .NodeRegistration.KubeletExtraArgs对象。KUBELET_EXTRA_ARGS应该是sour环境文件=-/etc/sysconfig/kubelet ExecStart= ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS cat /var/lib/kubelet/kubeadm-ExecStart=.etc现在为空。

没有安装运行ok和Docker的Cri-O服务ir。

  • kubelet版本--短->客户端版本: v1.17.2
  • kubeadm版-o short -> v1.17.2
  • cat /etc/redhat-发布-> CentOS Linux 7.7.1908 (核心)
  • 板球版->
  • -> {“状态”:{“条件”:}
  • grep -i cgroup_manager /etc/crio/crio.conf -> cgroup_manager = "systemd“
  • -i "overlay|br_netfilter“-> “br_网络过滤器”,“覆盖”.
  • 其他“额外的args测试”(/etc/sysconfig/kubelet)

KUBELET_EXTRA_ARGS=-cgroup-driver=systemd --container-runtime-endpoint=unix:///var/run/crio/crio.sock

有什么帮助吗?

EN

回答 1

DevOps用户

回答已采纳

发布于 2020-02-10 19:24:08

我在RHEL7 7/CENTOS7 7上用kubernetes 1.17.1运行crio 1.17.0-rc1。我必须做的一件事是自己构建crio1.17,因为没有可用的包,我阅读了应该匹配的版本(crio1.17和k8 1.17)。

我使用systemd作为cgroup驱动程序。我不知道你的问题是什么,但我的设置是这样的:

代码语言:javascript
复制
cat /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS=--cgroup-driver=systemd --container-runtime-endpoint=unix:///var/run/crio/crio.sock --cloud-provider=external

我的kubeadm init行是(我使用env变量来设置控制平面端点):

代码语言:javascript
复制
kubeadm init --pod-network-cidr=10.244.0.0/16 --control-plane-endpoint {{ lookup('env','master_lb_ip_address') }}:6443 --upload-certs >> $HOME/log/init-cluster.log

我还编辑了/etc/crio/crio.conf,将systemd设置为cgroup管理器。

代码语言:javascript
复制
cgroup_manager = "systemd"

还要确保您正在启用在此页上指定的模块/ sysconfig选项。

代码语言:javascript
复制
modprobe overlay
modprobe br_netfilter

# Setup required sysctl params, these persist across reboots.
cat > /etc/sysctl.d/99-kubernetes-cri.conf <
票数 2
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/10757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档