一、Otomi介绍

Otomi官网:https://otomi.io/

Otomi-core核心模块Github地址:https://github.com/redkubes/otomi-core

Otomi是一个开源的、云无关的、基于kubernetes的平台,通过类似桌面的用户界面安全地部署、运行和管理应用程序。

Otomi易于安装,具有直观的桌面式UI,可以使用预先配置的内置应用程序提供开箱即用的体验。

就像您最喜欢的Linux发行版所期望的那样。在Kubernetes上安装Otomi后,您可以登录并立即开始部署应用程序。

Otomi是建立在以下开源项目之上的:

二、Otomi提供的特性

  • 开发人员自助服务:团队成员可以使用Otomi Console直接访问他们需要的所有工具并创建Services,Jobs和Secrets。
  • 预配置和准备使用的应用程序。
  • 所有集成应用程序的应用程序配置管理,提供基本配置文件配置以支持最常见的DevOps用例。
  • 多租户:创建团队并提供对共享应用程序的SSO访问。
  • 实现了更好的治理和安全性的策略。清单将在运行时静态地和在集群上进行检查,以确保策略服从。
  • 单点登录:自带IDP或使用Keycloak作为IDP(默认)。
  • 自动进入配置:轻松配置Team服务的进入,允许公众在几分钟内访问服务。Istio网关和虚拟服务为Team服务自动生成和配置,以可预测的方式将通用入口体系结构绑定到服务端点。
  • 输入/输出验证:静态地检查配置和输出清单的有效性和最佳实践。
  • 自动漏洞扫描:扫描Harbor中所有已配置的Team服务容器。
  • 内置对Azure、Amazon Web服务和谷歌云平台的支持。

Otomi的目标是支持最常见的DevSecOps用例,即开箱即用,并强烈依赖于GitOps模式,其中所需的状态以代码形式反映出来,集群状态会自动更新。

2.1 Otomi优势

  • 很容易安装
  • 自带一个直观的桌面式UI
  • 自带准备使用,预配置和内置的应用程序
  • 开箱即用的工作

就像您最喜欢的Linux发行版所期望的那样。在Kubernetes上安装Otomi之后,您可以登录并立即开始部署应用程序。

2.2 为什么选择Otomi

  • 允许定制和扩展。
  • 将上游Kubernetes与经过验证的开源应用程序和附加组件集成在一起。
  • 单个可部署包是否具有经过行业验证的应用程序和策略,以获得更好的治理和安全性。
  • 提供企业级容器平台的开箱即用体验。
  • 提高开发人员的效率,使开发人员自我服务。
  • 提供精心设计的合理默认值,以减少配置工作和加快时间的市场。
  • 结合12因素应用方法和Kubernetes的最佳实践。

三、Otomi架构

Otomi由多个项目组成:

  • Otomi Core:Otomi的心脏
  • Otomi Tasks:由Otomi Core组织的自主工作
  • Otomi API:Otomi的大脑,处理主机输入并与Otomi Core对话
  • Otomi Console:Otomi为管理员和团队提供的UI,与Otomi API对话
  • Otomi Clients:构建和发布redkubes/ Otomi -tasks repo中使用的openapi客户端的工厂

四、安装部署

4.1 最低要求及配置

4.1.1 客户端二进制文件

请确保以下客户端二进制文件存在:

  • Kubectl访问集群。
  • Docker必须安装并运行,就像Otomi运行在容器中一样。
  • 安装了Helm
  • 可选:Otomi CLI客户端

4.1.2 Kubernetes和DNS

Otomi至少要求:

  • 至少有3个工作节点的正在运行的Kubernetes集群(使用至少4个vCPU的通用实例类型)
  • 访问公共DNS区域

Otomi支持Kubernetes版本1.18到1.20

按照下面的说明在你选择的云上设置一个Kubernetes集群和DNS:

1. AWS#

Set up an EKS cluster on AWS: https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html

使用kubectl访问集群:

aws eks update-kubeconfig --name $CLUSTER_NAME

设置外部DNS:https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md

2. Azure (AKS)#

Set up an AKS cluster on Azure: https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal

使用kubectl访问集群:

az aks get-credentials --resource-group <resource-group> --name <cluster-name> --admin

设置外部DNS:https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/azure.md

