Triton

Joyent Triton 数据中心:一个支持一流容器的云管理平台。(Joyent Triton DataCenter: a cloud management platform with first class support for containers.)

Github stars Tracking Chart

Triton DataCenter

Triton DataCenter(简称 Triton,以前是 SmartDataCenter 和 SDC)是一个开源云管理平台,它跨一个或多个数据中心交付下一代基于容器的面向服务的基础设施。随着对安装和操作的重视,Triton 在规模上得到了证明:Triton 为 Triton 云 和私有数据中心( Triton Enterprise worldwide)提供动力。

此存储库提供整个 Triton 项目的文档以及指向构成完整 Triton 部署的其他存储库的指针。请参阅存储库列表

使用 GitHub 问题报告错误和请求功能。 有关其他资源,您可以访问 Joyent 开发人员中心

概述

Triton DataCenter 安装包含两个或更多服务器。所有服务器都运行 SmartOS 。一台服务器充当管理服务器,即头节点(headnode), 它包含驱动 Triton 的初始核心服务集。其余是运行实例(容器和虚拟机)的计算节点(CN)。

Triton 的特点:

  • SmartOS zones 提供高性能容器虚拟化。 zones 之上的 KVM 支持意味着安全的完整 Linux 和 Windows 客户操作系统支持。
  • 用于客户自助服务的 RESTful API 和 CLI 工具
  • 完整的运营商门户(网络应用)
  • 强大且可观察的面向服务的体系结构(主要在 Node.js 中实现)
  • 自动USB密钥安装

Triton 由以下组成部分组成:

  • 用于配置和管理实例(虚拟机)、网络、用户、映像等的公共 API。
  • 运营商门户网站
  • 一组私有 API
  • 在 CN 的全局区域中运行以进行管理和监控的代理

有关详细信息,请参阅:

社区

有关 Triton DataCenter 的社区讨论主要发生在两个方面:

您还可以在Twitter上关注 @SmartDataCenter 以获取更新。

入门

笔记本电脑上的云端(CoaL)

尝试 Triton 数据中心的一个简单方法是下载并安装(Cloud on a Laptop,CoaL)。CoaL 是一个 VMware 虚拟设备,它为开发和测试提供了一个完整的 Triton head 节点。

CoaL 设置文档包含有关下载和安装虚拟设备的详细说明。

如果您已经有 CoaL 并且想要更新安装,请按照使用 updating a Triton standup 用 sdcadm 更新 Triton standup 的说明进行操作。

在物理服务器上安装 Triton

Triton 数据中心服务器运行 SmartOS,这是一个实时映像。这意味着它从 USB 闪存驱动器(密钥)引导。一个物理 USB 密钥,插入该密钥并从该密钥引导服务器。要安装 Triton,首先要获得最新版本的 USB 构建。

硬件

  • 8 GB USB 闪存驱动器
  • 支持 VT-x 和 EPT 的英特尔处理器(自 Nehalem 以来都支持 Xeon)
  • 16 GB RAM
  • 6 GB 可用存储

不推荐使用硬件 RAID。Triton 将在安装时在所有可用磁盘上设置 ZFS ZPOOL。如果使用映像和实例,则需要更多的存储空间。

如果要设置 Triton DataCenter 试用,那么您将需要检查最低要求安装先决条件,其中包括 IPMI 和至少10千兆位以太网。 SmartOS 支持的硬件组件在 SmartOS 硬件需求中进行了描述。 Joyent 制造商数据库中包含用于 Triton DataCenter 的 Joyent 认证硬件。

安装

要安装 Triton,请先下载最新版本的映像:

curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartDataCenter/usb-latest.tgz

下载了最新的发行版映像后,需要将其写入 USB 密钥,使用该 USB 密钥引导 head 节点服务器 ,并按照安装提示进行操作。计划、安装和配置 Triton 数据中心(Triton)所需的所有步骤都可以在 安装 Triton 弹性容器基础设施的 Joyent 客户文档中找到。

构建

Triton 由几个预先构建的组件组成:

  • SmartOS 平台映像。这是一个略微定制的 Triton 普通的 SmartOS 版本。 Triton服务的虚拟机映像(例如imgapi,vmapi,adminui),在安装时配置为VM。
  • Triton 服务的虚拟机映像(例如 imgapi、vmapi、adminui),在安装时配置为 VM。
  • 代理绑定到单个包中,并安装到每个计算节点的全局区域中。

