在本地环境中设置OpenShift Origin v3的备忘录
由于试图在Docker中使用OpenShift本身的设置,遇到了各种问题,所以我决定记录下我的工作日志。
提供环境
1-1. 启动虚拟机
创建一个合适的实验环境使用Vagrant。Vagrantfile在这里。
启动虚拟机,通过SSH进入其中。从这里开始,所有操作都在虚拟环境中执行。
$ ls
Vagrantfile docker-compose.yml
$ vagrant up
$ vagrant ssh
这台虚拟机的IP地址是192.168.99.101。
1-2. 安装Docker
用 yum 正常地进行安装。顺便安装 docker-compose。
在启动Docker之前,要修改/etc/sysconfig/docker来允许不安全的注册表。
在OpenShift内部,有自己的Docker注册表,可以从那里构建和部署应用程序。
这次我们简单地修改为–insecure-registry 0.0.0.0/0来启动。
这些操作已在Vagrantfile中执行完毕。顺便提一下,本次使用的docker容器内OpenShift二进制版本是1.0.6。
2. 启动 OpenShift 容器
2-1. 开启容器
使用类似这样的docker-compose.yml文件进行启动。
$ cd /vagrant
$ ls
Vagrantfile docker-compose.yml
$ sudo docker-compose up -d
2-2. 尝试打开OpenShift的Web UI。
尝试在OpenShift上打开Web UI。
在(虚拟环境的)主机上打开http://openshift.192.168.99.101.xip.io:8443,并且如果能够成功登录,就可以了。
顺便提一下,管理员的ID和初始密码应该是admin:admin。
3. 开启用于OpenShift的Docker镜像仓库
为了简化操作,接下来在OpenShift容器中进行工作。
$ sudo docker ps # コンテナのIDなどを確認
$ sudo docker exec -it vagrant_origin_1 /bin/bash
搭建Docker注册表。
如果不搭建它,应用程序的构建将会失败。
# oadm registry --create --credentials=openshift.local.config/master/openshift-registry.kubeconfig --config=openshift.local.config/master/admin.kubeconfig
4. 运行一个连接 OpenShift 内外的路由器。
# echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"router"}}' | oc create -f -
# oc edit scc privileged
(users: の中に`- system:serviceaccount:default:router`を追加)
# oadm router router --credentials=openshift.local.config/master/openshift-router.kubeconfig --service-account=router
尝试部署一个适当的应用程序。
试着部署 https://github.com/openshift/nodejs-ex。
# oc login --username=admin --password=admin
# oc new-project my-project
# oc new-app openshift/nodejs-010-centos7~https://github.com/openshift/nodejs-ex.git
在Web UI(或者oc status)上可以看到类似于“正在构建”的页面。请稍等片刻直到完成。
在构建完成后,访问显示在Web UI上的地址(如172.17.0.7:8080),确认是否能得到响应。
6. 让外面可以看到
使应用程序能够直接从(虚拟环境的)主机端可见。
# oc expose service nodejs-ex --hostname=nodejs-ex.openshift.192.168.99.101.xip.io
如果主机端可以访问nodejs-ex.openshift.192.168.99.101.xip.io,那就没问题了。辛苦啦。
请参考
-
- https://docs.openshift.org/latest/getting_started/administrators.html
-
- https://github.com/openshift/origin/blob/master/examples/sample-app/README.md
- https://docs.openshift.com/enterprise/3.0/install_config/install/deploy_router.html