前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >openshift/origin工作记录(11)——Openshift3.6向Openshift3.11升级以及CVE

openshift/origin工作记录(11)——Openshift3.6向Openshift3.11升级以及CVE

作者头像
胡了了
发布2019-05-27 12:43:47
1.1K0
发布2019-05-27 12:43:47
举报

版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:http://blog.csdn.net/huqigang,内容如有错误,欢迎留言指出,谢谢! https://cloud.tencent.com/developer/article/1436578

由于kubernetes的CVE-2018-1002105重大漏洞,需要对Openshift集群进行版本升级。 当前运行的Openshift集群版本为v3.6,目标为升级到版本v3.11。

这里只记录升级过程中碰到的坑,不记录升级细节。

不能跨版本升级,升级路线为:

代码语言:javascript
复制
v3.6—>v3.7—>v3.9—>v3.10—>v3.11

由于我是离线环境,所以在升级过程中都需要到对应版本的openshift-ansible/roles/openshift_repos/templates下进行yum换源。

v3.6升级v3.7

ansible版本问题

主要参考下图:

v3.6版本我用的是ansible-2.3.3,这里更新到ansible-2.6.6(之后的升级过程一直用的是这个版本,不推荐>=2.7版本的ansible,可能会导致升级出错)。

设置网络参数

需要和/etc/origin/master/master-config.yaml文件中的相应参数对应。示例如下:

代码语言:javascript
复制
openshift_portal_net=172.30.0.0/16
osm_cluster_network_cidr=10.128.0.0/14
osm_host_subnet_length=9

v3.7升级v3.9

升级过程顺利,没遇到坑

v3.9集群证书重新生成

之前尝试v3.10升级v3.11,因为最早安装openshift的时候,没对证书到期时间进行设置,导致部分证书即将在一年内到期,集群升级失败,所以在正式升级的时候需要重新生成一下集群证书。

生成证书的过程:

重新生成OKD CA证书—>重新生成ETCD CA证书—>根据已有的CA证书重新生成所有证书

v3.9版本证书重新生成需要在/etc/ansible/hosts文件中指定节点的以下参数

代码语言:javascript
复制
openshift_hostname
openshift_public_hostname
openshift_ip
openshift_public_ip
openshift_master_cluster_hostname
openshift_master_cluster_public_hostname

同时设置证书的有效时间

代码语言:javascript
复制
openshift_hosted_registry_cert_expire_days=3650
openshift_ca_cert_expire_days=3650
openshift_node_cert_expire_days=3650
openshift_master_cert_expire_days=3650
etcd_ca_default_days=3650

由于在之前的升级过程中,我配置了

代码语言:javascript
复制
ansible_service_broker_install=false
template_service_broker_install=false
openshift_enable_service_catalog=false

导致了部分证书生成错误,这里我手动在ansible-playbook脚本中禁用了service_broker相关的证书生成。

碰到了类似于以下内容的错误:

代码语言:javascript
复制
File \"/usr/lib64/python2.7/_strptime.py\", line 325, in _strptime\r\n (data_string, format))\r\n**ValueError: time data 'May 3 14:19:31 2020 GMT' does not match format '%b %d %H:%M:%S %Y %Z'\r\n", "msg": "MODULE FAILURE"**, "rc": 1}

github issue链接 https://github.com/openshift/openshift-ansible/issues/8267

解决办法链接 https://github.com/openshift/openshift-ansible/commit/0cbb390e010877446ab62bf44be36c44706d3408

证书更新之后可以通过脚本openshift-ansible/playbooks/openshift-checks/certificate_expiry/easy-mode.yaml验证。

v3.9升级v3.10

openshift_hostname参数处理

在OKD版本v3.10中,openshift_hostname参数已被删除。如果之前/etc/ansible/hosts文件中设置过openshift_hostname,需要使用openshift_kubelet_name_override参数替换。

创建默认的Configmaps

openshift_node_labels的值将会被忽略。

nodes下需要为每个节点设置openshift_node_group_name。

需要先运行openshift-ansible/playbooks/openshift-master/openshift_node_group.yml来创建默认的Configmaps

恢复默认的SCC

之前在使用openshift的时候,修改过默认的SCC,这里需要把系统自带的SCC恢复默认设置。

通过oc adm policy --config=/etc/origin/master/admin.kubeconfig reconcile-sccs --additive-only=true可以查看修改过的地方。

node节点和etcd节点为同一个节点时,该节点默认不升级

从openshift-ansible\playbooks\common\openshift-cluster\upgrades\initialize_nodes_to_upgrade.yml代码中可以看出,假如没有设置openshift_upgrade_nodes_label,etcd所在的节点默认不在升级范围内。

解决办法:注释上图中when: item not in dedicated_etcds,然后重新运行升级脚本。

v3.10升级v3.11

需要和上文一样,修改openshift-ansible\playbooks\common\openshift-cluster\upgrades\initialize_nodes_to_upgrade.yml文件。

CVE-2018-1002105漏洞修复

验证升级

所有节点信息如下:

所有pod正确运行。

升级成功。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年12月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • v3.6升级v3.7
    • ansible版本问题
      • 设置网络参数
      • v3.7升级v3.9
        • v3.9集群证书重新生成
        • v3.9升级v3.10
          • openshift_hostname参数处理
            • 创建默认的Configmaps
              • 恢复默认的SCC
                • node节点和etcd节点为同一个节点时,该节点默认不升级
                • v3.10升级v3.11
                • CVE-2018-1002105漏洞修复
                • 验证升级
                相关产品与服务
                脆弱性检测服务
                脆弱性检测服务(Vulnerability detection Service,VDS)在理解客户实际需求的情况下,制定符合企业规模的漏洞扫描方案。通过漏洞扫描器对客户指定的计算机系统、网络组件、应用程序进行全面的漏洞检测服务,由腾讯云安全专家对扫描结果进行解读,为您提供专业的漏洞修复建议和指导服务,有效地降低企业资产安全风险。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档