kubernetes - 将 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:连接:连接被拒绝)
解决方案
正如评论中提到的@Muthulingam,通过在标志中使用适当的集群版本替换通过kubeadm配置文件的主节点配置来解决该问题。kubernetesVersion
推荐阅读
- mysql - 我想将两个新字段添加到与带有 case 语句的表无关的视图中
- c# - 如何在类中的属性中获取属性的自定义属性
- java - spring boot CrudRepository 查询传递对象mysql
- amazon-web-services - K8s 服务类型 ELB 卡在进行中
- javascript - 当我向下滚动一点时,我希望它在滑块下方滚动
- c - C语言如何计算运行时间
- javascript - 将事件侦听器添加到带有密码字段的按钮
- typescript - Typescript Generic 作为参数
- java - 如何在 android studio 的库模块中使用 getResources() 函数
- azure-cosmosdb - Cosmos DB 中 DocumentClient 的默认连接策略