使用kubeadm进行证书管理

FEATURE STATE: Kubernetes v1.15 stable

kubeadm生成的客户端证书将在1年后过期。本页介绍如何使用kubeadm管理证书续订。

开始之前

熟悉Kubernetes中的PKI证书和要求以及证书最佳实践

检查证书过期时间

check-expiration命令可用于检查证书过期时间。

kubeadm alpha certs check-expiration

输出类似于:

CERTIFICATE                EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
admin.conf                 May 15, 2020 13:03 UTC   364d            false
apiserver                  May 15, 2020 13:00 UTC   364d            false
apiserver-etcd-client      May 15, 2020 13:00 UTC   364d            false
apiserver-kubelet-client   May 15, 2020 13:00 UTC   364d            false
controller-manager.conf    May 15, 2020 13:03 UTC   364d            false
etcd-healthcheck-client    May 15, 2020 13:00 UTC   364d            false
etcd-peer                  May 15, 2020 13:00 UTC   364d            false
etcd-server                May 15, 2020 13:00 UTC   364d            false
front-proxy-client         May 15, 2020 13:00 UTC   364d            false
scheduler.conf             May 15, 2020 13:03 UTC   364d            false

该命令显示/etc/kubernetes/pki文件夹中的客户端证书的到期/剩余时间,以及kubeadm(admin.conf,controller-manager.conf和scheduler.conf)使用的KUBECONFIG文件中嵌入的客户端证书。

此外,如果证书是外部管理的,kubeadm会通知用户;在这种情况下,用户应该手动/使用其他工具来管理证书续订。

警告:kubeadm无法管理外部CA签名的证书。

注意:kubelet.conf不包含在上面的列表中,因为kubeadm配置kubelet以进行自动证书续订。

自动续订证书

kubeadm在控制平面升级期间更新所有证书。

此功能旨在解决最简单的使用案例;如果您没有对证书续订的具体要求并定期执行Kubernetes版本升级(每次升级之间不到1年),kubeadm将负责保持您的群集最新并且合理安全。

注意:最佳做法是频繁升级群集以保证安全。

如果您对证书续订有更复杂的要求,可以通过将--certificate-renewal = false传递给kubeadm upgrade apply或kubeadm upgrade node来退出默认行为。

手动续订证书

您可以使用kubeadm alpha certs renew命令随时手动续订证书。

此命令使用CA(或front-proxy-CA)证书和存储在/etc/kubernetes/pki中的密钥执行续订。

警告:如果您正在运行HA群集,则需要在所有控制平面节点上执行此命令。

注意:alpha certs renew使用现有证书作为属性(公用名,组织,SAN等)的权威来源,而不是kubeadm-config ConfigMap。强烈建议让它们保持同步。

kubeadm alpha certs renew提供以下选项:

  • --csr-only可用于通过生成证书签名请求(不实际更新证书)来与外部CA续订证书;有关更多信息,请参阅下一节
  • 也可以更新单个证书而不是全部证书

使用Kubernetes证书API续订证书

本节提供有关如何使用Kubernetes证书API执行手动证书续订的更多详细信息。

警告:这些高级主题是针对需要将其组织的证书集成到kubeadm构建的群集中的用户。如果默认的kubeadm配置满足您的需求,您应该让kubeadm管理证书。

设置签名

Kubernetes证书颁发机构非开箱即用。您可以配置外部签名,例如cert-manager,也可以使用内置签名。内置签名功能是kube-controller-manager的一部分。要激活内置签名功能,请向kube-controller-manager传递--cluster-signing-cert-file和--cluster-signing-key-file参数。

要激活内置签名功能,必须传递--cluster-signing-cert-file和--cluster-signing-key-file标志。

如果要创建新群集,可以使用kubeadm配置文件

  apiVersion: kubeadm.k8s.io/v1beta2
  kind: ClusterConfiguration
  controllerManager:
    extraArgs:
      cluster-signing-cert-file: /etc/kubernetes/pki/ca.crt
      cluster-signing-key-file: /etc/kubernetes/pki/ca.key

创建证书签名请求(CSR)

您可以使用kubeadm alpha certs renew --use-api为Kubernetes证书API创建证书签名请求。

如果设置[cert-manager] [cert-manager]等外部签名,则会自动创建证书签名请求(CSR)。否则,您必须使用kubectl certificate命令手动创建证书。以下kubeadm命令输出要创建证书的名称,然后阻塞并等待创建完成:

sudo kubeadm alpha certs renew apiserver --use-api &

输出类似于:

[1] 2890
[certs] certificate request "kubeadm-cert-kube-apiserver-ld526" created

签发证书签名请求(CSR)

如果设置了外部签名,则会自动签发证书签名请求(CSR)。

否则,您必须使用kubectl certificate命令手动签发证书。例如:

kubectl certificate approve kubeadm-cert-kube-apiserver-ld526

输出类似于:

certificatesigningrequest.certificates.k8s.io/kubeadm-cert-kube-apiserver-ld526 approved

您可以使用kubectl get csr查看待处理证书的列表。

使用外部CA续订证书

本节提供有关如何使用外部CA执行手动证书续订的更多详细信息。

为了更好地与外部CA集成,kubeadm还可以生成证书签名请求(CSR)。CSR表示向CA请求客户端的签名证书。在kubeadm术语中,通常由on-disk CA签名的任何证书都可以作为CSR。但是,CA不能作为CSR。

创建证书签名请求(CSR)

您可以使用--csr-dir传入目录,以将CSR输出到指定位置。如果未指定--csr-dir,则使用默认证书目录(/etc/kubernetes/pki)。CSR和附带的私钥都会输出。

CSR表示向CA请求客户端的签名证书。您可以使用kubeadm alpha certs renew --csr-only创建证书签名请求。

CSR包含证书的名称,域和IP,但不指定用法。CA颁发证书时,有责任指定正确的证书用法

证书签名后,必须将证书和私钥复制到PKI目录(默认情况下为/etc kubernetes/pki)。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容