Mendix 应用 在Openshift私有云的解决方案(上)之注册集群

导语

Mendix for Private Cloud将公司的云原生架构扩展到任何私有化配置或数据中心。运行在Kubernetes上的Mendix for Private Cloud可以满足企业私有云或者混合云上特定的安全性、兼容性或数据集成要求。开发人员可以协作、测试、监控并将应用程序部署到Mendix for Private Cloud或任何其他云目标,您可以在Developer  Portal 中指定 Kubernetes、Openshift 私有云集群,进行部署和管理、监控Mendix应用程序。

 

01. 简介

Mendix For Private Cloud 正式支持以下平台:红帽Openshift、亚马逊弹性Kubernetes服务(AWS-EKS)、Azure Kubernetes服务(AKS)。该方案有区别于传统部署在K8S和Openshift方式,主要体现在该方案是通过Developer Portal部署,通过Developer Portal 对app打包、构建、环境选择、部署、弹性伸缩、监控、管理的完整devops闭环。主要介绍基于Openshift平台的解决方案,中间也会简单介绍其他平台相应的操作。

实现这一目标需要两个步骤,如下所示。

Registering Your Cluster

第一步是在开发人员门户中注册私有云集群。有关详细信息,请参阅注册私有云集群。

Deploying Your App

第二步是要部署应用程序,您有两个选项:

  • 您可以从开发人员门户中部署应用程序。有关更多信息,请参阅从开发人员门户将Mendix应用程序部署到私有云群集。

  • 您可以创建一个CI/CD管道并在集群内部署应用程序。有关更多信息,请参阅使用命令行将Mendix应用程序部署到私有云群集。

我们主要是介绍第一种方式,从developer portal开发者门户上部署应用程序。

02. 注册私有云集群

要允许您管理应用程序到Red Hat OpenShift和Kubernetes的部署,首先需要在Mendix开发人员门户中注册集群。这将为您提供在OpenShift上下文中部署Mendix operator 、Mendix gateway agent所需的信息,并通过Interactior创建到Mendix应用程序环境页面的链接。

注册群集的先决条件

  • Kubernetes平台或OpenShift 3.11或更高版本

  • 支持https认证的私有镜像仓库registry

进行注册集群

获得脚本

1. 从开发者门户的Apps菜单中选择Cluster Manager

 2. 点击注册集群

3. 输入下面的信息

  1. Name – 要为正在注册的群集提供的名称。
  2. Namespace –这是您平台中的命名空间。
  3. Type – 为群集选择正确的类型。
  4. Installation type – 如果要从Mendix开发人员门户创建环境并部署应用程序,请选择“已连接”,但如果只想使用CLI通过Mendix操作员控制部署,请选择“独立”。

4. 点击 Done

openshift type
kubernetes type
​​​​

运行安装的脚本

您需要对私有云平台拥有管理员权限,这意味着您必须在运行安装脚本之前登录。

1. Signing in to OpenShift

这些说明适用于OpenShift平台;其他平台也需要类似的过程。

要在OpenShift上运行安装脚本,在Bash中运行脚本之前,必须使用OpenShift CLI登录到OpenShift。

您可以执行以下操作:

  • 登录到OpenShift控制台。

  • 单击“用户”下拉列表中的“复制登录命令

  • 将命令粘贴到Bash中并按Enter键

2. Executing the Installation Script

要执行安装脚本,请执行以下操作:

  • 通过单击“复制到剪贴板”复制为您创建的安装脚

  • 将脚本粘贴到Bash控制台中,然后按Enter运行脚本

 对脚本的响应应该如下图所示。可以看到脚本安装了以下内容

a.mendix-agent

b.mendix-operator

如果响应以Installation Successful.结束,则安装成功。

Mendix operator and Mendix agent现在已安装在您的平台上。如果在OpenShift控制台中查看项目资源,可以看到mendix operator、mendix agent资源。

始终可以在群集管理器中的群集的“安装”选项卡中再次找到安装脚本。

3. Running the Reconfiguration Script

在将应用程序部署到命名空间之前,需要配置许多服务,即:

  • database

  • file storage

  • proxy

  • registry

  • ingress (network)

Mendix为您提供了一个脚本,它将在最初配置这些脚本,并且可以在您希望更改配置方式的任何时候重新运行这些脚本。

  • 通过单击“复制到剪贴板”复制为您创建的重新配置脚本。

  • 按Enter启动脚本.

会问你一系列问题。键入与您的选择相对应的数字,或输入所需的值。

(1) What do you want to do?

如果这是初始配置,请选择1,系统将引导您完成所有需要配置的项。

如果已经有配置,但要重新配置其中的一部分,请选择2。如果选择此选项,则可以直接导航到要配置的对象,即以下对象之一:

  • Database

  • Storage

  • Ingress

  • Registry

  • Proxy

使用数据库或存储重新配置群集时,除了已设置的任何服务外,还将添加新服务。然后,这些计划将被添加到开发人员门户,并且可以在为应用程序创建环境时使用,除非您特别停用它们。

您可以从任何其他问题返回到初始问题,方法是选择“返回到可用的起始位置”。

(2)  Pick a database type

Postgres将允许您输入值来配置PostgreSQL数据库。您需要提供关于PostgreSQL数据库的所有信息,如计划名称、主机、端口、数据库、用户和密码。

如果计划已经存在,您将收到一个无法创建它的错误。这不是问题,您可以继续使用该计划,它现在将具有新的配置。

例如:可通过以下命令创建一个postgers数据库

