当前位置: 首页 > 知识库问答 >
问题:

从源代码版本运行Kubeadm

燕宜修
2023-03-14

尝试使用 kubeadm 从 Kubernetes 存储库的分支分支 1.19 部署 k8 主节点。在运行 kubeadm init {opts...} 之前需要什么配置

kubeadm指南建议使用apt安装kubeadm、kubectl和kubelet。该指南指出,安装后,“kubelet现在每隔几秒钟重新启动一次,因为它在一个crashloop中等待kubeadm告诉它该做什么。”

从本地存储库中,我使用“make all”方法编译Kubernetes二进制文件(kubeadm、kubectl和kubelet)。然后用exec perms将它们scp到位于/usr/local/bin的主节点。

执行kubeadm init失败,因为kubelet未运行/配置。但是,初始化所需的kubelet。来自kubelet二进制文件的服务似乎需要我假设kubeadm生成的证书(ca.pem)和配置(kubelet.config.yaml)。所以,关于库比亚姆和库贝莱特的鸡蛋情况。

问题是,apt安装完成了哪些额外的配置来初始化kubelet。服务是否有最低配置

非常感谢任何帮助/指导。从源代码构建的在线文档/线程很少

共有1个答案

公羊奇
2023-03-14

对于任何搜索的人,找到解决方案:

    < li >通过apt: apt-transport-https,conntrack,socat,ipset安装依赖项 < li >将kubelet、kubeadm、kubectl二进制文件移动到/usr/local/bin,并给予执行权限 < li >将systemd kubelet.service文件写入/etc/systemd/system
[Unit]
Description=kubelet: The Kubernetes Node Agent
Documentation=https://kubernetes.io/docs/home/
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/local/bin/kubelet
Restart=always
StartLimitInterval=0
RestartSec=10

[Install]
WantedBy=multi-user.target
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/default/kubelet
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
ExecStart=
ExecStart=/usr/local/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS

构建cni插件https://github.com/containernetworking/plugins例如,对于linux,build_linux.sh

将cni插件二进制文件复制到/opt/cni

启动Kubeletsystemctl守护程序重新加载systemctl启用Kubelet--now

现在库比德姆可以运行了

简而言之,这在kubeadm初始化之前初始化了kubelet.service systemd进程;带有一些默认/最小配置。kubeadm init然后在执行时修改流程的配置。

 类似资料:
  • 你想从源码运行Appium并帮助修复BUG和添加功能吗? 真棒!只需要fork工程,添加一个修改,然后发送pull请求即可! 在开始之前请阅读我们的代码风格指南(Style Guide。 在发送pull请求前请确保通过单元和功能测试;关于如何运行测试等更多信息,请继续阅读! 首先,确保你阅读README文件且按照设置说明走。 从源码配置 Appium Appium 的配置涉及: Appium Se

  • 问题内容: 我快要解决这个问题了。 下面是代码: 问题答案: 您的代码是正确的,我相信您不会收到异常,如果您使用进行阅读,则不会得到任何东西。 已经说过,现在命令是100%以这种方式执行,这是因为您正在回显某些内容,需要使用来将其读回。 检查以下示例,该示例将成功创建一个名目录并打印您正在回显的内容。为了将其放入日志文件,恐怕您可以使用“>”来完成它,您可能必须使用一些编辑器命令或使用Java创建

  • 这是我第一次在java中尝试python。我试图从我的代码中执行python脚本,如下所示。 但我有以下例外 无法运行程序“python”:CreateProcess error=2,系统找不到指定的文件 我已经安装了python。我不确定为什么找不到该文件。我试着跟随这个链接,但它并没有解决我的问题。 提前谢谢。 编辑1 我尝试了“Viacheslav Vedenin”给出的示例代码,当我执行我

  • 问题内容: 我最近开始了一个Django项目,并很快意识到,由于多种原因,virtualenv真的很有用。我设置了virtualenv和我的项目,但是现在我想知道应该将哪个文件添加到源代码管理(在我的情况下是Mercurial)。我应该在venv文件夹下添加所有文件吗?如何确保同事可以克隆并立即开始工作而无需再次设置环境? 问题答案: 你会生成一个与项目一起提交的“需求”文件(通常是): 然后,每

  • 源代码排版 所有风格都又丑又难读,自己的除外。几乎人人都这样想。把“自己的除外”拿掉,他们或许是对的… ——Jerry Coffin(论缩排) 使用 UTF-8 作为源文件的编码。 每个缩排层级使用两个空格。不要使用制表符。 # 差 - 四个空格 def some_method do_something end # 好 def some_method do_something end

  • phantomjs 可能会遇到无法下载的问题,建议先用 cnpm 全局安装 cnpm install -g phantomjs-prebuilt 请更新 NodeJS 版本到 v7.6.0 以上,build 命令逐步使用 async。 yarn # 使用 yarn.lock 保证依赖版本一致 yarn dev # 或者 npm run dev yarn dev -- --env.includ