坑多,搞了好多次。

1./etc/ansible/hosts

  1. [OSEv3:children]
  2. masters
  3. nodes
  4. etcd
  5. nfs
  6.  
  7. [OSEv3:vars]
  8. ansible_ssh_user=root
  9. openshift_deployment_type=openshift-enterprise
  10. openshift_release=v3.
  11.  
  12. osm_use_cockpit=true
  13. osm_cockpit_plugins=['cockpit-kubernetes']
  14. openshift_cockpit_deployer_prefix='openshift3/'
  15. openshift_cockpit_deployer_version='v3.9.43'
  16.  
  17. osm_cluster_network_cidr=10.128.0.0/
  18. openshift_portal_net=172.30.0.0/
  19. openshift_master_api_port=
  20. openshift_master_console_port=
  21.  
  22. openshift_hosted_registry_storage_kind=nfs
  23. openshift_hosted_registry_storage_access_modes=['ReadWriteMany']
  24. openshift_hosted_registry_storage_nfs_directory=/exports
  25. openshift_hosted_registry_storage_nfs_options='*(rw,root_squash)'
  26. openshift_hosted_registry_storage_volume_name=registry
  27. openshift_hosted_registry_storage_volume_size=10Gi
  28. oreg_url=registry.example.com/openshift3/ose-\${component}:\${version}
  29. openshift_docker_additional_registries=registry.example.com
  30. openshift_docker_insecure_registries=registry.example.com
  31. openshift_docker_blocked_registries=registry.access.redhat.com,docker.io
  32. openshift_image_tag=v3.9.43
  33.  
  34. openshift_enable_service_catalog=true
  35. openshift_service_catalog_image_prefix=registry.example.com/openshift3/ose-
  36. openshift_service_catalog_image_version=v3.9.43
  37.  
  38. ansible_service_broker_image_prefix=registry.example.com/openshift3/ose-
  39. ansible_service_broker_etcd_image_prefix=registry.example.com/rhel7/
  40. ansible_service_broker_selector={"region": "infra"}
  41.  
  42. openshift_template_service_broker_namespaces=['openshift']
  43. template_service_broker_selector={"region": "infra"}
  44. template_service_broker_prefix=registry.example.com/openshift3/ose-
  45.  
  46. openshift_hosted_manage_registry=false
  47.  
  48. oreg_url=registry.example.com/openshift3/ose-${component}:${version}
  49. openshift_examples_modify_imagestreams=true
  50. openshift_clock_enabled=true
  51.  
  52. openshift_metrics_storage_kind=nfs
  53. openshift_metrics_install_metrics=true
  54. openshift_metrics_storage_access_modes=['ReadWriteOnce']
  55. openshift_metrics_storage_host=nfs.example.com
  56. openshift_metrics_storage_nfs_directory=/exports
  57. openshift_metrics_storage_volume_name=metrics
  58. openshift_metrics_storage_volume_size=10Gi
  59. openshift_metrics_hawkular_hostname=hawkular-metrics.apps.example.com
  60. #openshift_metrics_cassandra_storage_type=emptydir
  61. openshift_metrics_image_prefix=registry.example.com/openshift3/
  62. openshift_hosted_metrics_deploy=true
  63. openshift_hosted_metrics_public_url=https://hawkular-metrics.apps.example.com/hawkular/metrics
  64. openshift_metrics_image_version=v3.9.43
  65.  
  66. openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider', 'filename': '/etc/origin/master/htpasswd'}]
  67. # Default login account: admin / handhand
  68. openshift_master_htpasswd_users={'admin': '$apr1$gfaL16Jf$c.5LAvg3xNDVQTkk6HpGB1'}
  69.  
  70. #openshift_repos_enable_testing=true
  71. openshift_disable_check=docker_image_availability,disk_availability,memory_availability,docker_storage
  72.  
  73. docker_selinux_enabled=false
  74. openshift_docker_options=" --selinux-enabled --insecure-registry 172.30.0.0/16 --log-driver json-file --log-opt max-size=50M --log-opt max-file=3 --insecure-registry registry.example.com --add-registry registry.example.com"
  75. osm_etcd_image=rhel7/etcd
  76. openshift_logging_image_prefix=registry.example.com/openshift3/
  77.  
  78. openshift_hosted_router_selector='region=infra,router=true'
  79. openshift_master_default_subdomain=app.example.com
  80.  
  81. openshift_web_console_prefix=registry.example.com/openshift3/ose-
  82. openshift_web_console_version=v3.9.43
  83.  
  84. # host group for masters
  85. [masters]
  86. master.example.com
  87. # host group for etcd
  88. [etcd]
  89. master.example.com
  90.  
  91. # host group for nodes, includes region info
  92. [nodes]
  93. master.example.com openshift_node_labels="{'region': 'infra', 'router': 'true', 'zone': 'default'}" openshift_schedulable=true
  94. node1.example.com openshift_node_labels="{'region': 'infra', 'router': 'true', 'zone': 'default'}" openshift_schedulable=true
  95. node2.example.com openshift_node_labels="{'region': 'infra', 'zone': 'default', 'node': 'true'}" openshift_schedulable=true
  96.  
  97. [nfs]
  98. nfs.example.com

