OCP使用web console创建和构建应用

文章目录

  • 环境
  • 登录
  • 创建project
  • 赋予查看权限
  • 部署第一个image
    • 检查pod
    • 扩展应用
  • 部署一个Python应用
  • 连接数据库
    • 创建secret
    • 加载数据并显示国家公园地图
  • 清理
  • 参考

环境

  • RHEL 9.3
  • Red Hat OpenShift Local 2.32

登录

crc start 启动crc时,可以看到:

......
The server is accessible via web console at:
  https://console-openshift-console.apps-crc.testing

Log in as administrator:
  Username: kubeadmin
  Password: MSmt7-d8LbI-igtzV-DeJY9

Log in as user:
  Username: developer
  Password: developer

Use the 'oc' command line interface:
  $ eval $(crc oc-env)
  $ oc login -u developer https://api.crc.testing:6443
......

通过 crc console --credentials 也可以查看登录信息:

$ crc console --credentials
To login as a regular user, run 'oc login -u developer -p developer https://api.crc.testing:6443'.
To login as an admin, run 'oc login -u kubeadmin -p MSmt7-d8LbI-igtzV-DeJY9 https://api.crc.testing:6443'

登录web console https://console-openshift-console.apps-crc.testing

OCP使用web console创建和构建应用_第1张图片
kubeadmin 或者 developer 登录都可以。

比如用 developer 登录,如下:

OCP使用web console创建和构建应用_第2张图片
Web console提供两种视角: Administrator 视角和 Developer 视角。Developer视角提供开发人员用例特有的工作流。

对于非管理员用户,默认视图是Developer视角。对于集群管理员,默认的视图是Administrator视角。如果没有 cluster-admin 权限,则无法在web console中看到Administrator视角。

本例中使用 developer 用户登录(参见上图右上角),该用户有管理员权限,所以默认是Administrator视角(参见上图左上角)。

切换到Developer视角,如下:

OCP使用web console创建和构建应用_第3张图片

创建project

Project使得用户社区可以在隔离中组织和管理其内容。Project是OCP对Kubernetes namespace的扩展。Project具有额外的功能,使得用户能够自我provision(self-provisioning)。

用户需要从管理员处接收project的访问权限。集群管理员可以允许开发人员创建自己的project。多数情况下,用户会自动获得其自己的project的访问权限。

每个project都有自己的一系列对象、策略、约束和service帐户。

点击“+Add” -> “Create a new project”:

OCP使用web console创建和构建应用_第4张图片

  • Name:填入 user-getting-started
  • Display name:填入 Getting Started with OpenShift

然后点击“Create”按钮,创建project。

赋予查看权限

OCP会在每个project中自动创建一些特殊的service帐户。默认服务帐户会负责运行pod。OCP使用并将此service帐户注入到所启动的每个pod中。

本例为默认的 ServiceAccount 对象创建一个 RoleBinding 对象。Service帐户与 OCP API通信,以了解project中的 pod、service和资源。

切换到Administrator视角。

点击“User Management” -> “RoleBindings” -> “Create binding”

  • Name:填入 sa-user-account
  • Namespace:搜索并选择 user-getting-started
  • Role name:搜索并选择 view
  • Subject:选择ServiceAccount
  • Subject namespace:搜索并选择 user-getting-started
  • Subject name:填入 default

OCP使用web console创建和构建应用_第5张图片

然后,点击“Create”按钮,创建binding。

部署第一个image

在OCP中部署应用的最简单方法是运行已有的容器image。本例部署一个应用的前端组件,名为 national-parks-app 。该web应用显示一个交互式的地图,显示全球主要国家公园的位置。

切换到Devloper视角。

点击“+Add” -> “Container images”:

OCP使用web console创建和构建应用_第6张图片

  • Image name from external registry:填入 quay.io/openshiftroadshow/parksmap:latest
  • Application:填入 national-parks-app
  • Name:填入 parksmap
  • Resource type:选择Deployment
  • 勾选“Create a route”
  • 添加以下label:
    • app=national-parks-app
    • component=parksmap
    • role=frontend

OCP使用web console创建和构建应用_第7张图片

OCP使用web console创建和构建应用_第8张图片

OCP使用web console创建和构建应用_第9张图片

然后,点击“Create”按钮,创建image。

OCP使用web console创建和构建应用_第10张图片

检查pod

OCP使用Kubernetes的pod概念,它是部署在同一主机上的一个或多个容器,也是可被定义、部署和管理的最小计算单元。对于容器来说,pod大致相当于机器实例(物理的或虚拟的)。

通过Overview面板,可以访问 parksmap deployment的许多功能。在Details和Resources页签可以扩展应用pod,检查构建状态、service和route。

在上图中,点击 parksmap deployment:

OCP使用web console创建和构建应用_第11张图片

可以看到其详细信息:

OCP使用web console创建和构建应用_第12张图片
包括Details、Resources、Observe三个页签。

扩展应用

在Kubernetes中, Deployment 对象定义了如何部署应用。多数情况下,用户会把pod、service、ReplicaSets、deployment资源一起使用。在大多数情况下,OCP会创建这些资源。