3. Google (GKE)#

Set up a GKE cluster on Google Cloud Platform: https://cloud.google.com/kubernetes-engine/docs/how-to

使用kubectl访问集群:

gcloud container clusters get-credentials <cluster-name> --region <region> --project <project>

设置外部DNS:https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/gke.md

4.2 可选配置

可以选择将Otomi配置为使用外部IDP (Azure AD),并为sop使用外部密钥管理服务(KMS)提供商。

下面你可以找到关于如何将Azure AD设置为外部IDP和配置KMS的详细说明。

我们将很快为其他idp添加更多说明,如Amazon Incognito,谷歌Identity和Okta。

4.3 安装图表

使用Helm安装Otomi。

有关如何使用helm图表的更多细节,请访问helm文档页面。

在开始之前,验证您是否已经满足先决条件:

1. 添加Otomi仓库#

helm repo add otomi https://otomi.io/otomi-core
helm repo update

查看helm repo了解更多命令说明。

2. 创建测试文件

查看所需的值。Yaml文件的详细注释,查看和下载图表的最新值。

运行以下命令查看所有的值:

helm show values otomi/otomi

使用实例测试输入值是否正确。

helm template -f values.yaml otomi/otomi

3. 安装图表

使用以下命令安装图表:

helm install -f values.yaml otomi otomi/otomi

监控图表安装:

图表在默认名称空间中部署一个Job (otomi)。使用kubectl监控图表安装:

# get the status of the job
kubectl get job otomi -w
# watch the helm chart install status:
watch helm list -Aa

4. 二进制安装

git clone https://github.com/redkubes/otomi-core.git
cd otomi-core

使用以下命令安装名称为my-otomi-release(您选择的自定义名称)的图表。

helm install -f values.yaml my-otomi-release chart/otomi

5. 卸载图表

helm uninstall my-otomi-release

Helm卸载只会移除用于部署Otomi的工作。它不会移除所有已安装的组件。如果您想完全卸载,我们建议首先克隆otomi/values存储库(以确保配置安全),然后使用otomi CLI卸载。

五、安装后配置

安装Otomi之后,需要两个安装后配置操作。遵循这些指令:

5.1 登录Otomi控制台

在浏览器中打开url https://otomi.<domainsuffix>。domainSuffix可以在值中找到。Yaml是在安装期间提供的。

如果Otomi配置了OIDC(使用Azure AD作为IDP),单击右边的按钮(下面示例中的redkubes-azure)。

如果没有配置OIDC,请先在Keycloak中创建用户。并将该用户添加到otomi-admin组。

成功登录后,您将看到Otomi Dashboard。

要了解更多关于使用Otomi控制台,请查看Otomi控制台。

5.2 激活Drone

Gitea和Drone是Otomi集群配置存储和更新的重要组成部分。点击控制台中的Gitea应用程序(在Platform/Otomi Apps下)。它将打开一个新的浏览器选项卡,并显示在Gitea的登录页面。使用默认的otomi-admin帐户登录。

在登录后,可能需要几分钟才能看到otomi/values存储库。

otomi/values存储库保存otomi集群配置,每当通过控制台发生新的更改时,它就会更新。

现在回到控制台激活Drone。

点击Drone 应用程序,它应该打开一个新标签,如下所示,

选择Activate,然后Activate REPOSITORY

保存更改,就可以开始了。

现在,最后一步是创建Team。有关更多信息,请参见 Teams页面。

