首页 > 解决方案 > 将 ConfigMap“kubeadm-config”中使用的配置存储在“kube-system”命名空间中

问题描述

我正在尝试使用本地链接设置 kubeadm v1.13.1

https://kubernetes.io/docs/setup/independent/high-availability/

设置 master 后,我得到了 join 命令并尝试按照说明在 Second Master 中执行。

sudo kubeadm join 10.240.0.16:6443 --token ih3zt7.iuhej18qzma0zigm --discovery-token-ca-cert-hash sha256:6d509781604e2b93c326318e9aa9d982a9bccbf3f8fb8feb1cf25afc1bbb53c0 --experimental-control

[飞行前] 运行飞行前检查

[发现] 尝试连接 API Server "10.240.0.16:6443"

[发现] 创建集群信息发现客户端,从“ https://10.240.0.16:6443 ”请求信息

[发现] 再次从“ https://10.240.0.16:6443 ”请求信息以针对固定的公钥验证 TLS

[发现] 集群信息签名和内容有效,TLS 证书针对固定根进行验证,将使用 API 服务器“10.240.0.16:6443”

[发现] 成功与 API Server "10.240.0.16:6443" 建立连接

[加入] 从集群中读取配置...

[加入] 仅供参考:您可以使用“kubectl -n kube-system get cm kubeadm-config -oyaml”查看此配置文件

[加入] 在初始化新的控制平面实例之前运行飞行前检查 [警告 Firewalld]:firewalld 处于活动状态,请确保端口 [6443 10250] 已打开,否则您的集群可能无法正常运行

[certs] 生成“apiserver”证书和密钥

[certs] apiserver 服务证书为 DNS 名称 [kb8-master2 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] 和 IP [10.96.0.1 10.240.0.33 10.240.0.16 10.240.0.16] 签名

[certs] 生成“apiserver-kubelet-client”证书和密钥

[certs] 生成“front-proxy-client”证书和密钥

[certs] 生成“etcd/peer”证书和密钥

[certs] etcd/peer 服务证书为 DNS 名称 [kb8-master2 localhost kb8-master1] 和 IP [10.240.0.33 127.0.0.1 ::1 10.240.0.4] 签名

[certs] 生成“etcd/healthcheck-client”证书和密钥

[certs] 生成“apiserver-etcd-client”证书和密钥

[certs] 生成“etcd/server”证书和密钥

[certs] etcd/server 为 DNS 名称 [kb8-master2 localhost kb8-master1] 和 IP [10.240.0.33 127.0.0.1 ::1 10.240.0.4] 签名

[certs] 有效的证书和密钥现在存在于“/etc/kubernetes/pki”中

[certs] 使用现有的“sa”密钥 [kubeconfig] 使用现有的最新 kubeconfig 文件:“/etc/kubernetes/admin.conf”

[kubeconfig] 编写“controller-manager.conf”kubeconfig 文件

[kubeconfig] 编写“scheduler.conf” kubeconfig 文件 [etcd] 检查 Etcd 集群健康状况

[kubelet] 从 kube-system 命名空间中的“kubelet-config-1.13”ConfigMap 下载 kubelet 的配置

[kubelet-start] 将 kubelet 配置写入文件“/var/lib/kubelet/config.yaml”

[kubelet-start] 将带有标志的 kubelet 环境文件写入文件“/var/lib/kubelet/kubeadm-flags.env”

[kubelet-start] 激活 kubelet 服务

[tlsbootstrap] 等待 kubelet 执行 TLS Bootstrap...

[patchnode] 将 CRI Socket 信息“/var/run/dockershim.sock”作为注解上传到 Node API 对象“kb8-master2”

[etcd] 宣布新的 etcd 成员加入现有的 etcd 集群

[etcd] 将本地 etcd 实例的静态 Pod 清单写入“/etc/kubernetes/manifests/etcd.yaml”

[uploadconfig] 将 ConfigMap "kubeadm-config" 中使用的配置存储在 "kube-system" 命名空间中 [kubelet-check] 40 秒的初始超时已过。

上传配置时出错:获取https://10.240.0.16:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config:意外 EOF

10.240.0.16 是负载平衡器 IP,这可能是什么问题。我也将编织网插件应用于master1

我还注意到 Master docker api-server 已退出。

在主节点中,我注意到以下

sudo docker ps -a | grep kube-apiserver

7629b25ba441 40a63db91ef8 "kube-apiserver --au..." 2 分钟前 退出 (255) 大约一分钟前

须藤码头工人日志 7629b25ba441

标志 --insecure-port 已被弃用,此标志将在未来版本中删除。

I1222 06:53:51.795759 1 server.go:557] 未指定外部主机,使用 10.240.0.4

I1222 06:53:51.796033 1 server.go:146] 版本:v1.13.1

I1222 06:53:52.251060 1 plugins.go:158] 按以下顺序成功加载了 8 个变异准入控制器:NamespaceLifecycle、LimitRanger、ServiceAccount、NodeRestriction、Priority、DefaultTolerationSeconds、DefaultStorageClass、MutatingAdmissionWebhook。

I1222 06:53:52.251161 1 plugins.go:161] 按以下顺序成功加载了 6 个验证准入控制器:LimitRanger、ServiceAccount、Priority、PersistentVolumeClaimResize、ValidatingAdmissionWebhook、ResourceQuota。I1222 06:53:52.253467 1 plugins.go:158] 按以下顺序成功加载了 8 个变异准入控制器:NamespaceLifecycle、LimitRanger、ServiceAccount、NodeRestriction、Priority、DefaultTolerationSeconds、DefaultStorageClass、MutatingAdmissionWebhook。

I1222 06:53:52.253491 1 plugins.go:161] 按以下顺序成功加载了 6 个验证准入控制器:LimitRanger、ServiceAccount、Priority、PersistentVolumeClaimResize、ValidatingAdmissionWebhook、ResourceQuota。

F1222 06:54:12.257490 1 storage_decorator.go:57] 无法创建存储后端:config (&{ /registry [ https://10.240.0.4:2379] /etc/kubernetes/pki/apiserver-etcd-client.key /etc/kubernetes/pki/apiserver-etcd-client.crt /etc/kubernetes/pki/etcd/ca.crt true 0xc0006e19e0 5m0s 1m0s}),错误(拨号 tcp 10.240.0.4:2379:连接:连接被拒绝)

标签: kuberneteskubeadm

解决方案


正如评论中提到的@Muthulingam,通过在标志中使用适当的集群版本替换通过kubeadm配置文件的主节点配置来解决该问题。kubernetesVersion


推荐阅读