2017年7月12日星期三

OpenShift_085:在 Web Console 上部署第三方镜像

环境:OCP 3.5

本文以部署 mywebsql 镜像为例说明,如何在 Web Console 上部署第三方镜像。
关于如何使用命令行部署第三方镜像,请参考《部署 mywebsql docker image 访问 mysql 数据库》。

1. 直接 Deploy Image
部署不成功,这是因为 Web Console 不支持 https 安全验证。


2. 以 Image Stream 方式部署
(1)允许 root 用户访问容器
oc login -u system:admin

oadm policy add-scc-to-user anyuid -z default
(2)创建 Image Stream:mywebsql
oc create -f mywebsql-is.json -n openshift
其中 mywebsql-is.json 内容如下:
{
    "kind": "ImageStream",
    "apiVersion": "v1",
    "metadata": {
        "name": "mywebsql",
        "creationTimestamp": null
    },
    "spec": {
        "dockerImageRepository": "registry.example.com:5000/quantumobject/docker-mywebsql",
        "tags": [
            {
                "name": "latest",
                "annotations": null,
                "from": {
                    "kind": "DockerImage",
                    "name": "registry.example.com:5000/quantumobject/docker-mywebsql"
                },
                "generation": 1,
                "importPolicy": {
                    "insecure": true
                }
            }
        ]
    }
}

(3)部署 Image Stream:mywebsql



3. 创建 template mywebsql(在 Master 机器上操作)
为了以后创建更简单,这里导出 mywebsql 的所有对象,并存为 template。
oc export dc,svc,route -o json --as-template=mywebsql > mywebsql.template
修改 mywebsql.template,

"image": "registry.example.com:5000/quantumobject/docker-mywebsql@sha256:a34f5050ae56bab4d8456a86666c9b431d7bead26e71a1b1003fd874b68bfb8d",
改为
"image": ""
这样做的目的是,根据 template 创建应用后,自动发布,不用再手工点击 Deploy。

oc create -f mywebsql.template -n openshift

4. 测试
oc project test
oc delete all --all