Kubeadm: 由未知机构签署的证书--企业网络-代理

创建于 2018-06-22  ·  4评论  ·  资料来源: kubernetes/kubeadm

这是请求帮助吗?

是的

在提交这个问题之前,您在 kubeadm issues 中搜索了哪些关键字?

x509:由未知机构签署的证书 -- INSIDE CORPORATE NETWORK

如果您发现任何重复项,您应该在那里回复并关闭此页面。

如果您没有发现任何重复项,请删除此部分并继续。

这是错误报告还是功能请求?

选择一项:错误报告或功能请求

错误报告

版本

kubeadm 版本(使用kubeadm version ):--1.10.4
kubeadm 版本: &version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.4", GitCommit:"5ca598b4ba5abb89bb773071ce452e33fb66339d", GitTreeState:"clean", BuildDate:"606T 59Z", GoVersion:"go1.9.3", 编译器:"gc", 平台:"linux/amd64"}

环境:

  • Kubernetes 版本(使用kubectl version ):
  • 云提供商或硬件配置
  • 操作系统(例如来自 /etc/os-release):
    NAME="CentOS Linux"
    VERSION="7 (核心)"
    ID=“centos”
    ID_LIKE="rhel fedora"
    VERSION_ID="7"
    PRETTY_NAME="CentOS Linux 7 (核心)"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o: centos:centos :7"
    HOME_URL=" https://www.centos.org/ "
    BUG_REPORT_URL=" https://bugs.centos.org/ "

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

  • 内核(例如uname -a ):
    Linux kubem13.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
  • 其他

发生了什么?

抛出错误 x509:由未知机构签署的证书

你预计会发生什么?

需要在没有任何错误的情况下运行 kubeadm init

如何重现它(尽可能少且精确)?

还有什么我们需要知道的吗?

我在几个文件中配置了代理。

.bash_profile
/etc/环境
/etc/systemd/system/docker.service.d/http-proxy.conf

/etc/systemd/system/docker.service.d/http-proxy.conf

[服务]
环境="HTTP_PROXY=http://@:8080"
环境="HTTPS_PROXY=https://@:8080"
环境="NO_PROXY=localhost,127.0.0.1,10.169.150.123"

/etc/环境

导出 http_proxy="http://@:8080"
导出 https_proxy="https://@:8080"
导出 HTTP_PROXY="http://@:8080"
导出 HTTPS_PROXY="https://@:8080"
export no_proxy="10.169.150.123,127.0.0.1,localhost"

在 Bash 配置文件中

导出 KUBECONFIG=/etc/kubernetes/admin.conf
导出 http_proxy="http://@:8080"
导出 https_proxy="https://@:8080"
导出 HTTP_PROXY="http://@:8080"
导出 HTTPS_PROXY="https://@:8080"
export no_proxy="10.169.150.123,127.0.0.1,localhost"

打开必要的端口

cat /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2379-2380 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10250 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10251 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10252 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10255 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

并重新加载防火墙。

还检查了禁用防火墙。

禁用 SELINUX

########Commented KUBELET_NETWORK_ARGS

/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

[服务]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"

Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"

Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
环境="KUBELET_CADVISOR_ARGS=--cadvisor-port=0"
环境="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
Environment="KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true --cert-dir=/var/lib/kubelet/pki"
环境="KUBELET_EXTRA_ARGS=--fail-swap-on=false"
执行开始=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICTRAG_ARGS

如果我通过传递版本运行,

