OpenShift修改subdomain域名

需求

在客户的已经准备好上线的OpenShift 3.9集群中提出修改域名需求,因此先在本人的自己测试环境进行了验证,过程如下,并且还有一些坑,并进行了记录;将ocp6修改为ocp7。

修改方式

修改的方式有两种:

  • 在master节点修改/etc/origin/master/master-config.yaml文件:

    routingConfig: subdomain: apps.test.ocp6.com

  • 修改deploy节点上的/etc/ansible/hosts文件:

    openshift_master_default_subdomain=apps.test.ocp6.com

第一种修改方式:

  • 在master节点修改/etc/origin/master/master-config.yaml文件,如果是多个master节点的情况下,每个master节点修需要修改,由原来的apps.test.ocp6.com,修改为apps.test.ocp7.com
routingConfig:
  subdomain: apps.test.ocp7.com
  • 重启master服务
systemctl restart atomic-openshift-master-api.service  atomic-openshift-master-controllers.service
  • 观察此时的route,都还是ocp6.
[root@local2-ocp3.9-master1-test.com ~]# oc get route --all-namespaces
NAMESPACE         NAME               HOST/PORT                                     PATH      SERVICES           PORT      TERMINATION          WILDCARD
default           docker-registry    docker-registry-default.apps.test.ocp6.com              docker-registry    <all>     passthrough          None
default           registry-console   registry-console-default.apps.test.ocp6.com             registry-console   <all>     passthrough          None
jenkins           jenkins            jenkins-jenkins.apps.test.ocp6.com                      jenkins            <all>     edge/Redirect        None
logging           logging-kibana     kibana.apps.test.ocp6.com                               logging-kibana     <all>     reencrypt/Redirect   None
openshift-infra   hawkular-metrics   hawkular-metrics.apps.test.ocp6.com                     hawkular-metrics   <all>     reencrypt            None
  • 此时需要更新对应服务的route,更新有分为两种方式,一种是直接在原来的route上修改,一种是重新创建。

  • 第一种是在原先的route上进行修改,比较方便:

  1. 在界面上进行,修改registry-console的hostname为ocp7,保存:


    image-20180617133449499.png
  2. 在本机增加对应到route节点的域名解析
172.16.37.43 registry-console-default.apps.test.ocp7.com</pre>
  1. 到任意master节点上修改oauthclient cockpit-oauth-client,我直接新增了https://registry-console-default.apps.test.ocp7.com,也可以直接修改。这样这个两个地址都能访问,前提是ocp6的route在。
[root@local2-ocp3.9-master1-test.com ~]# oc edit oauthclient cockpit-oauth-client
oauthclient "cockpit-oauth-client" edited
[root@local2-ocp3.9-master1-test.com ~]# oc get  oauthclient cockpit-oauth-client -o yaml
apiVersion: oauth.openshift.io/v1
kind: OAuthClient
metadata:
 annotations:
 openshift.io/generated-by: OpenShiftNewApp
 creationTimestamp: 2018-06-17T00:56:08Z
 labels:
 app: registry-console
 createdBy: registry-console-template
 name: cockpit-oauth-client
 resourceVersion: "31325"
 selfLink: /apis/oauth.openshift.io/v1/oauthclients/cockpit-oauth-client
 uid: 38adc129-71c9-11e8-ad8b-000c2906e131
redirectURIs:
- https://registry-console-default.apps.test.ocp6.com
- https://registry-console-default.apps.test.ocp7.com
secret: userKHwbcoPVQBTJDpiMKOC1BssLpw5Eq7SCKVS5TGC1BtWxbpsRIkj2uwdbhdCSkC7J
  1. 访问域名地址即可。
image-20180617134156512.png
  • 第二种是为了防止修改错误,而重新创建一个新进行验证,创建新的可以在页面上进行,也可以在命令行里面进行,但是route的名称相关信息不能和原先的route冲突,需要注意的是有的route是带证书的,需要参考原先的route进行复制。
  1. 界面上操作就打开原先的registry-console route,再打开一个窗口进行创建新的route,除了名称不一样,其它的信息从原先的route复制过来即可:


    image-20180617134823267.png

    image-20180617134848876.png
  1. 如果从命令行操作就更方便了,以下命令主要是将原先的原先的route信息通过yaml文件导出,然后修改成现在新的域名,最后通过oc create -f 文件,即可。