每个组件都是单独构建的,然后通过 sdc-headnode 存储库将它们组合成 CoaL 和 USB 构建(参见前面的部分)。构建的组件通常存储在 Manta 对象存储器中,如 Joyent的公共 Manta,从那里拉出来。例如,Joyent 的构建推送到在 us-east-1 的 Joyent 的公共 Manta 中的 /Joyent_Dev/public/builds (https://us-east.manta.joyent.com/)。

您可以在 Mac 或 SmartOS 上构建自己的 CoaL 和 USB 映像(请参阅 sdc-headnode README)。但是,所有其他 Triton 组件必须使用正在运行的 Triton 构建(例如,在 Joyent Cloud 或本地 CoaL 中)。有关构建每个Triton组件的详细信息,请参阅构建文档

贡献

要报告错误或请求功能,请在 GitHub joyent/triton/issues (或在相关项目的 GitHub 问题跟踪器上)提交问题。如需支持Joyent产品和服务,请联系 Joyent 客户支持

有关的信息,请参阅贡献指南为项目做出贡献。

设计原则

Triton 数据中心对如何构建云非常固执己见。这些观点是多年来部署和调试 Joyent 公共云的结果。设计原则包括以下内容 Triton DataCenter 非常自以为是回顾如何构建云。这些 意见是多年部署和调试 Joyent 公共云的结果。设计原则包括以下内容:

  • VM 的主存储应该是本地磁盘,而不是网络 --这避免了调试性能异常的困难。
  • 内部 API 之间的通信应该在其独立于客户网络的控制平面(网络)中进行。尽可能避免在开放的互联网上交流。
  • 配置的 VM 应该尽可能少地依赖操作系统外部的 Triton 服务来进行正常操作。
  • 安装和操作应尽可能减少人工干预。

Triton 服务设计背后的目标包括:

  • 堆栈的所有部分都应该是可见的。
  • 运行服务的状态应该很容易获得。
  • 系统的内部应该可以直接从核心文件(来自崩溃或从使用 gcore(1) 的正在运行的进程中)调试。
  • 服务应该是 RESTful 的,并接受 JSON,除非有令人信服的理由
  • 服务应该避免保持状态,并且不应该假设只有一个服务实例在运行。这允许多个实例为高可用性提供服务。
  • Node.js 和 C 应该用于新服务。

依赖关系和相关项目

Triton DataCenter 使用 SmartOS 作为主机操作系统。 SmartOS 虚拟机管理程序同时提供了 SmartOS zone(容器)和 KVM 虚拟化。

Joyent 的开源 Manta项目 是一个基于HTTP的对象存储,内置支持在静态数据上运行任意的程序(即,不会将数据复制出对象存储库)。Manta 继续运行并与 Triton 数据中心集成。

许可证

Triton 数据中心是在 Mozilla 公共许可证 2.0 版本下授权的。请参阅文件许可证。SmartOS 是单独授权的。

(First edition: vz edited at 2019.09.12)

Overview

Name With OwnerTritonDataCenter/triton
Primary LanguageShell
Program languageMakefile (Language Count: 3)
PlatformSmartOS
License:Mozilla Public License 2.0
Release Count0
Created At2014-09-03 02:13:07
Pushed At2024-04-05 05:09:34
Last Commit At2024-04-04 22:09:34
Stargazers Count1.3k
Watchers Count115
Fork Count180
Commits Count220
Has Issues Enabled
Issues Count109
Issue Open Count37
Pull Requests Count50
Pull Requests Open Count6
Pull Requests Close Count34
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Triton DataCenter

Triton DataCenter (just "Triton" for short, formerly "SmartDataCenter" and
"SDC") is an open-source cloud management platform that delivers next
generation, container-based, service-oriented infrastructure across one or more
data centers. With an emphasis on ease of installation and operation, Triton is
proven at scale: Triton powers the Triton
Cloud
and private data centers
(Triton Enterprise)
worldwide.

This repository provides documentation for the overall Triton project and
pointers to the other repositories that make up a complete Triton deployment.
See the repository list.

Report bugs and request features using GitHub Issues.
For additional resources, you can visit the
Joyent Developer Center.

Overview

A Triton DataCenter installation consists of two or more servers. All servers run
SmartOS. One server acts as the management server, the
head node, which houses the initial set of core services that drive Triton. The
remainder are compute nodes (CNs) which run instances (containers and
virtual machines).

Triton features:

  • SmartOS zones provides high performance container virtualization. KVM support
    on top of zones means secure full Linux and Windows guest OS support.
  • RESTful API and CLI tooling for customer self-service
  • Complete operator portal (web app)
  • Robust and observable service oriented architecture (implemented primarily in
    Node.js)
  • Automated USB key installation

Triton consists of the following components:

  • A public API for provisioning and managing instances (virtual machines),
    networks, users, images, etc.
  • An operator portal
  • A set of private APIs
  • Agents running in the global zone of CNs for management and monitoring

For more details, see:

Community

Community discussion about Triton DataCenter happens in two main places:

  • The sdc-discuss
    mailing list.
    If you wish to send mail to the list you'll need to join, but you can view
    and search the archives online without being a member.

  • In the #smartos IRC channel on the Freenode IRC network.

Getting Started

Cloud on a Laptop (CoaL)

An easy way to try Triton DataCenter is by downloading and installing a Cloud on a Laptop
(CoaL) build. CoaL is a VMware virtual appliance that provides a full Triton head node for
development and testing.

The CoaL Setup document contains detailed instructions for
downloading and installing the virtual appliance.

If you already have a CoaL and would like to update the installation, follow the instructions
for updating a Triton standup using sdcadm.

Installing Triton on a Physical Server

A Triton DataCenter server runs SmartOS which is a live image. This means that
it boots from a USB flash drive (key).
a physical USB key, inserting the key and booting the server from that key.
To install Triton, first obtain the latest release USB build.

Hardware

For Triton development only, the minimum server hardware is:

  • 8 GB USB flash drive
  • Intel Processors with VT-x and EPT support (all Xeon since Nehalem)
  • 16 GB RAM
  • 6 GB available storage

Hardware RAID is not recommended. Triton will lay down a ZFS ZPOOL across all
available disks on install. You'll want much more storage if you're working with
images and instances.

If setting up a Triton DataCenter pilot then you'll want to review
the Hardware Selection Requirements,
Networking Layout Requirements,
and Installation Prerequisites
which include IPMI and at least 10 gigabit Ethernet. The supported hardware
components for SmartOS are described in the SmartOS Hardware Requirements.
Joyent certified hardware for Triton DataCenter are all in
the Joyent Manufacturing Database.

Install

To install Triton, first download the latest release image:

curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartDataCenter/usb-latest.tgz

Once you have downloaded the latest release image, you will need to
write it to a USB key
boot the head node server using the USB key, and follow the install prompts. All steps necessary
to plan, install, and configure Triton DataCenter (Triton) are available in the Joyent
customer documentation Installing Triton Elastic Container Infrastructure.

Building

Triton is composed of several pre-built components:

  • A SmartOS platform image. This is
    a slightly customized build of vanilla SmartOS for Triton.
  • Virtual machine images for Triton services (e.g. imgapi, vmapi, adminui), which
    are provisioned as VMs at install time.
  • Agents bundled into a single
    package

    installed into the global zone of each compute node.

Each component is built separately and then all are combined into CoaL and USB
builds (see the preceding sections) via the sdc-headnode
repository
. The built components are
typically stored in a Manta object store,
e.g. Joyent's public Manta,
and pulled from there. For example, Joyent's builds push to
/Joyent_Dev/public/builds in Joyent's public Manta in us-east-1
(https://us-east.manta.joyent.com/).

You can build your own CoaL and USB images on Mac or SmartOS (see the
sdc-headnode README). However,
all other Triton components must be built using a running Triton
(e.g. on the Joyent Cloud
or in a local CoaL). See the building document
for details on building each of the Triton components.

Contributing

To report bugs or request features, submit issues here on
GitHub, joyent/triton/issues
(or on the GitHub issue tracker for the relevant project).
For support of Joyent products and services, please contact Joyent customer
support
instead.

See the Contribution Guidelines for information about
contributing changes to the project.

Design Principles

Triton DataCenter is very opinionated about how to architect a cloud. These
opinions are the result of many years of deploying and debugging
the Joyent public cloud.
Design principles include the following:

  • A VM's primary storage should be local disk, not over the network -- this
    avoids difficult to debug performance pathologies.
  • Communication between internal APIs should occur in its own control plane
    (network) that is separate from the customer networks. Avoid communicating
    over the open Internet if possible.
  • A provisioned VM should rely as little as possible on Triton services outside of
    the operating system for its normal operation.
  • Installation and operation should require as little human intervention as
    possible.

The goals behind the design of Triton services include:

  • All parts of the stack should be observable.
  • The state of the running service should be simple to obtain.
  • The internals of the system should make it straightforward to debug from a
    core file (from a crash or taken from a running process using
    gcore(1)).
  • Services should be RESTful and accept JSON unless there is a compelling
    reason otherwise.
  • Services should avoid keeping state and should not assume that there is
    only one instance of that service running. This allows multiple instances
    of a service to be provisioned for high availability.
  • Node.js and C should be used for new services.

Triton DataCenter uses SmartOS as the host operating
system. The SmartOS hypervisor provides both SmartOS zone (container) and
KVM virtualization.

Joyent's open-source Manta project
is an HTTP-based object store with built-in support to run arbitrary
programs on data at rest (i.e., without copying data out of the object store).
Manta runs on and integrates with Triton DataCenter.

License

Triton DataCenter is licensed under the
Mozilla Public License version 2.0.
See the file LICENSE. SmartOS is licensed separately.

To the top