[ root@kubem1 ~]# kubeadm init --kubernetes-version=v1.10.4
[init] 使用 Kubernetes 版本:v1.10.4
[init] 使用授权模式:[Node RBAC]
[预检] 运行预检。
[警告 HTTPProxyCIDR]:连接到“10.96.0.0/12”使用代理“https:// * * * * ”。 这可能会导致集群设置出现故障。 确保 Pod 和服务 IP 范围正确指定为代理配置中的例外
[证书] 生成的 ca 证书和密钥。
[certificates] 生成的 apiserver 证书和密钥。
[证书] apiserver 服务证书是为 DNS 名称签名的 [kubem1kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] 和 IP [10.96.0.1 10.169.150.123]
[certificates] 生成的 apiserver-kubelet-client 证书和密钥。
[证书] 生成的 sa 密钥和公钥。
[证书] 生成的 front-proxy-ca 证书和密钥。
[证书] 生成的前端代理客户端证书和密钥。
[证书] 生成的 etcd/ca 证书和密钥。
[证书] 生成的 etcd/服务器证书和密钥。
[证书] etcd/server 服务证书为 DNS 名称 [localhost] 和 IP [127.0.0.1] 签名
[证书] 生成的 etcd/peer 证书和密钥。
[证书] etcd/peer 服务证书为 DNS 名称 [kubem1. * * ** ] 和 IP [10.169.150.123]
[证书] 生成的 etcd/healthcheck-client 证书和密钥。
[证书] 生成的 apiserver-etcd-client 证书和密钥。
[证书] 有效的证书和密钥现在存在于“/etc/kubernetes/pki”中
[kubeconfig] 将 KubeConfig 文件写入磁盘:“/etc/kubernetes/admin.conf”
[kubeconfig] 将 KubeConfig 文件写入磁盘:“/etc/kubernetes/kubelet.conf”
[kubeconfig] 将 KubeConfig 文件写入磁盘:“/etc/kubernetes/controller-manager.conf”
[kubeconfig] 将 KubeConfig 文件写入磁盘:“/etc/kubernetes/scheduler.conf”
[controlplane] 将组件 kube-apiserver 的静态 Pod 清单写入“/etc/kubernetes/manifests/kube-apiserver.yaml”
[controlplane] 将组件 kube-controller-manager 的静态 Pod 清单写入“/etc/kubernetes/manifests/kube-controller-manager.yaml”
[controlplane] 将组件 kube-scheduler 的静态 Pod 清单写入“/etc/kubernetes/manifests/kube-scheduler.yaml”
[etcd] 将本地 etcd 实例的静态 Pod 清单写入“/etc/kubernetes/manifests/etcd.yaml”
[init] 等待 kubelet 从目录“/etc/kubernetes/manifests”启动控制平面作为静态 Pod。
[init] 如果必须拉取控制平面映像,这可能需要一分钟或更长时间。

#############IN 错误日志

六月 22 04:31:34 kubem1。 * * * * kubelet[7275]: E0622 04:31:34.942572 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: 无法列出 *v1.Pod: Get https ://10.169.150.123 :6443/api/v1/pods?fieldSelector=spec.nodeName%3Dkubem1。 * * * * &limit=500&resourceVersion=0:拨tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:35 kubem1。 * * * * kubelet[7275]: E0622 04:31:35.888104 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:461: 无法列出 *v1.Node: 获取https:// /10.169.150.123 :6443/api/v1/nodes?fieldSelector=metadata.name%3Dkubem1。 * * * * &limit=500&resourceVersion=0:拨tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:35 kubem1。 * * * * kubelet[7275]: E0622 04:31:35.888256 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:452: 无法列出 *v1.Service: Get https:// /10.169.150.123 :6443/api/v1/services?limit=500&resourceVersion=0:拨打tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:35 kubem1。 * * * * kubelet[7275]: E0622 04:31:35.943992 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: 无法列出v1.Pod: 获取https: //10.169.150.123 :6443/api/v1/pods?fieldSelector=spec.nodeName%3Dkubem1. * * * * &limit=500&resourceVersion=0:拨tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:36 kubem1。 * * * * kubelet[7275]: E0622 04:31:36.889648 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:461: 无法列出 *v1.Node: 获取https:// /10.169.150.123 :6443/api/v1/nodes?fieldSelector=metadata.name%3Dkubem1。 * * * * &limit=500&resourceVersion=0:拨tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:36 kubem1。 * * * * kubelet[7275]: E0622 04:31:36.891490 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:452: 无法列出 *v1.Service: Get https:// /10.169.150.123 :6443/api/v1/services?limit=500&resourceVersion=0:拨打tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:36 kubem1。 * * * * kubelet[7275]: E0622 04:31:36.945185 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: 无法列出v1.Pod: 获取https: //10.169.150.123 :6443/api/v1/pods?fieldSelector=spec.nodeName%3Dkubem1. * * * * &limit=500&resourceVersion=0:拨tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:37 kubem1。 * * * * kubelet[7275]: E0622 04:31:37.890407 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:461: 无法列出 *v1.Node: 获取https:// /10.169.150.123 :6443/api/v1/nodes?fieldSelector=metadata.name%3Dkubem1。 * * * * &limit=500&resourceVersion=0:拨tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:37 kubem1。 * * * * kubelet[7275]: E0622 04:31:37.891696 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:452: 无法列出 *v1.Service: Get https:// /10.169.150.123 :6443/api/v1/services?limit=500&resourceVersion=0:拨打tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:37 kubem1。 * * * * kubelet[7275]: E0622 04:31:37.946023 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: 无法列出v1.Pod: 获取https: //10.169.150.123 :6443/api/v1/pods?fieldSelector=spec.nodeName%3Dkubem1. * * * * &limit=500&resourceVersion=0:拨tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:38 kubem1。 * * * * kubelet[7275]: E0622 04:31:38.121910 7275 eviction_manager.go:247] eviction manager: 未能获得汇总统计信息:未能获得节点信息:节点“kubem1. * * * * ”未找到
6 月 22 日 04:31:38 kubem1。 * * * * kubelet[7275]: E0622 04:31:38.892292 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:461: 无法列出 *v1.Node: 获取https:// /10.169.150.123 :6443/api/v1/nodes?fieldSelector=metadata.name%3Dkubem1。 * * * * &limit=500&resourceVersion=0:拨tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:38 kubem1。 * * * * kubelet[7275]: E0622 04:31:38.894157 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:452: 无法列出 *v1.Service: Get https:// /10.169.150.123 :6443/api/v1/services?limit=500&resourceVersion=0:拨打tcp 10.169.150.123:6443:getsockopt:连接被拒绝
6 月 22 日 04:31:38 kubem1。 * * * * kubelet[7275]: E0622 04:31:38.947002 7275 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: 无法列出v1.Pod: 获取https: //10.169.150.123 :6443/api/v1/pods?fieldSelector=spec.nodeName%3Dkubem1. * * * * &limit=500&resourceVersion=0:拨tcp 10.169.150.123:6443:getsockopt:连接被拒绝

