在kubernetes集群中到期后重新部署证书

时间:2018-04-03 05:58:26

标签: kubernetes google-kubernetes-engine kubernetes-security

我的kubernetes中的证书已过期。重新部署证书有哪些步骤?重新部署后,pod健康受到影响。我该如何克服这个问题?

[mdupaguntla@iacap067 K8S_HA_Setup_Post_RPM_Installation_With_RBAC]$ sudo kubectl logs elasticsearch-logging-0
+ export NODE_NAME=elasticsearch-logging-0
+ NODE_NAME=elasticsearch-logging-0
+ export NODE_MASTER=true
+ NODE_MASTER=true
+ export NODE_DATA=true
+ NODE_DATA=true
+ export HTTP_PORT=9200
+ HTTP_PORT=9200
+ export TRANSPORT_PORT=9300
+ TRANSPORT_PORT=9300
+ export MINIMUM_MASTER_NODES=2
+ MINIMUM_MASTER_NODES=2
+ chown -R elasticsearch:elasticsearch /data
+ ./bin/elasticsearch_logging_discovery
F0323 07:18:25.043962       8 elasticsearch_logging_discovery.go:78] kube-system namespace doesn't exist: Unauthorized
goroutine 1 [running]:
k8s.io/kubernetes/vendor/github.com/golang/glog.stacks(0xc4202b1200, 0xc42020a000, 0x77, 0x85)
        /go/src/k8s.io/kubernetes/vendor/github.com/golang/glog/glog.go:766 +0xcf
k8s.io/kubernetes/vendor/github.com/golang/glog.(*loggingT).output(0x1a38100, 0xc400000003, 0xc4200ba2c0, 0x1994cf4, 0x22, 0x4e, 0x0)
        /go/src/k8s.io/kubernetes/vendor/github.com/golang/glog/glog.go:717 +0x322
k8s.io/kubernetes/vendor/github.com/golang/glog.(*loggingT).printf(0x1a38100, 0x3, 0x121acfe, 0x1e, 0xc4206aff50, 0x2, 0x2)
        /go/src/k8s.io/kubernetes/vendor/github.com/golang/glog/glog.go:655 +0x14c
k8s.io/kubernetes/vendor/github.com/golang/glog.Fatalf(0x121acfe, 0x1e, 0xc4206aff50, 0x2, 0x2)
        /go/src/k8s.io/kubernetes/vendor/github.com/golang/glog/glog.go:1145 +0x67
main.main()
        /go/src/k8s.io/kubernetes/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_dis

1 个答案:

答案 0 :(得分:0)

  

我的kubernetes中的证书已过期。重新部署证书有哪些步骤?重新部署后,pod健康受到影响。我该如何克服这个问题?

     

...

     

F0323 07:18:25.043962 8 elasticsearch_logging_discovery.go:78] kube-system命名空间不存在:未经授权

您似乎必须重新生成证书的私钥,而不是仅使用使用群集的现有密钥生成的CSR发布新证书。

如果确实如此,那么您将需要(至少)执行以下两项操作之一:

从备份中挖掘旧的私钥文件,从中生成CSR,重新颁发API证书,并将其归结为一个宝贵的教训,不要在没有仔细考虑的情况下再次删除私钥

或者:

为每个命名空间删除所有Pod serviceAccountName中所有serviceAccounts名称,然后删除这些广告连结以获取其volumeMount:反弹。添加信息位于their admin guide

如果一切顺利,ServiceAccountController将重新创建ServiceAccount个秘密,允许这些Pod开始备份,并重新开始营业。

管理群集的X.509证书的具体步骤太多,无法放入单个答案框中,但这是对需要发生的事情的高级概述。