[root@local2-ocp3.9-master1-test.com ~]# oc get route
NAME               HOST/PORT                                     PATH      SERVICES           PORT               TERMINATION   WILDCARD
docker-registry    docker-registry-default.apps.test.ocp6.com              docker-registry    <all>              passthrough   None
registry-console   registry-console-default.apps.test.ocp7.com             registry-console   registry-console   passthrough   None
[root@local2-ocp3.9-master1-test.com ~]# oc get route registry-console -o yaml >> registry-console-2.yaml
[root@local2-ocp3.9-master1-test.com ~]# cat registry-console-2.yaml
apiVersion: route.openshift.io/v1
kind: Route
metadata:
 annotations:
 openshift.io/host.generated: "true"
 creationTimestamp: 2018-06-17T03:45:24Z
 name: registry-console
 namespace: default
 resourceVersion: "31000"
 selfLink: /apis/route.openshift.io/v1/namespaces/default/routes/registry-console
 uid: dde737e7-71e0-11e8-a3dd-000c2906e131
spec:
 host: registry-console-default.apps.test.ocp7.com
 port:
 targetPort: registry-console
 tls:
 termination: passthrough
 to:
 kind: Service
 name: registry-console
 weight: 100
 wildcardPolicy: None
status:
 ingress:
 - conditions:
 - lastTransitionTime: 2018-06-17T05:33:31Z
 status: "True"
 type: Admitted
 host: registry-console-default.apps.test.ocp7.com
 routerName: router
 wildcardPolicy: None
[root@local2-ocp3.9-master1-test.com ~]# oc create -f registry-console-2.yaml
  1. 最后还要记得修改oauthclient对应的服务的url,然后就可以访问页面了。

第二种修改方式

  • 直接修改hosts文件中对域名的定义字段,然后重新部署,除了cockpit-oauth-client的oauthclient需要手动修改为最新的域名地址外,其他的都不需要,否则registry-console的域名访问会有问题。
openshift_master_default_subdomain=apps.test.ocp6.com
  • 使用第二种方式进行修改会导致htpasswd的信息被清空,记得备份,等部署结束后再复制到原路径。

遇到的坑

  • 使用第一种方式时,几乎所有route都要手动修改,并且还要修改对应的oauthclient文件,否则无法访问,访问时会出现如下报错:


    ![image-20180617140929515.png](https://upload-images.jianshu.io/upload_images/13962638-a4bea4cc614e2138.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  • 因为web页面上会加载监控和日志的访问地址,所以第一种方式部署时需要修改openshift-web-console项目里面的configmap信息,修改为ocp7,如果是采用第二种方式修改域名,则web-console的configmap会自动更新。
  • 在使用第二种方式时,openshift安装时会自动修改kibana的oauthclient,添加新的域名地址进去,但是registry-console不会,需要手动更新。

Jenkins页面跳转的问题

  • 当有使用openshift集成的Jenkins时,在openshift上点击pipeline的logs时跳转的页面为为原来域名的Jenkins,改了route也没用,我当时是将pipeline内容保留然后删除重建就可以了

  • 以下是红帽case提供的修改方法,没生效。

Is your jenkins instance deployed inside OpenShift using the Jenkins template or is it an external Jenkins instance? If it is deployed on OpenShift and configured from the Jenkins template, you should be able to set the JENKINS_ROOT_URL by navigating to the Deployments > jenkins  > Actions > Edit YAML and adding a new environment variable and setting it's value to your Jenkins domain name. Please see the attached screenshot [1] for an example of where you can configure the JENKINS_ROOT_URL environment variable.
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容

  • Openshift是一个开源容器云平台,是一个基于主流的容器技术Docker和K8s构建的云平台。Openshif...
    Superwind20阅读 36,839评论 0 23
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • 说明:本文主要介绍通过Ansible来部署Openshift 3.9 一、准备 系统准备 注:在安装时可以通过an...
    潘晓华Michael阅读 6,846评论 4 13
  • 很多人喜欢这么说话:“现在的人哦,天天捧着个手机,低头族?!薄跋衷诘娜耍焯斐源竺追?,精细的食物,特别不好?!薄拔?..
    大橙大橙阅读 170评论 0 0
  • 文 / 白梨安 -1- 根据十四夜同名小说改编而成的56集电视连续剧《醉玲珑》终于在近日收官。 比起刘诗诗和陈伟霆...
    白梨安阅读 1,459评论 1 31