ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CharmHub 是通过 Juju 部署魅惑操作员的规范来源。使用商店可确保您不仅可以访问最新发布的迷人操作员版本,而且还可以在新的操作员版本可用时自动通知您,以便您可以通过 Juju 命令行客户端轻

2022-01-10 21:59:49  阅读:126  来源: 互联网

标签:juju 部署 操作员 应用程序 Juju 版本


部署应用程序

Juju 的主要作用是以简单、可重复和遵循最佳实践的方式部署和管理软件应用程序。这是在有魅力的操作员的帮助下实现的,这些小软件封装了所有必要的逻辑,不仅用于安装、配置和升级应用程序,还支持第一天后的操作。

魅力运营商的作者将他们的工作发布到charmhub.io,除了作为托管运营商本身的开放平台外,还提供了一个用户友好的界面来搜索运营商并访问其相关文档。此外,还可以在本地下载操作符以供离线使用(例如,在气隙环境中工作时)。

内容:

为了部署任何应用程序,您首先需要访问 Juju 控制器。有关指导,请参阅创建控制器页面。

从 charmhub-io 部署

CharmHub 是通过 Juju 部署魅惑操作员的规范来源。使用商店可确保您不仅可以访问最新发布的迷人操作员版本,而且还可以在新的操作员版本可用时自动通知您,以便您可以通过 Juju 命令行客户端轻松升级。

该 juju deploy命令可用于部署被魅惑的操作员。例如:

<span style="background-color:rgba(0, 0, 0, 0.03)"><span style="color:#111111"><code style="margin-left:0px" class="language-bash">juju deploy mysql
</code></span></span>

根据您的控制器运行的云基板,上述命令将分配合适的机器(物理、虚拟、LXD容器或 kubernetes pod),然后继续部署和配置 MySQL。

根据您的用例,您也可以选择通过juju add-machine命令提前配置一组机器。在这种情况下,当运行上述juju deploy命令时,Juju 将检测到模型中包含没有分配应用程序的机器,并自动将 MySQL 调度到其中一台机器上,而不是启动新机器。

指定一个有魅力的操作员频道

除了提供每个算子的最新稳定版本外,CharmHub 还允许用户下载或部署处于不同开发阶段的算子。一些用户可能对算子的前沿(开发中)版本感兴趣,而其他用户可能是 beta 测试组的一部分,任务是评估特定算子的下一个候选版本。

Juju 使用术语渠道来指代这些阶段。当前支持以下频道名称:

  • stable:(默认)这是最新的、经过测试的、工作稳定的迷人操作员版本。
  • 候选:发布候选。很有信心这会正常工作,但可能会有一些小错误。
  • beta:一个 beta 测试里程碑版本。
  • edge:最新版本 - 期待错误!

由于魅惑运算符的每个新版本都会自动进行版本化,这些通道用作指向特定版本号的指针。可能在一段时间后,一个 beta 版本成为候选版本,或者一个候选版本成为新的稳定版本。

除非另有说明,否则 Juju在部署算子时会自动使用稳定通道。但是,用户可以明确指定要从中提取运算符的通道作为juju deploy命令的参数,如下所示:

<span style="background-color:rgba(0, 0, 0, 0.03)"><span style="color:#111111"><code style="margin-left:0px" class="language-bash">juju deploy mysql --channel beta
</code></span></span>

如果 CharmHub 无法使用指定的频道识别合适的运营商版本,Juju 将自动回退到下一个最稳定的运营商可用的频道。例如,如果beta通道中没有可用的操作员,那么Juju 将尝试从候选通道进行部署,依此类推,直到可以找到合适的操作员版本。

请参阅升级应用程序,了解魅力运营商升级的工作原理。

覆盖已部署应用程序的名称

一般在部署一个新的应用程序时,在 Juju 模型中使用 Charm 名称作为应用程序名称。但是,该juju deploy命令允许您覆盖此行为并通过向juju deploy命令提供额外参数来指定自定义应用程序名称。例如,以下命令将部署 mysql 魅力,但将其名称覆盖为db

<span style="background-color:rgba(0, 0, 0, 0.03)"><span style="color:#111111"><code style="margin-left:0px" class="language-bash">juju deploy mysql db
</code></span></span>

自定义应用程序名称必须符合以下规则:

  • 它们由小写字母 (az)、数字 (0-9) 和单个连字符 (-) 组成。
  • 名称必须以字母开头,并且不能有一组所有数字后跟连字符。

根据上述规则集,以下应用程序名称将是有效的:myappnamecustom-appapp2. 另一方面,以下应用程序名称将无效:myAppNamecustom--appapp2-23areacode-555-info.

覆盖应用程序名称时,指定的名称将显示在juju status输出中,并且必须与与特定应用程序交互的任何 juju 客户端命令一起使用。

部署当地的魔法操作员

除了从 CharmHub 下载算子,还可以从本地文件系统上传和部署算子。有关进一步的指导,请参阅离线部署迷人的操作员

