试图使用Kubernetes存储库的分支分支-1.19使用kubeadm部署k8主节点。在运行kubeadm init {opts...}之前需要进行什么配置
kubeadm 指南建议使用apt安装kubeadm、kubectl和kubelet。指南在安装之后指出,“kubelet现在每隔几秒钟重新启动一次,因为它在崩溃循环中等待kubeadm告诉它该做什么。”
在本地存储库中,我使用“make”方法编译Kubernetes二进制文件(kubeadm、kubectl和kubelet)。然后使用exec perms将它们放到/usr/local/bin的主节点上。
执行kubeadm init失败,因为kubelet没有运行/配置。但是,从kubelet二进制文件初始化所需的kubelet.service似乎需要我假设的kubeadm生成的证书(ca.pem)和信任(kubelet.config.yaml)。所以关于库贝丁和库贝利特的鸡蛋情况。
那么问题是,apt安装完成了哪些额外的配置来初始化kubelet.service?是否有一个最小的配置和服务模板kubelet可以在kubeadm init之前启动?kubeadm是否取代了预初始化的kubelet使用的证书?
任何帮助/指导都将不胜感激。用于从源构建的联机文档/线程是稀疏的。
发布于 2020-10-06 09:19:28
对于任何搜索者,都找到了解决方案:
[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_ARGSsystemctl daemon-reload systemctl enable kubelet --now systemctl start kubelet简而言之,这在kubeadm init之前初始化了kubelet.service系统d进程;带有一些默认/最小的信任。kubeadm init然后修改流程对执行的信任。
https://stackoverflow.com/questions/64158642
复制相似问题