Openshift各组件Master/Node/Etcd/Router/Registry证书维护

Openshift集群正常运行过程中,各个组件:Master、Node、Etcd、Router、Registry之前相互通信交互,它们之间都是通过加密协议通信。那么问题来了,对于tls证书是有有效期的,突然有一天,证书过期了怎么办?集群是不是就无法正常运行了呢?
现在我们就来看下,怎么能够让加密证书持续有效。

  • 安装时,将证书有效期设置为很长,100年够不够
  • 快速查看当前集群所有证书的有效期
  • 证书过期了,我们该如何进行更新证书

安装时指定证书的有效期

默认情况下,etcd证书openshift证书的有效期为5年,kubelet证书私有镜像仓库registry证书Route证书的有效期为2年。在集群安装时可以通过设置ansible/hosts中的参数来指定证书的有效期

[OSEv3:vars]
openshift_hosted_registry_cert_expire_days=730
openshift_ca_cert_expire_days=1825
openshift_node_cert_expire_days=730
openshift_master_cert_expire_days=730
etcd_ca_default_days=1825

查看当前集群所有证书的有效期

  1. 确保ansible/hosts中的参数有如下信息
openshift_is_atomic=false
ansible_distribution=centos
  1. 检查
$ ansible-playbook playbooks/openshift-checks/certificate_expiry/easy-mode.yaml
$ #执行完成后可在roles/openshift_certificate_expiry/defaults/main.yml
$ #中的openshift_certificate_expiry_html_report_path
$ #所在路径下(默认是/tmp/cert-expiry-report.html)查看所有证书的过期时间

它将会展示出所有Master oc证书etcd证书kube证书router默认证书私有镜像仓库registry证书的过期时间

证书过期时间详情展示部分图

更新证书

更新证书方法可以只针对Master oc证书etcd证书kube证书router默认证书私有镜像仓库registry证书中的一种进行更新,也可以全部进行更新。

  1. 确保ansible/hosts中的参数有如下信息
openshift_master_cluster_hostname=master.example.com
openshift_master_cluster_public_hostname=master.example.com
  1. 重新生成证书进行更新
  • 全部一次性更新
    $ ansible-playbook playbooks/redeploy-certificates.yml
    
    • 只更新master CA证书
      $ ansible-playbook playbooks/openshift-master/redeploy-openshift-ca.yml
      
    • 只更新etcd CA证书
      $ ansible-playbook playbooks/openshift-etcd/redeploy-ca.yml
      
    • 只更新master Certificates证书
      $ ansible-playbook playbooks/openshift-master/redeploy-certificates.yml
      
    • 只更新etcd Certificates证书
      ansible-playbook playbooks/openshift-etcd/redeploy-certificates.yml
      
    • 只更新node Certificates证书
      ansible-playbook playbooks/openshift-node/redeploy-certificates.yml
      
    • 只更新私有镜像仓库Rgistry Certificates证书
      ansible-playbook playbooks/openshift-hosted/redeploy-registry-certificates.yml
      
    • 只更新Router Certificates证书
      ansible-playbook playbooks/openshift-hosted/redeploy-router-certificates.yml
      
    • 只更新etcd Certificates证书
      ansible-playbook playbooks/openshift-etcd/redeploy-certificates.yml
      
  1. 使用自定义Master CA证书
  • 安装时使用自定义证书
    1. 将证书的写在inventory的配置参数中
      $ cat /etc/ansible/hosts
      ...
      [OSEv3.vars]
      ...
      openshift_master_ca_certificate={'certfile': '</path/to/ca.crt>', 'keyfile':   '</path/to/ca.key>'}
      ...
      
    2. 执行正常部署
      $ ansible-playbook  playbooks/deploy_cluster.yml
      
  • 已运行集群,更新自定义证书
    1. 同上面的1步骤,将证书的写在inventory的配置参数中
    2. 运行更新Master CA证书playbook
      $ ansible-playbook playbooks/openshift-master/redeploy-openshift-ca.yml
      

更新完成后遇到的问题

  1. allinone的集群下更新所有证书时,在重启docker那一步中,卡住了。
  2. Router重启一直报错。解决办法:删除secret router-crt证书,让它自动更新。

EFK证书更新

相关文件:https://docs.openshift.com/container-platform/3.9/install_config/aggregate_logging.html#fluentd-redeploy-certs

通过重新部署EFK来更新证书。

  1. 删除旧证书
$ rm -r /etc/origin/logging
  1. 确保在inventory文件中设置好了EFK证书相关的配置
  2. 执行EFK重新部署脚本
$ cd openshift-ansible
$ ansible-playbook playbooks/openshift-logging/config.yml

该命令执行会出现如下错误信息

RUNNING HANDLER [openshift_logging_elasticsearch : Checking current health for {{ _es_node }} cluster] ***
Friday 14 December 2018 07:53:44 +0000 (0:00:01.571) 0:05:01.710 *******
[WARNING]: Consider using the get_url or uri module rather than running curl.
If you need to use command because get_url or uri is insufficient you can add
warn=False to this command task or set command_warnings=False in ansible.cfg to
get rid of this message.

fatal: [ec2-34-207-171-49.compute-1.amazonaws.com]: FAILED! => {"changed": true, "cmd": ["curl", "-s", "-k", "--cert", "/tmp/openshift-logging-ansible-3v1NOI/admin-cert", "--key", "/tmp/openshift-logging-ansible-3v1NOI/admin-key", "https://logging-es.openshift-logging.svc:9200/_cluster/health?pretty"], "delta": "0:00:01.024054", "end": "2018-12-14 02:53:33.467642", "msg": "non-zero return code", "rc": 7, "start": "2018-12-14 02:53:32.443588", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
RUNNING HANDLER [openshift_logging_elasticsearch : Set Logging message to manually restart] ***
Friday 14 December 2018 07:53:46 +0000 (0:00:01.557) 0:05:03.268 *******
  1. 通过删除以下pod,来完成密钥的刷新
$ oc delete pod --all -n openshift-logging

补充

  • OpenShift 3.10版本起删除了单独更新Node证书的脚本。
  • OpenShift 3.11版本前更新证书会重启Docker;而在OpenShift 3.11后期版本优化了更新证书过程,不再重启Docker。
  • 如果集群证书已经过期了怎么办?
    一旦集群证书过期,OpenShift中的各组件的交互都会报错,包括WebConsole。此时一定要及时更新集群的证书。但是如果此时直接运行更新证书的脚本,它会检查证书是否过期,如果过期会报错,并终止更新。此时需要在ansible inventory文件中添加变量:openshift_certificate_expiry_fail_on_warn=flase,再运行更新证书脚本即可。如果ca证书也需要更新的话,需要额外添加变量:openshift_redeploy_openshift_ca=true,再运行更新证书脚本即可。

参考文档

官方更新Openshfit证书
安装时指定证书的过期时间

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

推荐阅读更多精彩内容