2.有几个镜像需要retag

  1. docker pull registry.example.com/openshift3/registry-console:v3.9.43
  2. docker tag registry.example.com/openshift3/registry-console:v3.9.43 registry.example.com/openshift3/registry-console:v3.
  3. docker push registry.example.com/openshift3/registry-console:v3.
  4.  
  5. docker pull registry.example.com/openshift3/ose-deployer:v3.9.43
  6. docker tag registry.example.com/openshift3/ose-deployer:v3.9.43 registry.example.com/openshift3/ose-deployer:v3.9.51
  7. docker push registry.example.com/openshift3/ose-deployer:v3.9.51
  8.  
  9. docker pull registry.example.com/openshift3/ose-pod:v3.9.43
  10. docker tag registry.example.com/openshift3/ose-pod:v3.9.43 registry.example.com/openshift3/ose-pod:v3.9.51
  11. docker push registry.example.com/openshift3/ose-pod:v3.9.51

更新主节点

  1. ansible-playbook -vv /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml | tee /tmp/upgrade_control_plane_to_3_9.log;

完成后状态

  1. TASK [openshift_master : Wait for master API to come back online] *******************************************************************************************************
  2. task path: /usr/share/ansible/openshift-ansible/roles/openshift_master/tasks/restart.yml:
  3. ok: [master.example.com] => {"changed": false, "elapsed": , "failed": false, "path": null, "port": , "search_regex": null, "state": "started"}
  4.  
  5. TASK [openshift_master : restart master controllers] ********************************************************************************************************************
  6. task path: /usr/share/ansible/openshift-ansible/roles/openshift_master/tasks/restart.yml:
  7. changed: [master.example.com] => {"attempts": , "changed": true, "cmd": ["systemctl", "restart", "atomic-openshift-master-controllers"], "delta": "0:00:00.738269", "end": "2018-11-24 21:47:24.938854", "failed": false, "rc": , "start": "2018-11-24 21:47:24.200585", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
  8. META: ran handlers
  9.  
  10. PLAY RECAP **************************************************************************************************************************************************************
  11. localhost : ok= changed= unreachable= failed=
  12. master.example.com : ok= changed= unreachable= failed=
  13. nfs.example.com : ok= changed= unreachable= failed=
  14.  
  15. [root@master ~]# oc get pods --all-namespaces
  16. NAMESPACE NAME READY STATUS RESTARTS AGE
  17. default docker-registry--8kc4s / Running 16m
  18. default docker-registry--qh9vq / Running 16m
  19. default docker-registry--xdz55 / Running 3h
  20. default registry-console--qtj4j / Running 16m
  21. default router--ctlwd / Running 7m
  22. default router--kvbc6 / Running 6m
  23. kube-service-catalog apiserver-bp4j4 / Running 3m
  24. kube-service-catalog controller-manager-m82nr / CrashLoopBackOff 3m
  25. openshift-ansible-service-broker asb--deploy / Error 2m
  26. openshift-ansible-service-broker asb-etcd--deploy / Error 2m
  27. openshift-infra hawkular-cassandra--6qmm9 / Running 3h
  28. openshift-infra hawkular-metrics-fmj5n / CrashLoopBackOff 3h
  29. openshift-infra heapster-8cb76 / Error 16m
  30. openshift-template-service-broker apiserver-7gnvj / Error 2m
  31. openshift-template-service-broker apiserver-kqqx7 / Running 2m
  32. openshift-template-service-broker apiserver-smzqn / Error 2m
  33. openshift-web-console webconsole-55d596f44d-n6gf8 / Running 9m
  1. [root@master ~]# oc get node
  2. NAME STATUS ROLES AGE VERSION
  3. master.example.com Ready master 19h v1.9.1+a0ce1bc657
  4. node1.example.com Ready <none> 19h v1.7.6+a08f5eeb62
  5. node2.example.com Ready <none> 19h v1.7.6+a08f5eeb62

更新node节点

  1. ansible-playbook -vv /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_9/upgrade_nodes.yml -e openshift_upgrade_nodes_serial= | tee /tmp/upgrade_node_to_3_9.log;

任务结束后输出

  1. TASK [openshift_excluder : Enable openshift excluder] *******************************************************************************************************************
  2. task path: /usr/share/ansible/openshift-ansible/roles/openshift_excluder/tasks/exclude.yml:
  3. changed: [node1.example.com] => {"changed": true, "cmd": ["/sbin/atomic-openshift-excluder", "exclude"], "delta": "0:00:00.049623", "end": "2018-11-25 09:04:05.773310", "failed": false, "rc": , "start": "2018-11-25 09:04:05.723687", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
  4. changed: [node2.example.com] => {"changed": true, "cmd": ["/sbin/atomic-openshift-excluder", "exclude"], "delta": "0:00:00.051837", "end": "2018-11-25 09:04:05.158001", "failed": false, "rc": , "start": "2018-11-25 09:04:05.106164", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
  5. META: ran handlers
  6. META: ran handlers
  7.  
  8. PLAY RECAP **************************************************************************************************************************************************************
  9. localhost : ok= changed= unreachable= failed=
  10. master.example.com : ok= changed= unreachable= failed=
  11. nfs.example.com : ok= changed= unreachable= failed=
  12. node1.example.com : ok= changed= unreachable= failed=
  13. node2.example.com : ok= changed= unreachable= failed=
  1. [root@master ~]# oc get nodes
  2. NAME STATUS ROLES AGE VERSION
  3. master.example.com Ready master 12h v1.9.1+a0ce1bc657
  4. node1.example.com Ready <none> 12h v1.9.1+a0ce1bc657
  5. node2.example.com Ready <none> 12h v1.9.1+a0ce1bc657

heapster,metrics为什么不见了,还需要去查

  1. [root@master ~]# oc get pods --all-namespaces
  2. NAMESPACE NAME READY STATUS RESTARTS AGE
  3. default router--kvbc6 / Running 18m
  4. kube-service-catalog apiserver-bp4j4 / Running 15m
  5. kube-service-catalog controller-manager-m82nr / CrashLoopBackOff 15m
  6. openshift-ansible-service-broker asb--deploy / Error 14m
  7. openshift-ansible-service-broker asb-etcd--deploy / Error 14m
  8. openshift-template-service-broker apiserver-7gnvj / Running 14m
  9. openshift-template-service-broker apiserver-kqqx7 / Running 14m
  10. openshift-template-service-broker apiserver-smzqn / Running 14m
  11. openshift-web-console webconsole-55d596f44d-n6gf8 / Running 21m

更新脚本不要反复执行,遇到的问题包括

  • 导入模板失败
  1. TASK [openshift_examples : Import RHEL streams] *************************************************************************************************************************
  2. task path: /usr/share/ansible/openshift-ansible/roles/openshift_examples/tasks/main.yml:
  3. FAILED - RETRYING: Import RHEL streams ( retries left).
  4. FAILED - RETRYING: Import RHEL streams ( retries left).
  5. FAILED - RETRYING: Import RHEL streams ( retries left).

倒入模板失败,目前暂时没理

  • RETRYING: Poll for OpenShift pod deployment success
  1. TASK [openshift_hosted : Poll for OpenShift pod deployment success] *****************************************************************************************************
  2. task path: /usr/share/ansible/openshift-ansible/roles/openshift_hosted/tasks/wait_for_pod.yml:
  3. FAILED - RETRYING: Poll for OpenShift pod deployment success ( retries left).
  4. FAILED - RETRYING: Poll for OpenShift pod deployment success ( retries left).

看了一下是在docker-registry部署完后的检查,修改hosts文件,加入

  1. openshift_hosted_manage_registry=false
  • 验证TSB是否运行
  1. TASK [template_service_broker : Verify that TSB is running] ********************************************************************************
  2. FAILED - RETRYING: Verify that TSB is running ( retries left).
  3. FAILED - RETRYING: Verify that TSB is running ( retries left).

解决办法,修改service_broker在infra的节点上运行。(之前是node=true节点上)

  1. template_service_broker_selector={"region": "infra"}
  • upgrade storage

脚本不能反复执行

OCP升级(3.7 ->3.9)的更多相关文章

  1. OCP升级(3.6->3.7)

    有个好文档还是靠普很多,感谢同事的文档.升级步骤记录如下 1.检查现有环境 [root@master ~]# etcd --version etcd Version: Git SHA: 1674e68 ...

  2. 009.OpenShift管理及监控

    一 资源限制 1.1 pod资源限制 pod可以包括资源请求和资源限制: 资源请求 用于调度,并控制pod不能在计算资源少于指定数量的情况下运行.调度程序试图找到一个具有足够计算资源的节点来满足pod ...

  3. OCP题库升级,iZ0-052新加的考题及答案整理-18

    18.You want to Install Oracle 11g database software and create a database on ASM Immediately after t ...

  4. owncloud7.0.2.1升级8.0.3

    进入更新中心升级,会自动备份下载安装,安装完提示更新数据库,跳转页面后提示需要php5.4以上版本,检查当前环境为php5.3.3.服务器为CentOS6.4,使用yum更新最新版本即5.3.3.   ...

  5. 【设计模式】之开闭原则(OCP)

    开闭原则是面向对象设计的一个重要原则,其定义如下: 开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭.即软件实体应尽量在不修改原有代码的情况下进 ...

  6. 【面向对象设计原则】之开闭原则(OCP)

    开闭原则是面向对象设计的一个重要原则,其定义如下: 开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭.即软件实体应尽量在不修改原有代码的情况下进 ...

  7. 开发-封闭原则(OCP)

    1.什么是“开放-封闭” 随着软件系统规模的不断增大,软件系统的维护和修改的复杂性不断提高,这种困境促使法国工程院士Bertrand Meyer在1998年提出了“开放-封闭”(Open-Close ...

  8. 【OCP、OCM、高可用等】小麦苗课堂网络班招生简章(从入门到专家)--课程大纲

    [OCP.OCM.高可用等]小麦苗课堂网络班招生简章(从入门到专家)--课程大纲 小麦苗信息 我的个人信息 网名:小麦苗 QQ:646634621 QQ群:618766405 我的博客:http:// ...

  9. 【OCP|OCM】Oracle培训考证系列

     [OCP|OCM]Oracle培训考证系列  我的个人信息 网名:小麦苗 QQ:646634621 QQ群:618766405 我的博客:http://blog.itpub.net/26736162 ...

随机推荐

  1. IE6下面的hover不兼容

    第一种解决方法: ie6中hover只是对a标签有作用 必须有href=“”,否则都不管用,如果不能写a标签,还想让ie6下有滑过效果,那只能写javascript或者jquery. 例如:ie6是不 ...

  2. Grid++Report 注册

    regsvr32  "D:\Grid++Report 5.0\gregn50.dll" regsvr32  "D:\Grid++Report 5.0\grdes50.dl ...

  3. 初次接触express

    今天初次使用express,还是写写心得好了. 中间件 mothod nodemon ~的使用 中间件 中间件我觉得就是个开箱即用的工具,写好中间件函数,直接use就好. 示例1: let myLog ...

  4. 在网站中嵌入VideoJs视频播放器

    一个博客难免需要引用视频来说明内容,但想要自己来实现一个视频播放器是不是一时半会就能完成的,更重要的是这需要对视频播放技术有一定的了解.于是自然而然的有人会想到开源项目.一个不错的选择便是video. ...

  5. C++ cin.ignore()用法

    cin.ignore(int a,char b); a为一行中最大读取字符长度,b为某一个字符.在缓冲区中寻找b,找到后忽略b以前的所有字符(包括b).如果在a的范围内还没有找到b,则忽略b以前的所有 ...

  6. ubuntu16.04编译安装GPAC

    参考:http://blog.csdn.net/tianlong_hust/article/details/9273875 1.获取gpac的源代码 sudo apt-get install subv ...

  7. Interllij IDEA 注释模板(类和方法)

    类上的注释: file->setting->Editor->Filr and Code Templates->Includes->File Header /** * @A ...

  8. Codeforces 1082 B. Vova and Trophies-有坑 (Educational Codeforces Round 55 (Rated for Div. 2))

    B. Vova and Trophies time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  9. Linux命令之ping

    ping [选项] destination ping命令向网络主机发送ICMP回传请求 详细描述:ping使用ICMP协议强制ECHO_REQUEST(回传请求)数据报从主机或网关获取ICMP协议的E ...

  10. AC自动机专题总结

    最近学习了AC自动机,做了notonlysuccess大牛里面的题,也该来个总结了. AC自动机(Aho-Corasick Automaton)在1975年产生于贝尔实验室,是著名的多模匹配算法之一. ...