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.testingLog in as administrator:Username: kubeadminPassword: MSmt7-d8LbI-igtzV-DeJY9Log in as user:Username: developerPassword: developerUse 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

在这里插入图片描述
kubeadmin 或者 developer 登录都可以。

比如用 developer 登录,如下:

在这里插入图片描述
Web console提供两种视角: Administrator 视角和 Developer 视角。Developer视角提供开发人员用例特有的工作流。

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

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

切换到Developer视角,如下:

在这里插入图片描述

创建project

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

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

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

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

在这里插入图片描述

  • 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

在这里插入图片描述

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

部署第一个image

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

切换到Devloper视角。

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

在这里插入图片描述

  • 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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

检查pod

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

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

在上图中,点击 parksmap deployment:

在这里插入图片描述

可以看到其详细信息:

在这里插入图片描述
包括Details、Resources、Observe三个页签。

扩展应用

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

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

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

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

在这里插入图片描述

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

部署一个Python应用

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

部署的后端service是 nationalparks

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

在这里插入图片描述

  • 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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
点击“Create”按钮,创建deployment。

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

在这里插入图片描述

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

连接数据库

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

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

在这里插入图片描述

  • 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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

创建secret

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

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

在这里插入图片描述

添加以下key/value:

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述
本例中,URL是 https://nationalparks-user-getting-started.apps-crc.testing/

打开浏览器,访问该URL:

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

打开浏览器,访问该URL:

在这里插入图片描述

清理

crc delete -f

参考

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2777205.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

律师小程序,在线咨询,在线问答小程序修复头像

应用介绍 演示前端小程序: #小程序://问卜易学咨询/cVtT0ndctaecDKd 律师小程序是一种智能化的服务平台,提供了多种有益的功能。首先,它能够实现在线法律咨询,用户可以通过文字、语音或视频与律师实时沟通,获得专业意见…

飞天使-linux操作的一些技巧与知识点9-zabbix6.0 容器之纸飞机告警设置

文章目录 zabbix 告警纸飞机方式webhook 方式 zabbix 告警纸飞机方式 第一种方式参考 https://blog.csdn.net/yetugeng/article/details/99682432bash-4.4$ cat telegram.sh #!/bin/bashMSG$1TOKEN"61231432278:AAsdfsdfsdfsdHUxBwPSINc2kfOGhVik" CHAT_ID-41dsdde…

【C++】类的6个默认成员函数

目录 1. 类的6个默认成员函数 2. 构造函数 3. 析构函数 4. 拷贝构造函数 5. 运算符重载 5.1运算符重载 5.2赋值运算符重载 5.3前置和后置重载 5.4日期类的实现 6. const成员函数 7. 取地址及const取地址操作符重载 1. 类的6个默认成员函数 对于一个空类,编…

封装sku组件

1. 准备模板渲染规格数据 使用Vite快速创建一个Vue项目&#xff0c;在项目中添加请求插件axios&#xff0c;然后新增一个SKU组件&#xff0c;在根组件中把它渲染出来&#xff0c;下面是规格内容的基础模板 <script setup> import { onMounted, ref } from vue import axi…

【Java面试】数据类型常见面试题

什么是包装类型 将基本类型包装进了对象中得到的类型 基本类型和包装类型有什么区别 用途不同&#xff1a;基本类型一般用于局部变量&#xff0c;包装类型用于其他地方存储方式不同&#xff1a;用于局部变量的基本类型存在虚拟机栈中的局部变量表中&#xff0c;用于成员变量…

[C/C++] -- Boost库、Muduo库编译安装使用

1.Muduo库 Muduo 是一个基于 C11 的高性能网络库&#xff0c;其核心是事件驱动、非阻塞 I/O、线程池等技术&#xff0c;以实现高并发、高性能的网络通信。Muduo 库主要由陈硕先生开发维护&#xff0c;已经成为 C 服务器程序员的常用工具之一。 Muduo 库的主要特点&#xff1a…

每日OJ题_位运算①_位运算解题方法+3道OJ

目录 位运算算法原理 ①力扣191. 位1的个数 解析代码 ②力扣338. 比特位计数 解析代码 ③力扣461. 汉明距离 解析代码 位运算算法原理 常见位运算解题方法&#xff1a; 1. 基础位运算&#xff1a; &&#xff1a;按位与&#xff0c;有0就是0 | &#xff1a;按位或&a…