docker run --name postgres-private-mendix -e POSTGRES_PASSWORD=123456 -e POSTGRES_USER=mendix -e POSTGRES_PASSWORD=mendix  -p 5432:5432 -d postgres 

Ephemeral将使您能够快速设置环境并部署应用程序,但当您重新启动环境时,存储在数据库中的任何数据都将丢失。

(3) Pick a storage type

Minio将连接到Minio S3兼容的对象存储。您需要提供有关您的MinIO存储的所有信息,如端点、访问密钥和密钥。MinIO服务器需要是功能齐全的MinIO服务器,而不是MinIO网关。(Minio是Apache License v2.0下发布的对象存储服务器。它与Amazon S3云存储服务兼容。它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/ VM映像。对象的大小可以从几KB到最大5TB)。

##server端安装wget https://dl.minio.io/server/minio/release/linux-amd64/miniochmod +x minio./minio server /data

注意启动显示的 appkey secretkey是默认登录账户,密码

浏览器访问:http://ip:9000

Amazon S3将连接到AWS帐户以创建S3存储桶和关联的IAM帐户。每个应用程序将收到一个专用的S3存储桶和一个IAM帐户,该帐户只能访问特定的S3存储桶。您需要提供有关Amazon S3存储的所有信息,如计划名称、区域、访问密钥和密钥。关联的IAM帐户需要具有以下IAM策略(用您的AWS帐户号替换<account_id>):

{
   
   "Version": "2020-4-17","Statement": [{
   
   "Sid": "bucketPermissions","Effect": "Allow","Action": ["s3:CreateBucket","s3:DeleteBucket"],"Resource": "arn:aws:s3:::mendix-*"},{
   
   "Sid": "iamPermissions","Effect": "Allow","Action": ["iam:DeleteAccessKey","iam:PutUserPolicy","iam:DeleteUserPolicy","iam:DeleteUser","iam:CreateUser","iam:CreateAccessKey"],"Resource": ["arn:aws:iam::<account_id>:user/mendix-*"]}]}

Ephemeral将使您能够快速设置环境并部署应用程序,但当您重新启动环境时,您存储的任何数据对象都将丢失。

(4)Pick an ingress type

OpenShift Route将设置OpenShift Route。这只能用于OpenShift集群。

Ingress 将根据您提供的其他域名配置入口。

两种形式的入口都可以启用或禁用TLS。

(5)Pick a registry type

您可以选择下列注册表类型之一。OpenShift注册表只能用于OpenShift平台上的集群。AWS ECR只能用于AWS EKS集群。对于其中一些注册中心,您可能需要提供其他信息,如pull URL、push URL、name和secret。

  • OpenShift 3 Registry

  • OpenShift 4 Registry

  • Amazon Elastic Container Registry (AWS ECR)

  • Generic registry with authentication (this should either be Public or should have image pull secrets enabled).

  • Generic registry without authentication

pull_url:

service+port地址:docker-registry.default.svc.cluster.local:5000

以上地址需要在/etc/docker/daemon.json添加

"insecure-registries":["docker-registry.default.svc.cluster.local:5000"]

如果是阿里云的registry,之后pushing会报不支持的error

(6)Do you want to configure the proxy

如果需要代理才能从群集访问公共internet,请选择“Yes”;系统将要求您提供代理配置详细信息。

  • 在开发者门户上选择其中的一个app,然后在Mendix app的Settings 页面点击 Cloud Settings。

  • 点击 Mendix for Private Cloud

  • 点击 Set up Mendix for Private Cloud

Confirming Cluster Configuration

正确配置群集后,其状态将变为Connected。如果屏幕没有自动更新,您可能需要单击刷新按钮。

03. 当前限制

存储资源调配

如果操作员未能设置或取消设置存储(数据库或文件存储),则不会重试该操作。如果存在失败的*-数据库或*-文件,则需要执行以下操作:

  • 检查失败的pod日志以获取错误消息。

  • 排除故障并修复此错误的原因。

  •  删除失败的pod以再次重试该进程。

04. 故障排除

本节涵盖了当Mendix无法自动恢复并且可能需要手动干预时可能出现的问题。

Status Reporting

在某些情况下,群集及其环境的状态更改不会自动更新。要确保看到当前状态,可能需要单击屏幕上的刷新按钮(而不是浏览器页面刷新按钮)。

Agent Connection Status Not up to Date

群集状态可能显示为等待连接,即使代理已实际连接到群集。需要重新启动代理以强制其重新连接。

在部署Mendix运算符的命名空间中运行以下命令:

  • OpenShift类型的

oc scale deployment mendix-agent --replicas=0 && \sleep 200 && \oc scale deployment mendix-agent --replicas=1
  • Kubernetes类型的

kubectl scale deployment mendix-agent --replicas=0 && \sleep 200 && \kubectl scale deployment mendix-agent --replicas=1

05. 容器化的Mendix应用架构

在集群中,您可以运行一个或多个Mendix应用程序。每个应用程序都在一个命名空间中运行。您可以在下图中看到Mendix环境和Kubernetes命名空间之间的关系。

因为您可以在同一集群中运行多个Mendix应用程序,所以每个应用程序必须具有唯一的名称。此外,应用程序不能与用于部署应用程序的Mendix Operator 同名。


更多信息,请访问以下链接:

Mendix官网:https://www.mendix.com/zh/

Mendix行业解决方案:https://solutions.mendix.com/

Mendix平台指南:https://www.mendix.com/evaluation-guide/

Mendix动画展示:https://www.mendix.com/demos/

Mendix公众号

谢谢阅读!

猜你喜欢

转载自blog.csdn.net/Mendix/article/details/115251816
今日推荐