在部署 national-parks-app image时,会创建一个deployment资源。本例只部署了一个pod。

把应用从一个pod实例扩展到两个pod实例:

在上图中,切换到“Details”页签,然后点击上箭头,扩容到两个pod:

OCP使用web console创建和构建应用_第13张图片

同理,可用下剪头将其缩容回一个pod。

部署一个Python应用

本例为 parksmap 应用部署后端service。Python应用在MongoDB数据库执行2D地理空间( geo-spatial)查询,以定位和返回世界上所有国家公园的地图坐标。

部署的后端service是 nationalparks

点击“+Add” -> “Import from Git”:

OCP使用web console创建和构建应用_第14张图片

  • Git Repo URL:填入 https://github.com/openshift-roadshow/nationalparks-py.git
  • Application:搜索并选择 national-parks-app
  • Name:填入 nationalparks
  • Resource type:选择Deployment
  • 勾选“Create a route”
  • 添加如下label:
    • app=national-parks-app
    • component=nationalparks
    • role=backend
    • type=parksmap-backend

OCP使用web console创建和构建应用_第15张图片

OCP使用web console创建和构建应用_第16张图片

OCP使用web console创建和构建应用_第17张图片
点击“Create”按钮,创建deployment。

点击“nationalparks” deployment,可见正在构建:

OCP使用web console创建和构建应用_第18张图片

大约一两分钟后,构建完成。

连接数据库

接下来,部署并连接一个MongoDB数据库, national -parks-app 应用将会存储位置信息于该数据库。一旦把 national-parks-app 应用标记为地图可视化工具的后端, parksmap deployment会使用OCP发现机制来自动显示地图。

点击“+Add” -> “Container images”:

OCP使用web console创建和构建应用_第19张图片

  • Image Name:填入 quay.io/centos7/mongodb-36-centos7
  • Runtime icon:搜索并选择 mongodb
  • Application:搜索并选择 national-parks-app
  • Name:填入 mongodb-nationalparks
  • Resource type:选择Deployment
  • 不勾选“Create a route”
  • 在最下面,点击“Deployment”,添加以下环境变量:
    • MONGODB_USERmongodb
    • MONGODB_PASSWORDmongodb
    • MONGODB_DATABASEmongodb
    • MONGODB_ADMIN_PASSWORDmongodb

OCP使用web console创建和构建应用_第20张图片

OCP使用web console创建和构建应用_第21张图片

OCP使用web console创建和构建应用_第22张图片

点击“Create”按钮,创建deployment。

OCP使用web console创建和构建应用_第23张图片

创建secret

Secret 对象提供了一种机制来保存敏感信息,如密码、OCP客户端配置文件、私有源仓库凭证等。Secret把敏感内容与pod解耦。可以通过volume插件把secret mount到容器中,系统也可以为pod而使用secret执行操作。本例添加secret nationalparks-mongodb-parameters ,并将它mount到 nationalparks 工作负载中。

点击“Secrets” -> “Create” -> “Key/value secret”:

OCP使用web console创建和构建应用_第24张图片

添加以下key/value:

  • MONGODB_USERmongodb
  • DATABASE_SERVICE_NAMEmongodb-nationalparks
  • MONGODB_PASSWORDmongodb
  • MONGODB_DATABASEmongodb
  • MONGODB_ADMIN_PASSWORDmongodb

OCP使用web console创建和构建应用_第25张图片
OCP使用web console创建和构建应用_第26张图片

然后,点击“Create”按钮,创建secret。最后,点击“Add Secret to workload”按钮,在弹出的对话框中,选择“nationalparks”,然后点击“Save”按钮:

OCP使用web console创建和构建应用_第27张图片

该配置变化会触发 nationalparks deployment 做一次滚动(rollout)更新,并注入环境变量。

加载数据并显示国家公园地图

目前已经部署了 parksmapNationalparks 应用,然后部署了 mongodb-nationalparks 数据库。但是,还没有把数据加载到数据库中。在加载数据前,将正确的label添加到 mongodb-nationalparksnationalparks deployment中。

点击“Topology” -> “nationalparks” -> “Resources” -> “Routes”,找到URL:

OCP使用web console创建和构建应用_第28张图片
本例中,URL是 https://nationalparks-user-getting-started.apps-crc.testing/

打开浏览器,访问该URL:

OCP使用web console创建和构建应用_第29张图片

访问 https://nationalparks-user-getting-started.apps-crc.testing/ws/data/load

OCP使用web console创建和构建应用_第30张图片

点击“Topology” -> “parksmap” -> “Resources” -> “Routes”,找到URL:

OCP使用web console创建和构建应用_第31张图片

打开浏览器,访问该URL:

OCP使用web console创建和构建应用_第32张图片

清理

crc delete -f

参考

  • https://access.redhat.com/documentation/en-us/openshift_container_platform/4.14/html-single/getting_started/index#openshift-web-console

你可能感兴趣的:(openshift,openshift,ocp)