横扫Spark之 - 22个常见的转换算子

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 1. map()2. flatMap()3. filter()4. mapPartitions()5. mapPartitionsWithIndex()6. groupBy()7. distinct()8. coalesce()9. repartition()10. sortBy()11. intersection()12.union()13.…

蓝桥杯每日一练(python)B组

###来源于dotcpp的蓝桥杯真题 题目 2735: 蓝桥杯2022年第十三届决赛真题-取模&#xff08;Python组&#xff09; 给定 n, m &#xff0c;问是否存在两个不同的数 x, y 使得 1 ≤ x < y ≤ m 且 n mod x n mod y 。 输入格式&#xff1a; 输入包含多组独立的询问。 第一…

二维差分---三维差分算法笔记

文章目录 一.二维差分构造差分二维数组二维差分算法状态dp求b[i][j]数组的二维前缀和图解 二.三维前缀和与差分三维前缀和图解:三维差分核心公式图解:模板题 一.二维差分 给定一个原二维数组a[i][j],若要给a[i][j]中以(x1,y1)和(x2,y2)为对角线的子矩阵中每个数都加上一个常数…

绕过系统访问控制

我们研究了最近NSA/CISA 联合网络安全咨询&#xff0c;该咨询涉及这些组织在红/蓝团队演习中发现的首要网络安全问题。在本文中&#xff0c;您将更深入地了解特定问题&#xff0c;包括适用的实际场景&#xff0c;以及可用于限制或克服该问题的缓解策略。这扩展了 NSA/CISA 报告…

C++自幂数判断<GESP C++ 二级>

题目&#xff1a; 代码&#xff1a; #include <iostream> using namespace std; int main() {int m 0;cin >> m;for (int i 0; i < m; i) {int n 0;cin >> n;// 数一下 n 有多少位数&#xff0c;记为 lint t n, l 0;while (t > 0) {t / 10;l;}/…

boot::process::child::wait_until 线程不安全

最近在项目中需要多线程调用子程序。子程序可能工作时间很长&#xff0c;故用 boost::process::child::wait_until 来实现超时功能。 然而&#xff0c;多线程压力测试时&#xff0c;发现有可能导致 core dump。 经查证&#xff0c;是 boost::process::child::wait_until 的一个…

Linux中断编程

大家好&#xff0c;今天给大家介绍Linux中断编程&#xff0c;文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 Linux中断编程涉及到操作系统层面的中断处理机制&#xff0c;它是Linux内核与硬…

SPSS基础操作:对数据按照样本观测值进行排序

在整理数据资料或者查看分析结果时&#xff0c;我们通常希望样本观测值能够按照某一变量的大小进行升序或者降序排列&#xff0c;比如我们想按照学生的学习成绩进行排序&#xff0c;按照销售额的大小对各个便利店进行排序等。以本章附带的数据4为例&#xff0c;如果要按照y4体重…

JavaWeb02-MyBatis

目录 一、MyBatis 1.概述 2.JavaEE三层架构简单介绍 &#xff08;1&#xff09;表现层 &#xff08;2&#xff09;业务层 &#xff08;3&#xff09;持久层 3.框架 4.优势 &#xff08;1&#xff09;JDBC的劣势 &#xff08;2&#xff09;MyBatis优化 5.使用 &#…

第六章:纹理贴图

本文是《从0开始图形学》笔记的第六章,介绍模型纹理的实现,涉及到重心坐标的计算方式和作用,本章之后,我们的模型将从单色变成更为丰富的彩色。 纹理贴图数据格式 前面几章我们已经可以将复杂的模型渲染出来了,但是模型还是单色的,这显然是不够的,模型还需要各种各样的…

除夕快乐(前端小烟花)

家人们&#xff0c;新的一年好运常在&#xff0c;愿大家在新的一年里得偿所愿&#xff0c;发财暴富&#xff0c;愿大家找到属于自己的那个公主&#xff0c;下面就给大家展示一下给公主的烟花 前端烟花 新的一年&#xff0c;新的挑战&#xff0c;愿我们不忘初心&#xff0c;砥砺…

【C生万物】数组

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有…

教你如何生成自己的专属动态龙新年图像 - Python实现摘要

引言 新年将至&#xff0c;为了给大家带来一丝喜庆和神秘的气氛&#xff0c;我决定用Python编写一个生成专属动态龙图像的小程序。通过这个程序&#xff0c;你可以生成一个独一无二的龙图像&#xff0c;并为它添加动态效果&#xff0c;让它在新年的时刻为你带来好运和祝福。 正…