云无关、桌面端、基于Kubernetes的平台Otomi的更多相关文章

  1. 腾讯基于Kubernetes的企业级容器云平台GaiaStack (转)

    GaiaStack介绍 GaiaStack是腾讯基于Kubernetes打造的容器私有云平台.这里有几个关键词: 腾讯:GaiaStack可服务腾讯内部所有BG的业务: Kubernetes:Gaia ...

  2. openshift 云平台基于kubernetes

    转载:https://www.kubernetes.org.cn/3208.html 目前红帽的核心产品PaaS平台OpenShift,最初在2012年释出时是使用自家开发的容器调度工具,但在2014 ...

  3. 基于Kubernetes构建企业容器云

    前言 团队成员有DBA.运维.Python开发,由于需要跨部门向公司私有云团队申请虚拟机, 此时我在思考能否在现有已申请的虚拟机之上,再进行更加细粒度的资源隔离和划分,让本团队的成员使用, 也就是在私 ...

  4. 白瑜庆:知乎基于Kubernetes的kafka平台的设计和实现

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文首发在云+社区,未经许可,不得转载. 自我介绍 我是知乎的技术中台工程师,现在是负责知乎的存储相关组件.我的分享主要基于三个,一个是简单 ...

  5. JFrog推出全球首个支持混合云架构,端到端的通用DevOps平台 ——JFrog Platform

            JFrog Platform,基于屡获殊荣的JFrog Artifactory制品仓库的独特能力,通过多合一的体验提供DevSecOps.CI / CD和软件分发的解决方案. 2020 ...

  6. IBM基于Kubernetes的容器云全解析

    基于Kubernetes的容器云 容器云最主要的功能是以应用为中心,帮助用户把所有的应用以容器的形式在分布式里面跑起来,最后把应用以服务的形式呈现给用户.容器云里有两个关键点,一是容器编排,二是资源调 ...

  7. 基于kubernetes自研容器管理平台的技术实践

    一.容器云的背景 伴随着微服务的架构的普及,结合开源的Dubbo和Spring Cloud等微服务框架,宜信内部很多业务线逐渐了从原来的单体架构逐渐转移到微服务架构.应用从有状态到无状态,具体来说将业 ...

  8. 基于Kubernetes/K8S构建Jenkins持续集成平台(下)

    基于Kubernetes/K8S构建Jenkins持续集成平台(下) Jenkins-Master-Slave架构图回顾: 安装和配置NFS NFS简介 NFS(Network File System ...

  9. 重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印

    重复造轮子系列——基于FastReport设计打印模板实现桌面端WPF套打和商超POS高度自适应小票打印 一.引言 桌面端系统经常需要对接各种硬件设备,比如扫描器.读卡器.打印机等. 这里介绍下桌面端 ...

随机推荐

  1. mybaits源码分析--缓存模块(六)

    一.缓存模块 MyBatis作为一个强大的持久层框架,缓存是其必不可少的功能之一,Mybatis中的缓存分为一级缓存和二级缓存.但本质上是一样的,都是使用Cache接口实现的.缓存位于 org.apa ...

  2. 如何实现LRU缓存

    大家好,我是程序员学长,今天我们来聊一聊LRU缓存问题. Tips: LRU在计算机软件中无处不在,希望大家一定要了解透彻. 问题描述 设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设 ...

  3. Django的form组件——自定义校验函数

    from django.shortcuts import render,HttpResponse from django import forms from django.core.exception ...

  4. PyQt5 笔记

    一.简介 pyqt5做为Python的一个模块,它有620多个类和6000个函数和方法.这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括UNIX,Windows,Mac OS.pyqt5是 ...

  5. 案例九:shell脚本自动创建多个新用户,并设置密码

    此脚本是用来批量创建用户并设置用户密码,在企业用非常实用. 脚本一 #!/bin/bash for name in $( seq 1 100 ) do useradd "user$name& ...

  6. 利用 uber-go/dig 库管理依赖

    利用 uber-go/dig 库管理依赖 github 地址 官方文档 介绍 dig 库是一个为 go 提供依赖注入 (dependency injection) 的工具包,基于 reflection ...

  7. 一、java基础补充

    1.java执行流程 源文件由编译器编译成字节码(ByteCode),也就是.class文件 字节码由java虚拟机解释运行 通过命令行操作java程序: javac test.java java t ...

  8. 致Python初学者,Python常用的基础函数你知道有哪些吗?

    Python基础函数: print()函数:打印字符串 raw_input()函数:从用户键盘捕获字符 len()函数:计算字符长度 format(12.3654,'6.2f'/'0.3%')函数:实 ...

  9. jquery获取一个元素符合条件的第一个父元素

    closest jQuery 1.3新增.从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素.. closest会首先检查当前元素是否匹配,如果匹配则直接返回元素本身.如果不匹配则向上查找父元素 ...

  10. Docker系列(7)- 常用命令(3) | 容器命令

    容器命令 说明: 有了镜像才可以创建容器:下载一个centos镜像进行练习,相当于在Linux里面再见一个Linux虚拟机 [root@localhost ~]# docker pull centos ...