还添加了/etc/resolve.conf

[ root@kubem1 ~]# cat /etc/resolv.conf

由网络管理器生成

域<>

搜索<>

名称服务器<>

名称服务器<>

名称服务器 8.8.8.8
名称服务器 8.8.4.4

我应该在这个文件中添加任何条目吗?

我应该导入任何证书吗?

我在代理环境中

还尝试了以下,

kubeadm 重置
systemctl 守护进程重新加载
systemctl 重启 docker.service
systemctl 停止 kubelet.service

下面的图像无法通过 docker。

码头工人拉 k8s.gcr.io/kube-apiserver-amd64:v1.10.3
码头工人拉 k8s.gcr.io/kube-controller-manager-amd64:v1.10.3
码头工人拉 k8s.gcr.io/kube-scheduler-amd64:v1.10.3
码头工人拉 k8s.gcr.io/etcd-amd64:3.1.12

kinbug prioritimportant-longterm

最有用的评论

在这里我可以看到spec.nodeName=kubem1.***************** ,它似乎是一个编辑过的 FQDN。 另一方面,在您的 DNS 配置中,您似乎没有搜索指令。

您的网络中甚至允许使用 Google DNS 服务器吗? 您可能需要联系您的本地网络管理员以获取更多信息。

此外,如果docker pull对您失败,则可能是由于 DNS 问题。 docker pull失败的错误是什么?

k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: Failed to list v1.Pod: Get https://10.169.150.123:6443/api/v1/pods?fieldSelector=spec.nodeName%3Dkubem1.*****************&limit=500&resourceVersion=0: dial tcp 10.169.150.123:6443: getsockopt: connection refused

所有4条评论

在这里我可以看到spec.nodeName=kubem1.***************** ,它似乎是一个编辑过的 FQDN。 另一方面,在您的 DNS 配置中,您似乎没有搜索指令。

您的网络中甚至允许使用 Google DNS 服务器吗? 您可能需要联系您的本地网络管理员以获取更多信息。

此外,如果docker pull对您失败,则可能是由于 DNS 问题。 docker pull失败的错误是什么?

k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: Failed to list v1.Pod: Get https://10.169.150.123:6443/api/v1/pods?fieldSelector=spec.nodeName%3Dkubem1.*****************&limit=500&resourceVersion=0: dial tcp 10.169.150.123:6443: getsockopt: connection refused

我已经编辑了这个以在 github 'spec.nodeName=kubem1 中发布。 * * * * * '

我们的网络中不允许使用 Google DNS。

Docker pull 对其余的图像有效,但拉取“docker pull k8s.gcr.io/kube-apiserver-amd64:v1.10.3”不起作用。

如果我需要在配置文件中做任何修改,请告诉我。

/分配@liztio

由于缺乏可靠的复制器说明而关闭此问题。
如果还有问题,请重新打开。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

cnmade picture cnmade  ·  4评论

jessfraz picture jessfraz  ·  3评论

kvaps picture kvaps  ·  3评论

ep4eg picture ep4eg  ·  3评论

yagonobre picture yagonobre  ·  4评论