部署一个迷人的操作员包

当尝试配置包含多个迷人运算符的复杂应用程序堆栈时,您可以使用捆绑包在一个步骤中部署和配置所有运算符,而不必手动部署每个运算符。有关指导,请参阅Charmed 操作员捆绑包页面。

公开已部署的应用程序

默认情况下,一旦部署了一个应用程序,它就只能同一个Juju 模型中的其他应用程序访问。但是,如果特定部署用例要求应用程序可以通过 Internet 流量访问(例如 Web 服务器、wordpress 安装等),则 Juju 需要调整支持云的防火墙规则以允许 Internet 流量到达应用程序。这是通过juju expose命令完成的。

运行juju expose命令后,应用程序的魔法操作员打开的任何端口都可以通过任何公共或私有 IP 地址访问。

假设已经部署了“wordpress”应用程序(并且已经与部署的数据库“mariadb”建立了关系),可以使用以下命令将应用程序暴露在 Juju 模型之外:

<span style="background-color:rgba(0, 0, 0, 0.03)"><span style="color:#111111"><code style="margin-left:0px" class="language-bash">juju expose wordpress
</code></span></span>

在运行时juju statusicon-default.png?t=LBL2http://riricaf.com/soft/42024.html,它的输出不仅会指示应用程序是否被公开,还会显示可用于访问每个公开应用程序的公共地址:

<span style="background-color:rgba(0, 0, 0, 0.03)"><span style="color:#111111"><code style="margin-left:0px" class="language-bash">App        Version  Status  Scale  Charm      Store       Rev  OS      Notes
mariadb    <span style="color:#77216f">10.1</span>.36  active      <span style="color:#77216f">1</span>  mariadb    jujucharms    <span style="color:#77216f">7</span>  ubuntu  
wordpress           active      <span style="color:#77216f">1</span>  wordpress  jujucharms    <span style="color:#77216f">5</span>  ubuntu  exposed

Unit          Workload  Agent  Machine  Public address  Ports   Message
mariadb/0*    active    idle   <span style="color:#77216f">1</span>        <span style="color:#77216f">54.147</span>.127.19           ready
wordpress/0*  active    idle   <span style="color:#77216f">0</span>        <span style="color:#77216f">54.224</span>.246.234  <span style="color:#77216f">80</span>/tcp
</code></span></span>

juju unexpose命令可用于撤消防火墙更改,并再次仅允许同一 Juju 模型中的应用程序访问该应用程序:

<span style="background-color:rgba(0, 0, 0, 0.03)"><span style="color:#111111"><code style="margin-left:0px" class="language-bash">juju unexpose wordpress
</code></span></span>

从 Juju 2.9 开始,运营商可以明确指定应该能够访问应用程序打开的端口的 CIDR 和/或空间列表。请参阅通过 Juju CLI 控制应用程序公开设置以了解有关此功能的更多信息。

在部署时配置

大多数迷人的运营商都提供了一个明智的默认配置。但是,对于某些用例,可能需要在部署时覆盖默认的应用程序配置选项。有关这方面的更多信息,请参阅配置应用程序

百度游戏直播助手icon-default.png?t=LBL2http://riricaf.com/soft/42044.html

将应用程序部署到 LXD 容器

Juju 还支持将应用程序作为 LXD 容器部署到新的或现有的(参见下一节)机器,而不是从支持基板获取新机器并将应用程序直接部署到它。

例如,以下命令将分配一台新机器并将etcd部署到托管在已分配机器上的 LXD 容器中:

<span style="background-color:rgba(0, 0, 0, 0.03)"><span style="color:#111111"><code style="margin-left:0px" class="language-bash">juju deploy etcd --to lxd
</code></span></span>

将应用程序部署到特定机器

juju deploy命令允许用户--to在部署应用程序时(通过标志)定位特定机器(或容器)。有关此主题的完整介绍,请参阅部署到特定机器

在部署时定位特定的可用区

如果支持的云基板支持多个可用区 (AZ),则用户可以明确指定在部署操作期间启动机器时要使用哪个(或多个)可用区。有关详细信息,请参阅部署到特定可用区

部署应用程序时以网络空间为目标

网络空间的概念允许用户为包含已部署的迷人运营商的单元指定更受限制的网络拓扑。有关详细信息,请参阅部署到网络空间

扩展已部署的应用程序

一个常见的企业需求是扩展(和缩减)底层基础设施的能力。Juju 开箱即用地提供了此功能。在扩展应用页面提供深入的对此事的指导。

信任应用程序

一些运营商可能需要对支持云的特权访问才能运行。在这种情况下,与应用程序所属的 Juju 模型关联的云凭证必须与应用程序共享。这可以在部署时(例如juju deploy --trust)或稍后通过juju trust命令实现。请参阅使用凭证信任应用程序部分以了解有关此主题的更多信息。

标签:juju,部署,操作员,应用程序,Juju,版本
来源: https://blog.csdn.net/qq_58435143/article/details/122420177

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有