Openshift叢集3.9升級到3.10

wangsys發表於2021-09-09

圖片描述

Openshift 升級中......

更新方法與策略:自動升級方法

下載openshift-ansible的指令碼程式碼

git clone  git checkout  release-3.10

將master上的/etc/origin/master/htpasswd備份到/root/htpasswd

scp master1:/etc/origin/master/htpasswd /root/htpasswd

openshift_master_identity_providers中的filename去掉

# /etc/ansible/hostsopenshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login':'true','challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
openshift_master_htpasswd_file=/root/htpasswd

遮蔽掉引入[gluster]導致的一個升級錯誤

playbooks/common/openshift-cluster/upgrades/v3_10/upgrade_control_plane.yml中會去做對glusterfsglusterfs_registry的比較,3.9之前未必需這些host group所以需要在ansible/hosts中需要新增該host group

#/etc/ansible/host[glusterfs]
[glusterfs_registry]

在ansible/hosts中的nodes列表中新增openshift_node_group_name

......
master openshift_node_group_name='node-config-master'node openshift_node_group_name='node-config-compute'infra openshift_node_group_name='node-config-infra'

升級預設的node group configmap

# ansible-playbook -i </path/to/inventory/file>  playbooks/openshift-master/openshift_node_group.yml

檢測Python OpenSSL版本

python -c 'import OpenSSL.crypto'# 如果報錯則需要升級Python OpenSSLyum install python2-pip
pip install -U pyopenssl -i 

關閉etcd目錄的selinux檢查【不建議這麼做,建議開啟selinux】
關閉任務Check selinux label of '{{ etcd_data_dir }}'與Make sure the '{{ etcd_data_dir }}' has the proper label

# roles/etcd/tasks/backup/backup.yml...
- name: Detecting Atomic Host Operating System  stat:
    path: /run/ostree-booted
  register: l_ostree_booted#- name: Check selinux label of '{{ etcd_data_dir }}'#  command: >#    stat -c '%C' {{ etcd_data_dir }}#  register: l_etcd_selinux_labels##- debug:#    msg: "{{ l_etcd_selinux_labels }}"##- name: Make sure the '{{ etcd_data_dir }}' has the proper label#  command: >#    chcon -t svirt_sandbox_file_t  "{{ etcd_data_dir }}"#  when:#  - l_etcd_selinux_labels.rc == 0#  - "'svirt_sandbox_file_t' not in l_etcd_selinux_labels.stdout"- name: Generate etcd backup  command: >
    {{ r_etcd_common_etcdctl_command }} backup --data-dir={{ l_etcd_incontainer_data_dir }}
    --backup-dir={{ l_etcd_incontainer_backup_dir }}
...

升級叢集

# ansible-playbook -i </path/to/inventory/file>  playbooks/byo/openshift-cluster/upgrades/v3_10/upgrade.yml

升級過程中可能遇到的問題

webconsole自定義相容問題

webconsole自定義格式是透過在openshift-web-console專案中的webconsole-configConfigMap新增css與js檔案路徑實現的,3.9版本支援路徑不新增引號,而3.10版本必須新增引號。

selinux啟動問題

每個節點(包括Master/router/node)都需要開啟selinux。

ceph 無法掛載問題

升級過程中,如果有ceph掛載,則會出現超時,升級完成後,自動修復該問題。

HTPasswdPasswordIdentityProvider方式ansible_hosts檔案格式更新問題

3.9版本可以將htpasswd檔案路徑填寫在openshift_master_identity_providers變數中,而3.10版本則需要分開寫,如下:

openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login':'true','challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
openshift_master_htpasswd_file=/root/htpasswd

對於router節點新增了獨佔配置後,ovs服務無法部署問題

版本3.10將元件使用容器的方式部署,如果router節點設定了taints(目的是為了router節點只給route服務,確保應用的效能)那麼node,ovs服務將無法在router節點上部署。這時需要給對應deamonset設定tolerations。目前相關的daemonset有:openshift-node/syncopenshift-sdn/sdnopenshift-sdn/ovs



作者:潘曉華Michael
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3244/viewspace-2820633/,如需轉載,請註明出處,否則將追究法律責任。

相關文章