未知权威机构签署的 x509 证书 - kubeadm
x509 Certificate signed by unknown authority - kubeadm
我在预览 post 中搜索了这个,但我找不到解决方案,抱歉。
我在 kubeadm v1.12 上安装了指标服务器,我从日志中得到了这个错误:
1个主节点和1个从节点,在私有网络中。
Get https://ip-10-0-1-154:10250/stats/summary/: x509: a certificate signed by an unknown authority, unable to fully scrape metrics from source
我没有安装任何证书。
如何在不设置新的 kubernetes 集群的情况下安装新证书以及需要在何处更改证书?
抱歉这个菜鸟问题,我尝试创建一个新证书,但我无法让 kubelet 进行更改。
这是 kubeadm 的一个问题,它在 /var/lib/kubelet/pki
(kubelet.crt
,kubelet.key
) 下的节点上生成 kubelet
证书,由不同的 CA 签署一个用于 /etc/kubernetes/pki
(ca.crt) 下的主人。一些背景 here
.
您必须为您的 kubelet 重新生成由 master 上的 CA 签名的证书 /etc/kubernetes/pki/ca.crt
您可以关注 this. For example use cfssl
像这样:
$ mkdir ~/mycerts; cd ~/mycerts
$ cp /etc/kubernetes/pki/ca.crt ca.pem
$ cp /etc/kubernetes/pki/ca.key ca-key.pem
创建一个文件 kubelet-csr.json
,内容如下:
{
"CN": "kubernetes",
"hosts": [
"127.0.0.1",
"<your-node-name>",
"kubernetes",
"kubernetes.default",
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
"kubernetes.default.svc.cluster.local"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [{
"C": "US",
"ST": "NY",
"L": "City",
"O": "Org",
"OU": "Unit"
}]
}
创建一个 ca-config.json
文件:
{
"signing": {
"default": {
"expiry": "8760h"
},
"profiles": {
"kubernetes": {
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
],
"expiry": "8760h"
}
}
}
}
创建一个 config.json
文件:
{
"signing": {
"default": {
"expiry": "168h"
},
"profiles": {
"www": {
"expiry": "8760h",
"usages": [
"signing",
"key encipherment",
"server auth"
]
},
"client": {
"expiry": "8760h",
"usages": [
"signing",
"key encipherment",
"client auth"
]
}
}
}
}
生成证书:
$ cfssl gencert -ca=ca.pem -ca-key=ca-key.pem \
--config=ca-config.json -profile=kubernetes \
kubelet-csr.json | cfssljson -bare kubelet
将文件复制到您的节点:
$ scp kubelet.pem <node-ip>:/var/lib/kubelet/pki/kubelet.crt
$ scp kubelet-key.pem <node-ip>:/var/lib/kubelet/pki/kubelet.key
在您的节点上重启 kubelet:
$ systemctl restart kubelet
PD。打开 this 以跟踪问题。
我在预览 post 中搜索了这个,但我找不到解决方案,抱歉。
我在 kubeadm v1.12 上安装了指标服务器,我从日志中得到了这个错误:
1个主节点和1个从节点,在私有网络中。
Get https://ip-10-0-1-154:10250/stats/summary/: x509: a certificate signed by an unknown authority, unable to fully scrape metrics from source
我没有安装任何证书。
如何在不设置新的 kubernetes 集群的情况下安装新证书以及需要在何处更改证书?
抱歉这个菜鸟问题,我尝试创建一个新证书,但我无法让 kubelet 进行更改。
这是 kubeadm 的一个问题,它在 /var/lib/kubelet/pki
(kubelet.crt
,kubelet.key
) 下的节点上生成 kubelet
证书,由不同的 CA 签署一个用于 /etc/kubernetes/pki
(ca.crt) 下的主人。一些背景 here
.
您必须为您的 kubelet 重新生成由 master 上的 CA 签名的证书 /etc/kubernetes/pki/ca.crt
您可以关注 this. For example use cfssl
像这样:
$ mkdir ~/mycerts; cd ~/mycerts
$ cp /etc/kubernetes/pki/ca.crt ca.pem
$ cp /etc/kubernetes/pki/ca.key ca-key.pem
创建一个文件 kubelet-csr.json
,内容如下:
{
"CN": "kubernetes",
"hosts": [
"127.0.0.1",
"<your-node-name>",
"kubernetes",
"kubernetes.default",
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
"kubernetes.default.svc.cluster.local"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [{
"C": "US",
"ST": "NY",
"L": "City",
"O": "Org",
"OU": "Unit"
}]
}
创建一个 ca-config.json
文件:
{
"signing": {
"default": {
"expiry": "8760h"
},
"profiles": {
"kubernetes": {
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
],
"expiry": "8760h"
}
}
}
}
创建一个 config.json
文件:
{
"signing": {
"default": {
"expiry": "168h"
},
"profiles": {
"www": {
"expiry": "8760h",
"usages": [
"signing",
"key encipherment",
"server auth"
]
},
"client": {
"expiry": "8760h",
"usages": [
"signing",
"key encipherment",
"client auth"
]
}
}
}
}
生成证书:
$ cfssl gencert -ca=ca.pem -ca-key=ca-key.pem \
--config=ca-config.json -profile=kubernetes \
kubelet-csr.json | cfssljson -bare kubelet
将文件复制到您的节点:
$ scp kubelet.pem <node-ip>:/var/lib/kubelet/pki/kubelet.crt
$ scp kubelet-key.pem <node-ip>:/var/lib/kubelet/pki/kubelet.key
在您的节点上重启 kubelet:
$ systemctl restart kubelet
PD。打开 this 以跟踪问题。